StealBit,LockBit勒索病毒黑客组织提供的专用窃密木马。截至2021年6月,LockBit集团运行了一个勒索软件联盟计划,LockBit 2.0,该计划为联盟提供了LockBit勒索软件和StealBit数据外泄工具。作为联盟成员招募活动的一部分,LockBit集团通过比较勒索软件StealBit与其他解决方案来宣传LockBit勒索软件和 StealBit的特点。小组声称StealBit更胜一筹,尤其是在数据传输速度方面:
我们根据现存的网文直接开刀,很多细致的动态跟踪过程没必要再去重复,过程中有引用网文思路的我会提到并且拉过来片段和链接,节省时间,先peid查一下壳
delphi写的?并且导入导出表看起来都是加密。之后发现首发分析的国外牛表示“该样本没有能生成导入表哈希,并不是工具错误,而是样本的导入表完全是空的,没有导入任何 Windows API”换个工具查壳
好的,c才合理一些,不管啥语言,没有壳就是了。google了下这个玩意儿,发现有个项目已然将他的字符串加密提取脚本做出来了。
我们先来跑一下结果看看
基本信息也都有数了,我们直接黑盒扔到OD中查看跟一下看看
执行窗口的显示字串与脚本提取的敏感字串挺符合。我们重新载入跟着看下一些过程中的关键词判断下他更细致地干了什么 F8到第二个call的地方堆出了kernel32的进程,我们就此右键查看一下字符串
ASCII字符串
发现我们跟入的地址下面开始定义网速,自我删除,窗口隐藏,跳过系统文件,以及文件大小定义和一些基本信息获取。那么哪些预置参数对此进行定义呢。继续查找UNICODE字符串
与此文中描述的特征符合https://www.cybereason.com/blog/threat-analysis-report-inside-the-lockbit-arsenal-the-stealbit-exfiltration-tool 证明我们跟进的call没有大问题。
Command line parameter 命令行参数 |
Description 描述 |
Required / optional 必需/可选 |
Default value 默认值 |
<path to file or folder> < 路径到文件或文件夹 > |
This parameter specifies the filesystem path to the file or the folder whose content StealBit is to exfiltrate. Setting this parameter configures StealBit to read and exfiltrate the content of the file, or the content of the files placed in the folder. 此参数指定文件或文件夹的文件系统路径,该文件或文件夹的内容要被 StealBit 外泄。设置此参数可以配置 StealBit 读取和退出文件的内容,或者文件夹中文件的内容。 |
Required 必需品 |
none 没有 |
-hide/-h yes/y | no/n - hide/-h yes/y/no/n |
This parameter controls the visibility of the graphical user interface of StealBit—that is, this parameter hides (yes/y) or displays (no/n) windows that StealBit creates. 这个参数控制 StealBit 的图形用户界面窗口的可见性,也就是说,这个参数隐藏(yes/y)或显示 StealBit 创建的(no/n)窗口。 |
Optional 可选的 |
no/n: StealBit displays windows No/n: StealBit 显示窗口 |
-delete/-d yes/y | no/n - delete/-d yes/y/no/n |
This parameter configures StealBit to self-delete (yes/y)—that is, to delete the executable file that implements StealBit from the filesystem of the compromised system when StealBit is finished executing—or not to self-delete (no/n). 该参数将 StealBit 配置为自删除(yes/y) ,即在 StealBit 执行完毕后从受损系统的文件系统中删除实现 StealBit 的可执行文件,或者不进行自删除(no/n)。 |
Optional 可选的 |
no/n: StealBit does not self-delete 不/不: StealBit 不会自我删除 |
-net/-n <transfer rate> - 净额/-n < 转移率 > -once/-o <transfer rate> - 一次/-o < 转帐率 > |
This parameter configures StealBit to exfiltrate file content at the specified rate, where rate is an amount of exfiltrated file content in KBs, MBs, or GBs, over 15 seconds. 这个参数配置 StealBit 以指定的速率撤出文件内容,其中的速率是指 KBs、 MBs 或 GBs 中超过15秒的撤出文件内容量。 |
Optional 可选的 |
unlim: there is no file content exfiltration rate Unlim: 没有文件内容外泄率 |
-skipfiles yes/y | no/n - skipfiles yes/y/no/n |
This parameter configures StealBit to not exfiltrate the content of files with specific filename extensions (no/n). 此参数可以配置 StealBit,使其不用特定的文件扩展名(no/n)来过滤文件内容。 |
Optional 可选的 |
yes/y: StealBit does not consider the filename extensions of files as a criterion for file content exfiltration 是/y: StealBit 不认为文件的文件扩展名是文件内容外泄的标准 |
-skipfolders yes/y | no/n - skipfolders yes/y | no/n |
This parameter configures StealBit to not exfiltrate the content of files that are placed in specific folders (no/n). 这个参数可以配置 StealBit 不过滤放在特定文件夹(no/n)中的文件内容。 |
Optional 可选的 |
yes/y: StealBit does not consider folders as a criterion for file content exfiltration Yes/y: StealBit 不认为文件夹是文件内容外泄的标准 |
-file/-f <file size> - file/-f < file size > |
This parameter configures StealBit to exfiltrate the content of only those files of a size equal to, or less than the specified file size in KBs, MBs, or GBs. 此参数可以配置 StealBit,以便只过滤那些大小等于或小于 KBs、 MBs 或 GBs 中指定文件大小的文件的内容。 |
Optional 可选的 |
unlim: there is no maximum file size for file content exfiltration Unlim: 没有文件内容外泄的最大文件大小 |
Examples 例子 |
|||
stealbit.exe C:UsersuserDesktopfile.db -hide y -skipfiles n 用户: Users Desktop file.db-hide y-skipfiles n stealbit.exe C:UsersuserDesktop -net 5MB -delete y -h y -skipfolders n -file 2GB 5 MB-delete y-h y-skipfolders n-file 2 GB |
|||
继续下一个call然后F7跟进,到了另一个程序领空,继续看下字符串,粗略判断下这个区段在干啥。
不好意思,我并不知道他在干甚。我们本着几个原则:1、遇到灰的跳和call就F8,2、遇到红跳和call就F7。忽然程序运行俗称“跑飞了”,就在跑飞的上一句F2下断,然后重载程序F9运行到断点位置,F7步过刚才的跑飞点,继续跟跳转和call,看他如何调用一些敏感字符串,然后结合自己的红队经验加以判断他干了什么。秉承着这几个点,再跟一个call看到的东西就比较显而易见了
那么到此为止基本上应付一些简单的恶意软件问题不大了,但是要写专杀工具或者检测工具,这可就要相当的汇编与逆向功底了。届时明年待我搞定osce之后,我们系列文章见。
参考文章:
【1】https://github.com/soolidsnake/stealbit1.1_config_extractor
【2】https://yoroi.company/research/hunting-the-lockbit-gangs-exfiltration-infrastructures/
【3】https://www.cybereason.com/blog/threat-analysis-report-inside-the-lockbit-arsenal-the-stealbit-exfiltration-tool
原文始发于微信公众号(靶机狂魔):一篇无需任何逆向基础而分析勒索团队窃密程序行为的科普文
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论