前言

在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技术进行通信有一些优点:

反VM & 反反编译 & 防沙箱技术

初始化后,继续执行到主模块。在执行开始时,会调用图中所示的可疑地址。

访问此功能时,IDA无法将其内容显示为可视化界面,如图13所示。

恶意软件创建者使用著名的反反编译技术。该函数使用跳转指令到+1字节的位置,这导致系统对完全不同的字节代码进行解释。完成该过程后,Khalesi会迭代当前加载的可执行模块,试图找到与调试和分析工具相关的东西,如api-monitorCAPE sandbox等。
此后,Khalesi将检查系统目录中的以下驱动程序:

1. VBoxGuest.sys
2. VBoxMouse.sys
3. VBoxVideo.sys

如果它发现其中一个驱动程序,执行将崩溃。在返回主模块之前,变种将执行以下步骤:

当调试器附加到此Khalesi变种正在运行的进程时,将从ntdll调用Windows API函数DbgBreakPoint()。此函数允许调试器获得控制权,因为调试器可以拦截异常,但这要求功能保持不变。
但由于下图中所示功能的改变,如果调试器连接到恶意软件进程,则ExitProcess将强制退出恶意软件进程。

窃取目标

这个特殊的Khalesi变种试图使用主模块窃取以下信息:

收集信息后,它将按照之前的描述写入%TEMP%目录,如下图所示:

一旦信息收集过程完成,并且通过某些条件(这些将在后面的博客中描述),数据将通过POST请求发送到C2 URL [http]://seeyouonlineservice[.]com/regbot.php如下图所示:

然后再将系统文件属性更改为正常后立即删除该文件。

C2通讯

恶意软件通过发送以下GET和POST请求与C&C服务器通信:

与东欧的联系

在发送被盗信息之前,此Khalesi变种使用GetUserDefaultLangID()GetKeyboardLayoutList() Windows API函数来检查受害者的东欧键盘布局和默认语言。下图显示了此过程:

如果检测到任何东欧键盘布局和默认语言,则此Khalesi变种不会将被盗数据发送到C2域。

关于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[.]comC2域进行通信。

enSilo防止Khalesi Infostealer恶意软件攻击

下图说明了enSilo安全平台怎样在任何攻击阶段跟踪此恶意软件的整个威胁链。


此外,下图说明了enSilo安全平台为什么可以在任何攻击阶段跟踪此恶意软件的整个威胁链。

这些图显示了enSilo如何使用机器学习算法自动识别恶意攻击。因此,enSilo可防止在执行此恶意软件后造成的任何损害。并且,整个检测到防止的过程是实时完成的。最后,enSilo还能够在执行之前检测到该恶意软件。

IOC

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}

Network IOCs

seeyouonlineservice[.]com 
botsphere[.]biz

该网站botsphere[.]biz在我们分析恶意软件的时候,仍在为恶意软件工作。

IP地址

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

源链接

Hacking more

...