.net解析传过来的xml_PsiXBot:模块化.NET僵尸网络的进化

本文中我们将分享我们对模块化恶意软件 PsiXBot 的分析。该恶意软件于 2017 年首次出现,最近一段时间核心代码与模块有了很大改变。其中包括键盘记录与 Outlook 和浏览器凭据窃取,随着这些新开发项目的完成以及在野观察到的第一批大规模投放,PsiXBot 已正式在恶意软件生态中崭露头角。

介绍

2019 年 2 月 21 日,我们开始注意到一个逐渐铺开的、名为 SmokeLoader 的 Bot,将会在受感染的机器上安装额外的恶意软件,分发 .NET 恶意软件样本。进一步研究发现,该 Bot 是一个具有模块化功能的 Bot,例如从受感染主机窃取数据以及接收、执行任务的功能。当 Spelevo Exploit Kit 在 3 月 16 日开始分发相同的恶意软件时,我们觉得还有进一步调查分析的必要。

从 2017 年开始开发到目前退出 Beta 版本,可以看到它通过多个感染向量进行分发,例如 Exploit Kit 与恶意软件加载器的联动。

分析

最初的分析起源于偶然发现的一条关于 PsiXBot 恶意软件早期版本的 Twitter。同时期也有其他 Twitter 中提到了同一恶意软件的早期版本。

版本概述:

2017 年年中时期:在野发现第一个版本(SHA256:d2ee07bf04947cac64cc372123174900725525c20211e221110b9f91b7806332)

2018 年 8 月:发现更新版本(SHA256:ce0e46fa1c5b463ed4a070a05594a79203ed2dd5df96cece9f875e2957fda4fa)

2019 年年初:通过不同的感染媒介分发最新版恶意软件(SHA256:ca30c42334fcc693320772b4ce1df26fe5f1d0110bc454ec6388d79dffea4ae8)

下图显示了不同版本程序的代码结构,左侧是第一个版本,右侧是最新版本:

d6a0e5e3986f868f22ef7167f70d8318.png

请注意,PsiX 来源于程序的名字,看一下 PDB 路径可以发现相同的命名:G:\WORK\MONEY\BOT\NoName\PsiX\obj\Release\NoNameBot.pdb。

另外,看一下上图中间样本的代码结构,也可以看到 Radius。另外在 C&C 服务器中也可以发现部分字符:radcall.bit、radbot.bit 与 rrradiusspace.bit。

经过分析,各个版本间主要的差异是:

添加更多的模块支持新命令

使用 AES 加密字符串

版本从 Beta 1.0.0 更新到 1.0.1

以下都以最新版本为主进行介绍。

您可能已经注意到了,恶意软件使用 .NET 编写的,而且没有使用混淆。通常来说,主要的 Payload 都隐藏在一个 Dropper 内,一旦执行就会调用 Main() 函数。首先通过查看硬编码的互斥锁 gfdhfyf543543cdsdfsdf 来验证它是唯一运行的实例,然后在正式运行前执行大量循环模拟 sleep() 函数。

大多数字符串使用硬编码字符串密钥通过 AES 进行加密,分析样本的示例使用的是 1243hewqr8n1220g321&^*&^Tb0。

此外,它还会检查受害者的语言设置,如果语言设置为 ru-RU(俄语),恶意软件将会直接退出。对于所有其他语言设置,恶意软件将会继续恶意软件活动。

程序还会检查文件名是否与配置的文件名对应。对应不上时,通过 WMI 调用 CopyEx 函数后通过 WMI 复制二进制文件。安装路径为 %APPDATA% 文件夹内的 Local\Microsoft.exe。

安装成功后,恶意软件会与配置好的 C&C 服务器进行通信,C&C 服务器的地址由以下代码初始化:

public static string[] valid = new string[]{    "pppoe.bit",    "weather0.bit",    "mygranny.bit",    "six6.bit",    "learncpp.bit"};

为了与 .bit 域名进行通信,使用硬编码的 DNS 服务器(193.37.213.223)。DNS 解析成功后,恶意软件会 ping 每个 C&C 服务器,使用第一个响应的 C&C 服务器。

Bot 向 C&C 报告从受感染主机收集的一些信息,示例请求如下:

action=call&user_name=john&bot_id=D63BAFF79F3A3504C70DC3298EE74C68&av=N/A&os_major=Microsoft Windows 7 Home Basic N &permissions=User&os_bit=64&cpu=Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz&gpu=Standard VGA Graphics Adapter&ram=2048&hdd=C:12345/67890&version=1.0.1&user_group=Admin&pc_net=4.0

参数的含义是:

参数含义
action请求的目的
user_name受感染主机的用户名
bot_id标识受感染主机的唯一字符串
av安装的杀毒软件名称
os_major操作系统名称
permissions用户的权限
os_bit操作系统架构
cpuCPU 型号
gpuGPU 型号
ram可用内存
hdd硬盘序列号
version恶意软件版本号(最新版为 1.0.1)
user_group用户组名称
pc_net安装的.NET框架版本

使用硬编码的密钥(63a6a2eea47f74b9d25d50879214997a)通过 R 算法对数据加密传输。值得注意的是,作者加密了大部分字符串,除了 R 加密密钥、纯文本的 C&C 服务器地址和 DNS 服务器地址。

C&C 服务器使用 JSON 进行回应,如下所示:

{    result_code: [        {            "result_code": "200",        }    ]}

如果服务器返回有效响应,则恶意软件会在请求执行新命令前休眠 95 秒,这是通过发送数据完成的:

action=command&bot_id=D63BAFF79F3A3504C70DC3298EE74C68

响应的示例如下:

{  "result_code": [    {      "result_code": "200"    }  ],  "commands": [    {      "command_id": "1485",      "command_action": "GetSteallerPasswords",      "command_data": "",      "command_arg": ""    },    {      "command_id": "1486",      "command_action": "StartSchedulerModule",      "command_data": "",      "command_arg": ""    }  ]}

在上面的示例中,C&C 服务器 要求执行两个命令,command_action 值是要调用的方法的确切名称,恶意软件根据该值动态解析方法。为了避免硬编码字符串,作者实现了一种简单的方法来升级恶意软件:如果在执行期间恶意软件中没有 C&C 发送的方法名称,就简单的忽略该方法。其中一个调用的方法类型为 SukaBlyat,该词在俄语俚语中是一个冒犯性词汇。

这两个接收的命令被用来请求 C&C 服务器额外的模块,请求模块的数据传输通过:

action=module&bot_id=D63BAFF79F3A3504C70DC3298EE74C68&module_action=SchedulerModule

随后,下载并执行该模块,同时发送以下命令:

action=result&command_id=1485&command_result=6E756C6C

当前版本支持的命令:

Download

DownloadAndExecute

Execute

GetInstalledSoft

GetKeylogs

GetOutlook

GetProcessesList

GetScreenShot

GetSteallerCookies

GetSteallerPasswords

StartAndroidModule

StartBTC

StartComplexModule

StartKeylogger

StartNewComplexModule

StartSchedulerModule

StopProcess

模块

最新版本的 Bot 支持以下模块:

BrowserModule(stMod.exe):从各种浏览器以及 FileZilla FTP 客户端 Dump 密码或 Cookie。接受一个参数指定要 Dump 的数据:-passes 密码或 -cookies cookie。程序返回一个包含所有被盗信息的字符串,看起来基于 QuasarRAT 项目

BTCModule(LESHI.exe):接受参数与加密货币地址。支持 -btc、-ether、-ltc、-monero 和 -ripple。程序每隔 3 秒监视一次剪贴板,验证复制的文本是否是有效的地址。如果检查成功则将其替换为一个配置好的钱包地址

ComplexModule(Client.exe):旧版 QuasarRAT 的开源代码,特别需要注意的是字符串 xclient(它是此模块命名空间的一部分),该字符串出现在 2016 年的一个分支中。在反编译的源代码中,我们发现了 QuasarClient

KeyLoggerModule(KeyLoggerModule.exe):使用 SetWindowsHookEx 的 API 进行全局 Hook 监听键盘操作,截获的数据保存在名为 Logger.log 的文件中

NewComplexModule(RemoteClient.exe):类似远程桌面的程序,允许用户进行交互并启动浏览器

OutlookModule(OutlookPasswordRecovery.dll):Dump Outlook 密码并返回包含检索到的信息的字符串

SchedulerModule(Scheduler.exe):用于确保持久性,它只创建一个计划任务,每分钟运行一次 Bot

分发

通常来说,有两种方式分发恶意软件:

感染新的受害者

利用现有感染的机器

PsiXBot 通过垃圾邮件或者 Exploit Kit(例如 Spelevo Exploit Kit)分发恶意软件。以及通过地下黑市提供的服务,在已感染的设备通过如 SmokeLoader 等恶意软件上加载 PsiXBot。

SmokeLoader

执行分发 PsiXBot 恶意软件任务的 SmokeLoader 使用以下元数据进行配置:

server_rc4_key_recv     e097b3a6server_rc4_key  40e5223bbot_version     2018seller  new1c&c    http://5gssghhs2w.org/2/c&c    http://dvhwzq.ru/2/c&c    http://hdxaet.ru/2/c&c    http://hghwwgh6.info/2/c&c    http://jdcbhs.ru/2/c&c    http://kdcbst.ru/2/c&c    http://kkted54d.ru/2/c&c    http://si3213gher.com/2/c&c    http://vshmesz.com/2/c&c    http://vygxxhh.bit/2/

SmokeLoader 任务分发的 URL 是:hxxp://favoritfile.in/7-8.exe。

从分发的地址下载的样本的 SHA256 为:9b8c0c82fe79ae15e0f723d6aa267d38d359a7260613a091a2d70d770488e919。

该样本的 C&C 服务器地址为:

myauto.bitsokoban.bit

Spelevo Exploit Kit

Spelevo Exploit Kit 分发的样本的 SHA256 为:ca30c42334fcc693320772b4ce1df26fe5f1d0110bc454ec6388d79dffea4ae8。

该样本的 C&C 服务器为:

learncpp.bitmygranny.bitpppoe.bitsix6.bitweather0.bit

另一个分发投递的渠道是垃圾邮件,我们观测到的其中一个垃圾邮件活动与意大利有关,包含以下元数据:

Receiver    from pecfe04.sogei.it (pecfe04.sogei.it [26.2.42.237]) by PECP-BE02 (lmtpd) with LMTP id 28663.002; Tue, 8 Jan 2019 16:22:51 +0100 (CET)Receiver    from PECP-FE04 ([127.0.0.1]) by pecfe04.sogei.it (Dovecot) with LMTP id 474fM6e/NFysCAAAxEz/xA ; Tue, 08 Jan 2019 16:22:51 +0100Receiver    from mx.pec.sogei.it (localhost [127.0.0.1]) by smtps.pec.sogei.it (Postfix) with ESMTP id 43YwxQ6pm5zgYCT for @pec.agenziariscossione.gov.it>; Tue, 8 Jan 2019 16:22:50 +0100 (CET)Receiver    from smtps.pec.aruba.it (smtpecgo01.pec.aruba.it [80.88.94.21]) by mx.pec.sogei.it (Postfix) with ESMTPS for @pec.agenziariscossione.gov.it>; Tue, 8 Jan 2019 16:22:50 +0100 (CET)Receiver    from avvocatismcv.com (ipvspec1.pec.ad.aruba.it [62.149.152.1]) by smtps.pec.aruba.it (Postfix) with ESMTPSA id 43YwxQ2V8Sz2L7hcc; Tue, 8 Jan 2019 16:22:50 +0100 (CET)Reply-To    luigi.ferrandino@avvocatismcv.comReturn-Path     luigi.ferrandino@avvocatismcv.comAttachments     ["daticert.xml", "Nuovi_contratti_2019__145038.zip", "smime.p7s"]Number_of_attachments   3Date    2019-01-08 15:22:50 (UTC)To  ["luigi.ferrandino@avvocatismcv.com"]From    "Per conto di: luigi.ferrandino@avvocatismcv.com" @pec.aruba.it>Subject     POSTA CERTIFICATA: Re: Notificazione ai sensi della legge n. 53 del 1994

该压缩文件包含一个 JavaScript 脚本(SHA256:e4006cde4a96048ff25727459abfae0ffd37985d04581793be784d7cf50e32d7),一旦执行从 hxxp://img.martatovaglieri.it/index?83836 下载下一个阶段的 Payload。

下载的二进制文件的 SHA256 为:db1f57ffd6c58e1d40823e2c8834e45a67271557ceaa1b3bcccf4feab83243a1。

该样本文件的 C&C 服务器为:

anyname.bit

控制面板

下图显示了 PsiXBot 的登录面板:

9978c43979d90b425710af36af7d9555.png

在 HTML 中可以发现以下代码:

IOC

d2ee07bf04947cac64cc372123174900725525c20211e221110b9f91b7806332ce0e46fa1c5b463ed4a070a05594a79203ed2dd5df96cece9f875e2957fda4faca30c42334fcc693320772b4ce1df26fe5f1d0110bc454ec6388d79dffea4ae86a9841b7e19024c4909d0a0356a2eeff6389dcc1e2ac863e7421cca88b94e7e06e123ce5c7c48132f057428c202638eb9d0e4daa690523619316a9f72b69d17f3846fcfdc6414685efd217a88613ed3383a61f8313a0aa7ecdcde8ed99c8ebac7bac9b3b5598059db770cdeee74f0b1cf3078c2cb54cc2fcd18ae811d42a5d630f931fec3fd436d974d767f84f66b44f6f2fc168d9e6d77b2aa2e9d3bf4cd604a5edab1596346358c8899b9f81ec49b0560da929327e0ef08ab51dcb277c9b70b01fbb8cfeb16c4232fddea6dea53212a57e73ef32ee20056cd69d29570bf55c

可以在 GitHub 页面上找到完整的 IOC 列表。

*参考来源:FoxIT,FB 小编 Avenger 编译,转载请注明来自FreeBuf.COM

bdbac38f5f35d7faadc6c83ab8ad85f3.gif

精彩推荐

e6d5d8dc987b75c85096d4ac4281985b.png

980a84662597210a68f0484bc5d91379.png

b07bbadc6fe46ebb5d2b3dfee06e5281.png32b112e621b69b337986327f8307573d.png

a244c8b853e926d4a6101ae4d0b64195.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值