12

Poulight Stealer:来自俄罗斯的窃密恶意软件

 4 years ago
source link: https://www.freebuf.com/articles/others-articles/236232.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

过去的两个月中,研究人员发现了窃密恶意软件 Poulight Stealer 的技术进化与传播扩散,经过研究发现其可能源于俄罗斯。

介绍

如今,信息窃取是常见的威胁之一,例如 Azorult、Agent Tesla 和 Hawkeye。信息窃取是网络犯罪中最赚钱的领域之一,从失陷主机收集的信息会被转手到地下网络犯罪市场,或者用于凭据填充攻击。

fyyaUj7.jpg!web

Poulight 最早在 3 月中旬被 MalwareBytes 的研究人员发现,并且相关 IOC 指标已经在安全社区之间共享。恶意代码具有先进的信息窃取能力,而且还在不断进化中。

技术分析

属性 值 哈希 8ef7b98e2fc129f59dd8f23d324df1f92277fcc16da362918655a1115c74ab95 威胁 Poulight Stealer 简要描述 Poulight Stealer ssdeep 1536:GJv5McKmdnrc4TXNGx1vZD8qlCGrUZ5Bx5M9D7wOHUN4ZKNJH:GJeunoMXNQC+E5B/MuO0Ogt

像其他恶意软件一样,也提供给网络犯罪分子可订阅的恶意软件构建工具。结果为 .NET 可执行文件。

RzYZbuN.jpg!web

该样本的好处是它没有经过混淆,所以分析起来非常容易,可以很好地描述恶意软件的功能。当恶意软件启动后,也会执行经典的检测逃避技术:

nqARjua.jpg!web

其中,通过执行Select * from Win32_ComputerSystem命令使用 WMI 来进行检测逃避。这个方法对虚拟化相关的检测进行了一些检查,如:

vmware
VIRTUAL
VirtualBox
sbiedll.dll (Sandboxie)
snxhk.dll (Avast sandbox)
SxIn.dll (Avast sandbox)
Sf2.dll (Avast Sandbox)

这些检查也在 Al-Khaser 或 Pefish 工具中被列出来,这些工具旨在检测用于恶意软件分析的环境、测试沙盒的健壮性。执行相关的检测逃避技术后,恶意软件就开始进行感染,从而启动一个被称为Starter的新威胁。

RryIJnv.jpg!web

Starter类包含用于加载恶意软件模块的代码。在此之前,有一些目录和文件用于存储失陷主机的相关信息。该操作由第一条指令global::Buffer.Start()执行。方法也非常简单,通过以下方式在 Windows 特殊文件夹(AppData、Local AppData、Personal、Desktop)中创建许多文件夹:

MzIRjuu.jpg!web

然后,恶意软件从名为String0的资源中提取配置信息与其他参数。数据是经过 base64 编码的字符串,然后通过以下方法进行解码:

I773U3z.jpg!web

配置文件的内容如下所示:

<settings>PHByb2cucGFyYW1zPllXUnRhVzQ9fE1RPT18TUE9PTwvcHJvZy5wYXJhbXM+PHRpdGxlPlVHOTFiR2xuYUhRPTwvdGl0bGU+PGNwZGF0YT5NSHd3ZkRFeVEwNTFTMnRMU3pGNFRFWnZUVGxRTlRoNlYxaHJSVXhOZURGNU5URjZObGw4TVRKRFRuVkxhMHRMTVhoTVJtOU5PVkExT0hwWFdHdEZURTE0TVhrMU1YbzJXWHd3PC9jcGRhdGE+PHVsZmlsZT5hSFIwY0RvdkwzSjFMWFZwWkMwMU1EY3pOVEk1TWpBdWNIQXVjblV2WlhoaGJYQnNaUzVsZUdVPTwvdWxmaWxlPjxtdXRleD5QTDJkNHZGRWdWYlFkZGRka21zMFpoUWlJMEk8L211dGV4Pg==</settings>

解码对应的 base64 字符串,就可以获得构建的参数列表。如下所示:

<prog.params>YWRtaW4=|MQ==|MA==</prog.params><title>UG91bGlnaHQ=</title><cpdata>MHwwfDEyQ051S2tLSzF4TEZvTTlQNTh6V1hrRUxNeDF5NTF6Nll8MTJDTnVLa0tLMXhMR**NOVA1OHpXWGtFTE14MXk1MXo2WXww</cpdata><ulfile>aHR0cDovL3J1LXVpZC01MDczNTI5MjAucHAucnUvZXhhbXBsZS5leGU=</ulfile><mutex>PL2d4vFEgVbQddddkms0ZhQiI0I</mutex>

prog.params 可在 HandlerParams.Start() 中进行检索。在开始新的感染行为前要检查是否重复感染,执行 AntiReplaySender.CheckReplayStart() 即可完成该任务:

3aQVzyE.jpg!web

恶意软件通过互斥量进行判断,该互斥量在参数列表中也可以看到。文件在%TEMP%文件夹中,如果该文件存在,恶意软件不会再次执行,肉则写入空文件开始执行。接着来看XS类的恶意代码,如下所示:

y22E7bE.jpg!web

首先通过Information.Start()收集有关失陷主机的硬件和软件信息:

AFjmqmn.jpg!web

值得注意的是,恶意软件使用英语和俄语来记录收集的信息。随后,枚举并记录所有活动进程列表:

An2AziN.jpg!web

紧接着执行第三个参数的检查。如果等于 1 则执行clipper模块:

NzUR3iv.jpg!web

如上所示,使用存储在cpdata内的 AES 密钥解密clbase中的模块。但是,在特定配置中没有clbase字段,就没有需要安装的模块。最后一条命令是CBoard.start,如下所示:

qyE3myn.jpg!web

窃取剪贴板数据后会在失陷主机中收集所有敏感信息:

ma6v6z.jpg!web

该恶意软件窃取大量数据:

桌面快照

敏感文件

摄像头快照

Filezilla 凭据

Pidgin 凭据

Discord 凭据

Telegram

Skype

Steam

加密货币

Chrome

DFiles模块负责窃取敏感文档,搜索以下扩展名之一的文件:

MbMfmqb.jpg!web

在发现文件中,恶意软件会检索经典的关键字,这些关键字显示文件的内容中存在一些有用的凭据:

Ubay6vJ.jpg!web

随后,恶意软件会将所有收集到的信息发送到另一个名为connect的资源提供的 C&C 服务器:

jiE3y2E.jpg!web

最后,从下载并执行其他模块。检索参数的方式与前述相同,在ulfile中标记了要下载的组件。

B7BBv22.jpg!web

结论

Poulight Stealer 具有惊人的潜力,不排除它的异军突起将来可能会代替其他恶意软件家族。但该恶意软件缺乏代码混淆与数据保护功能,可能仍然处于开发的早期阶段,后续攻击者可能会增强这些功能。

IOC

8ef7b98e2fc129f59dd8f23d324df1f92277fcc16da362918655a1115c74ab95

http//fff[.gearhostpreview[.com/ARMBot

http[://u43692210a[.ha003.t.justns[.ru/

http://poullight[.ru/

Yara

import "pe"

rule Poulight_Stealer_May_2020 {
meta:
      description = "Yara rule for Poulight Stealer"
      hash = "8ef7b98e2fc129f59dd8f23d324df1f92277fcc16da362918655a1115c74ab95"
      author = "Cybaze - Yoroi  ZLab"
      last_updated = "2020-05-07"
      tlp = "white"
      category = "informational"

strings:
    $s1 = "http//fff.gearhostpreview.com/ARMBot" ascii
    $s2 = "WBcG91bGxpZ2h0Lhttp://poullight.ru/keys.txt" ascii 
    $s3 = "Poullight.exe"
    $s4 = "\\wallets\\wallet.dat" wide ascii
    $s5 = "=====================================" wide ascii
    $s6 = {2F 7B 00 30 00 7D 00 3C 00 63 00 6C 00 62 00 61
        00 73 00 65 00 3E 00 7B 00 ?? 00 7D 00 3C 00 2F
        00 63 00 6C 00 62 00 61 00 73 00 65 00 3E 00}
$s7 = "Select * from Win32_ComputerSystem" wide ascii

condition:
    uint16(0) == 0x5A4D and all of them
}

参考来源

Yoroi

*本文作者:Avenger ,转载请注明来自 FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK