Thallium病毒分析
本帖最后由 asjkddas 于 2021-7-6 13:25 编辑---
title: Thallium病毒分析
date: 2021-05-11 15:13:56
tags: Pc样本分析
---
# 分析过程
样本类型:doc
样本利用方式:宏代码利用
![](https://img-blog.csdnimg.cn/img_convert/f12ec48c948927e1425cd23b7313d24c.png)
原始病毒样本是通过 宏代码利用然后远程连接c2服务器进行下载.so文件
把通过c2 服务器下载的 payload 后缀名改为.exe
直接分析.exe 文件后续的payload文件
下载的TEMP.so为exe文件,md5为: f160c057fded2c01bfdb65bb7aa9dfcc
行为分析:用process monitor 监测 payload的行为 ,设置过滤器重命名为 tt.exe
可以看到一些对文件的操作 , 还有注册表之类的
主要行为:
在c:programdata \a7963 下拷贝自身过去
![](https://img-blog.csdnimg.cn/img_convert/84c40b1654ef446e4a404a0925e9c2d3.png)
![](https://img-blog.csdnimg.cn/img_convert/e90fde0ac980fb0069aef0645e99cf27.png)
无壳
分析过程:
1.查了资料后知道这是 MFC的程序 ,看代码的特征,确实是MFC独有的
2.行为分析的时候(检测行为时)也可以感受到 在运行之后有个明显的时间差才有弹窗
![](https://img-blog.csdnimg.cn/img_convert/621daae931a63c297ce4454d259eeefb.png)
大循环 造成延迟的主要原因
0x0BAADBEEF ----> 3131948783
VirtualProtect:
![](https://img-blog.csdnimg.cn/img_convert/fae521966323ecc6a7ac67491f9f598e.png)
0x40 : 启用对已提交页区域的执行、读和写访问
**循环结束之后,先用VirtualProtect函数更改0x422548到0x42A548的内存属性为0x40,也就是可读可写可执行,**
之后调用401670 函数,函数不能反汇编出来,直接看汇编代码
![](https://img-blog.csdnimg.cn/img_convert/af6fdfc9256d3f29466daa87b52978cc.png)
![](https://img-blog.csdnimg.cn/img_convert/0891e274e1ea9d9d2f1b170f2d42c9e7.png)
![](https://img-blog.csdnimg.cn/img_convert/d8682e45770d1fcdf2e5818c94bd0abe.png)
![](https://img-blog.csdnimg.cn/img_convert/390fe3e75c33dba23b44598d6f7464a3.png)
加载有效地址(load effective address)指令就是lea,他的指令形式就是从内存读取数据到寄存器,但是实际上他没有引用内存,而是将有效地址写入到目的的操作数
![](https://img-blog.csdnimg.cn/img_convert/d1f13bba760ad9fb7f94ef054ba4286d.png)
在4012A2 处下断点,之后f8 查看407068处的汇编发现内容已经改变
![](https://img-blog.csdnimg.cn/img_convert/7beac3e99a4303f593e28ca58a98d166.png)
![](https://img-blog.csdnimg.cn/img_convert/5be6d8c237868b7ca783e18dc9b64de9.png)
前:
![](https://img-blog.csdnimg.cn/img_convert/991761078b1f11f3998d35f4784fb7e5.png)
后:
![](https://img-blog.csdnimg.cn/img_convert/5e800ca3fd218c932a5009fb04e7e145.png)
一步步跟一下 看看解密后的内容都干了什么
![](https://img-blog.csdnimg.cn/img_convert/ee55ef67a74e1378fe6212ad308525ef.png)
当执行 00427115 的指令时发现很大的延迟 。回车跟进 004255c8 函数看一下内容:
![](https://img-blog.csdnimg.cn/img_convert/bf063d2d1efca956da4e107d5b812aa0.png)
熟悉的大循环
返回上级函数,接着向下跟,观察寄存器的值的变化,
![](https://img-blog.csdnimg.cn/img_convert/512fcd1568ad21a9b695ea6ee20db3ab.png)
出现字符串
![](https://img-blog.csdnimg.cn/img_convert/4f2094f5ff3b8fccca0d228fbecff167.png)
疑似解密具体不清楚干啥 接着跟
![](https://img-blog.csdnimg.cn/img_convert/fbf209bc65011832659f972771340303.png)
运行到这的时候弹出cmd窗口,速度太快 截不到图
跟进函数 004236A8内部 : 一步步简单跟一下
00423827处 重新创建自身进程
![](https://img-blog.csdnimg.cn/img_convert/07c3e2807bc9f36c99ee237ba558cffa.png)
0042442A处 创建傀儡进程
![](https://img-blog.csdnimg.cn/img_convert/fdd55cfcae33abb5e7d723ff538d2ae9.png)
424475
![](https://img-blog.csdnimg.cn/img_convert/54249edb58749383bcdd3851f6bfb1d4.png)
通过ZwResumeThread恢复目标进程执行
![](https://img-blog.csdnimg.cn/img_convert/6828b3b5bc900facdf652a639ce3f725.png)
# 找解密的文件存在哪了:
出现字符串之后单步跟 ,找到解密的文件
![](https://img-blog.csdnimg.cn/img_convert/dfe2f808022dfff62ef084c8aea919e2.png)
另一种找 解密的注入的傀儡进程pe 的方法
调用ZwResumeThread、ZwSetContexThread这一系列的函数进行傀儡进程注入的时候,注意观察参数和右边的寄存器窗口,会有注入的目标PE的内存地址
![](https://img-blog.csdnimg.cn/img_convert/ce88b5b1a5e0aa2c23a78fd05f99df6e.png)
( resumethread()将新的指令指针指向添加的代码并恢复线程执行:之后执行注入的部分)
从resumethread中一步步单步跟 之后rent到4271f3处 看eax处跟随到数据窗口就是 注入的pe
![](https://img-blog.csdnimg.cn/img_convert/5c44ed88f3254897ef3e57104f8ac0af.png)
压栈 eax值 pe的首地址
**重新调试 先看解密后的地址再跟resumethread后 的地址 发现pe存的地址相同**
# dump解密文件,分析:
使用oddump下来的格式不是pe文件格式使
使用x32dbg dump pe文件
选中pe文件,右键二进制编辑,复制
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XpuRVhVt-1625548021171)(https://i.imgur.com/KuPAdii.png)]
使用winhex保存文件 okokook.exe(编辑,剪贴板数据,写入,ascii-hex)
![](https://img-blog.csdnimg.cn/img_convert/0ccae963d40d7ccbd5a9d4e6708847f7.png)
# IDA对后续okokook.exe进行分析
程序中的字符串均已加密,程序定义了一个字符串a7963b909152f8ebc3ec69b1dee2b255a9678a5用于动态解密其他字符串
![](https://img-blog.csdnimg.cn/img_convert/d120060bd9fffc303664d5c10d154989.png)
![](https://img-blog.csdnimg.cn/img_convert/bd3f60f63390f23bc8923fbe5e1b5e6a.png)
![](https://img-blog.csdnimg.cn/img_convert/6cbf510b458bf022303734586be7d09b.png)
分析401040函数
![](https://img-blog.csdnimg.cn/img_convert/473781dd4ec766206ef8c95c63bcade4.png)
4014D0函数大量使用解密函数,动调看解密出什么
![](https://img-blog.csdnimg.cn/img_convert/96db7759d9a1b9c44955e7e4a0447965.png)
![](https://img-blog.csdnimg.cn/img_convert/27613a06ad913bb322c4a1c3d2d121a7.png)
![](https://img-blog.csdnimg.cn/img_convert/c9c0df94664ab26b3c2bbc2b00e3d052.png)
程序会调用这个解密函数解密出一系列杀软文件名并判断是否存在这些杀软文件名。。。。。同理动调出剩下的杀软名
![](https://img-blog.csdnimg.cn/img_convert/a66b9eaf8961d529baa1eb49fe7cefd8.png)
接着动调该函数401040
得到创建的文件目录
![](https://img-blog.csdnimg.cn/img_convert/a639171d167a95076c2a8f44fbae0fe4.png)
接下来 ,创建进程
![](https://img-blog.csdnimg.cn/img_convert/203450c1ba044fc7640fb30afddafd16.png)ht
![](https://img-blog.csdnimg.cn/img_convert/19af27948e6200cb660320d52f96ea72.png)
cmd指令执行注册表行为,添加自启动项
![](https://img-blog.csdnimg.cn/img_convert/4eb0573c756b8bcedcb15104b59eeedb.png)
发现ip地址,访问不了。
![](https://img-blog.csdnimg.cn/img_convert/4307e2f04a4af8c16b294320406a669d.png)
![](https://img-blog.csdnimg.cn/img_convert/44bd19fc63904c4efb03abd07ef54dc9.png)
后面是解密id版本号 等信息
最终获得的请求信息
![](https://img-blog.csdnimg.cn/img_convert/9c586c45d3d61f5644d724cff52dd7bc.png)
gethostbyname获取目标主机地址
![](https://img-blog.csdnimg.cn/img_convert/0c7b89411ddced1e2635eef4dcbfcfc9.png)
![](https://img-blog.csdnimg.cn/img_convert/e21f21fba71ef72d1e2538b48ed830b0.png)
![](https://img-blog.csdnimg.cn/img_convert/9d5492b3f4b6ca3fde1cbdef844f6eb4.png)
通过post的方式将数据send到目标ip
之后就是永真循环
![](https://img-blog.csdnimg.cn/img_convert/4aeeeff58d449c12aae0798b46636f33.png)
应该是等待服务器返回后续操作命令,但是服务器连接不上,后续行为无法继续分析。 imgur.com图床大陆无法使用,请更换图床。 向大佬学习 要科学才能看到图片,楼主可以修下吗,没工具的就只能看文字了 感谢楼主~~学习一下 分析的相当到位,强 感谢楼主解析分享,学到了{:1_893:} 分析的还行,又涨了一点小知识。{:301_1000:} 楼主分析的不错,支持一下 大神,膜拜!!!!!!!!!!!!
页:
[1]
2