在2018年8月底,安全社区发现了一个名为Khalesi
的信息中心恶意软件。此恶意软件已被安全社区识别为Kpot
恶意软件的一部分。这些Khalesi变种是使用Visual Basic 6(VB6)
编译器编译的,而其他变种是通过常规的可移植可执行(PE)编译器编译的。
本博客文章中出现的Khalesi
变种大约在同一时间编译。在大多数情况下,所有这些变种的功能都是类似的。执行时,恶意软件与C2域通信,并从受影响系统上的多个源收集各种数据。它窃取Windows和浏览器凭据,信用卡信息,虚拟币,来自消息应用程序(如Skype和Telegram)的数据等。
本报告中提到的两种变种也使用了反反编译技术。此外,两个变种都尝试与相同的C2域通信。据样本分析,这个C2域是在编译两个Khalesi
变种的同时创建的。但是,这个C2域的存在时间很短暂,已经不再使用。
这篇博文提供了两种Khalesi
变种的技术分析,包括动态和静态分析,使用VB6编译器编译的变种的简要分析,以及使用常规PE编译器编译的变种的更详细分析。此外,我们将解释具有恶意软件感染后保护功能的enSilo Endpoint Security Platform
如何实时阻止恶意操作。
以下是使用VB6编译器编译的Khalesi
变种的静态特性:
File Name: finalvr.exe
File SHA1:C37B9B9FEA73C95DE363E8746FF305F4B23F0C28
File Size:786432 bytes
Compile Time: 2018-08-29 15:11:00
执行时,此变种运行VB6 DLL
文件MSVBVM60.DLL
并启动其"解包"过程。然后通过从ntdll
调用Windows API KiUserExceptionDispatcher()
来测试它是否正在通过调试器运行:
Windows API RtlRaiseException()
从KiUserExceptionDispatcher
内部调用con()
并包含以下指令:
调用此函数时,它会导致调试器应用程序使用异常。因此,调试器无法进一步执行此变种,操作系统会生成错误,导致可执行文件终止。同时,此变种通常会绕过异常。在这种情况下,变种将在程序数据文件夹下删除其自身的另一个变种。以下是此变种的静态特征:
File Path:C:\ProgramData
File Name:Kip1.exe
File SHA1: 70DF9DF1FFE20E7EAC54E424C2E76242696904D2
File Size: 786432 bytes
Compile Time: 2018-08-29 15:11:00
此后,为了维持持久性,它将自己添加为计划任务,如下图所示。
此计划任务设置为每1分钟运行一次。这个任务的名字是Ebrin
。通过使用schtask.exe
命令实现注册计划任务。
完成此过程后,它将通过修改以下注册表项来更改系统上的Internet设置:
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\UNCAsIntranet
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\AutoDetect
它使用Internet Explorer
与C2域seeyouonlineservice[.]com
进行通信,如下图所示。
enSilo
遇到了以下Khalesi
变种:
File Name: soft.exe
File SHA1: FCF2918829132CD43890129B8255F1D1533E07AB
File Size: 87040 bytes
Compile Time: 2018-08-28 01:06:58
在执行时,此变种调用CoInitialize
(稍后将在博客中描述),初始化多个字符串并构造下图中所示的C2 URL
。
上图中的初始化字符串列表提供了恶意软件的目标和通信方式的绝佳视图。字符串表明这个变种也与我们之前观察到的C2域seeyouonlineservice[.]com
进行通信。在执行过程中,Khalesi
使用FCICreate
创建cabinet
文件,如下图所示。
据微软称,FCI(文件压缩接口)是一个提供创建CAB文件的库,这减少了文件数据的大小。下表显示了该库的功能:
执行后,Khalesi
在%TEMP%
目录中创建多个.tmp
文件,如下所示:
这些.tmp
文件包含恶意软件从受害者处收集的所有信息。
然后将命名为CAB[0-9A-Z]{4}.tmp
的文件(包括快照)收集到作为系统文件创建的cabinet文件中(默认情况下将其隐藏)。
cabinet文件和屏幕截图名为[0-9]{10}.
。
之后,Khalesi
记录了运行进程和操作系统(OS)版本的安全标识符。然后稍后发送给C2。
目前,如果安全标识符大于SECURITY_MENDATORY_UNTRUSTED_RID
,它将跟进之前调用的CoInitialize
并使用CoCreateInstance
函数创建COM实例:
检查rclsid
值后,它将与Internet Explorer rclsid
匹配,如图10所示。
使用此过程启动以下所示的两个Internet Explorer
进程:
使用COM技术进行通信有一些优点:
iexplore.exe
进程中使用远程主机而不是从恶意软件进程使用,从而模糊了恶意流量。Internet Explorer
后,Khalesi
会验证与构造的URL的连接(seeyouonlineservice[.]com
)如果不成功,Khalesi
将使用以下硬编码IP地址之一作为新C2:所有这些IP地址都属于东欧的网络托管服务。除了这个通信过程,`Khalesi`还修改了以下注册表项:
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\UNCAsIntranet HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\AutoDetect HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\SecuritySafe HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable初始化后,继续执行到主模块。在执行开始时,会调用图中所示的可疑地址。
访问此功能时,IDA无法将其内容显示为可视化界面,如图13所示。
恶意软件创建者使用著名的反反编译技术。该函数使用跳转指令到+1
字节的位置,这导致系统对完全不同的字节代码进行解释。完成该过程后,Khalesi
会迭代当前加载的可执行模块,试图找到与调试和分析工具相关的东西,如api-monitor
,CAPE sandbox
等。
此后,Khalesi
将检查系统目录中的以下驱动程序:
1. VBoxGuest.sys
2. VBoxMouse.sys
3. VBoxVideo.sys
如果它发现其中一个驱动程序,执行将崩溃。在返回主模块之前,变种将执行以下步骤:
ntdll.dll
内存基地址ExitProcess API
函数基址VirtualProtect
将ntdll.dll
权限更改为读取
,写入
,执行
ExitProcess
调用和返回指令中写入DbgBreakPoint() ntdll
函数ntdll.dll
权限更改回Read,Write 当调试器附加到此Khalesi
变种正在运行的进程时,将从ntdll
调用Windows API
函数DbgBreakPoint()
。此函数允许调试器获得控制权,因为调试器可以拦截异常,但这要求功能保持不变。
但由于下图中所示功能的改变,如果调试器连接到恶意软件进程,则ExitProcess
将强制退出恶意软件进程。
这个特殊的Khalesi变种试图使用主模块窃取以下信息:
收集信息后,它将按照之前的描述写入%TEMP%
目录,如下图所示:
一旦信息收集过程完成,并且通过某些条件(这些将在后面的博客中描述),数据将通过POST请求发送到C2 URL [http]://seeyouonlineservice[.]com/regbot.php
如下图所示:
然后再将系统文件属性更改为正常后立即删除该文件。
恶意软件通过发送以下GET和POST请求与C&C
服务器通信:
在发送被盗信息之前,此Khalesi
变种使用GetUserDefaultLangID()
和GetKeyboardLayoutList() Windows API
函数来检查受害者的东欧键盘布局和默认语言。下图显示了此过程:
如果检测到任何东欧键盘布局和默认语言,则此Khalesi
变种不会将被盗数据发送到C2域。
不幸的是,C2域名seeyouonlineservice[.]com
很短暂。它是在2018年8月创建并注册的,如图所示,大约在编译Khalesi
变种的时候。但是,该域名在撰写这篇文章的时候已停用。
以下hash属于发现的类似Khalesi infostealer
的变种:
File Name:soft.exe
File SHA1: 6ace6f3631ef8773f0af2233595ee5f8d662134c
File Size: 221696 bytes
Compile Time: 2018-08-29 22:58:44
File Name: soft.exe
File SHA1: 7dc34dc7936b257830477353f681bdcb6ba3313d
File Size: 87040 bytes
Compile Time: 2018-08-27 22:06:58
File Name: soft.exe
File SHA1: b349e41aa4303e2ec503c66da5e56791b123d11f
File Size: 86528 bytes
Compile Time: 2018-08-29 22:58:44
这些变种类似于使用常规PE编译器编译的变种。这些变种具有相同数量的Windows API
函数,并且大约在同一时间编译。此外,这些变种似乎也与seeyouonlineservice[.]com
C2域进行通信。
下图说明了enSilo
安全平台怎样在任何攻击阶段跟踪此恶意软件的整个威胁链。
此外,下图说明了enSilo
安全平台为什么可以在任何攻击阶段跟踪此恶意软件的整个威胁链。
这些图显示了enSilo
如何使用机器学习算法自动识别恶意攻击。因此,enSilo
可防止在执行此恶意软件后造成的任何损害。并且,整个检测到防止的过程是实时完成的。最后,enSilo
还能够在执行之前检测到该恶意软件。
File Name: soft.exe
File SHA1: FCF2918829132CD43890129B8255F1D1533E07AB
File Size: 87040 bytes
Compile Time: 2018-08-28 01:06:58
File Name: finalvr.exe
File SHA1: C37B9B9FEA73C95DE363E8746FF305F4B23F0C28
File Size: 786432 bytes
Compile Time: 2018-08-29 15:11:00
File Name: Kip1.exe
File SHA1: 70DF9DF1FFE20E7EAC54E424C2E76242696904D2
File Size: 786432 bytes
Compile Time: 2018-08-29 15:11:00
File Name: go.exe
File SHA1: C450634B90CCEAC6F7393D38FEA10453A6010DFE
File Size: 471120 bytes
Compile Time: 2007-10-06 14:45:00
File Name: crsoft.exe
File SHA1: 9DCADA7455205B44B5FE69F765CAECCA4F14403C
File Size: 146432 bytes
Compile Time: 2018-08-29 15:24:39
用于文件位置的正则匹配如下:
%APPDATA%\CAB[0-9A-Z]{4}.tmp
%APPDATA%\[0-9]{10}
seeyouonlineservice[.]com
botsphere[.]biz
该网站botsphere[.]biz
在我们分析恶意软件的时候,仍在为恶意软件工作。
174[.]138[.]48[.]29
46[.]101[.]70[.]183
91[.]217[.]137[.]44
80[.]233[.]248[.]109
101[.]99[.]70[.]55
77[.]222[.]40[.]43
这些IP地址都属于东欧的网络托管服务。
原文地址:https://blog.ensilo.com/game-of-trojans-dissecting-khalesi-infostealer-malware