STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
NO.1 前言
Redline Stealer是一种恶意软件,于2020年3月左右出现,据报道它针对美国的医疗保健和制造业。除了会窃取与加密货币应用程序关联的密码和钱包之外,还从浏览器,VPN和消息传递客户端中获取凭据。
NO.2 MfddHqBJSA.exe
样本采用大量的常数赋值和运算进行混淆用来掩盖程序逻辑
过滤掉无用逻辑后,有用的函数只剩下sub_43EE90、sub_43F600、sub_43EEB0和sub_43FD20。
sub_43EE90函数
sub_43EE90会创建一块内存,这里为0xa2714b
sub_43F600函数
sub_43F600将0x41e7a0地址内容复制到新创建的内存0xa2714b
sub_43EEB0函数
sub_43EEB0函数获取VirtualProtect函数的地址,并对0xa2714b权限进行修改
sub_43FD20函数
首先对0xa2714b中存储的数据进行tea解密,这里记作code1。
之后跳转到0xa2714b内存地址执行代码code1。
code1
代码首先会获取各个API的地址
之后获取进程快照,枚举所有进程模块。
解密代码
调用VirtualAlloc创建一块内存地址0x1d0000
将上一步解密出来的数据再次解密到0x1d0000中,记作code2。
在偏移0xe50处会解密出一个PE文件。
跳转到这段解密出code2开头的地方。
code2
获取操作系统版本。
创建内存地址0x2630000
将code2中的PE文件复制到0x2630000处
修改0x00400000处内存属性
将pe文件依次按照PE头,各个区段的顺序复制到0x400000处,之后手动重定位IAT中的函数
这样会将原始的PE文件整个替换掉,成为一个新的程序,跳转回0x400000地址附近程序入口处,将新的PE文件dump出来,新生成的PE文件记作loader。
NO.3 loader
程序进行大量的数据加密,只会在使用时将数据进行异或解密。
先获取环境变量Cor_Enable_Profiling,判断是否为1
遍历所有进程加载的模块,查找是否存在mscorjit.dll和clrjit.dll
获取资源段数据并进行解密,资源段名称为__
解密出的数据为v4.0.30319和两个PE文件。分别为_._.dll和Plots.exe。
可以看到通过CLR去调用了C# 的_._.dll中的___方法。
_._.dll会读取资源段中的数据
看到Plots.exe为实际木马主体,_._.dll执行木马本体。
NO.4 Plots.exe
可以看到尝试连接经过解密之后的地址,地址为"pupdatastart.tech:80"
之后可以看到有扫描选项,包括浏览器、文件、FTP、钱包、tg、VPN、steam等获取隐私信息。
NO.5 IOC
URL
pupdatastart.tech:80
MD5
186e67e5884cec660ba0fdb0cda1bd8c
d664c5f2c06ad9203143dfb39a5102b4
e5b2f2697e482d67eb2727262e0eb526
RECRUITMENT
招聘启事
END
长按识别二维码关注我们
本文始发于微信公众号(雷神众测):RedLineStealer样本分析
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论