首页
社区
课程
招聘
[原创]一个.net的样本分析[STMP]
发表于: 2019-12-2 18:55 6137

[原创]一个.net的样本分析[STMP]

2019-12-2 18:55
6137

0x0 前言

 

Pony Fareit木马.net分析--通过STMP协议的.net样本挺多的,写下来当样本记录下

 

0x1 样本信息(截图自Virus total)

 

 

0x2 分析过程

 

1.第一段解密:对资源字符串进行异或解密,解密方式为每个双字减去0x58D1(22737)然后与0x8E异或

 

 

2.第二段解密:将异或获得的XorCode进行Base64解码,得到一个PE文件(dump1,也是.net)

 

 

 

3.dump1内有检测虚拟机的函数IsVM(但是并未执行这一函数体,我们待会进去仔细分析一下)

 

 

4.异或解密资源,并加载其运行(异或Key为:CnajNowpjKsL)。由此可以发现dump1依旧是一个外壳程序,解密出真正的病毒本体(dump2,也是.net)

 

 

 

5.dump2开始干活,先是常规三连:拷贝,隐藏,自启动

 

 

 

 

6.进入木马的特色部分:窃取各个浏览器Cookie,以及mail的内容等等

 

 

 

7.将获取的Cookie打包成zip,绑定STMP邮箱后发送(zip在发送成功后会删除,从而清理痕迹)

 

 

0x3 总结

 

1..net调试一般选择从入口点开始调试,在调试之前最好在静态分析,找到关键处代码(不然跟不进去)

 

2.dump2是一个常见的通过STMP窃密的邮件木马,这里我参考了前辈的分析:https://blog.csdn.net/chr8230401/article/details/100664775

 

3.dump1其实有反虚拟机检测,但是作者并未开启,我们又想进去一探究竟,怎么办呢,只能强改跳转看了(dnSpy的使用感不太好):

 

先尝试右键改下逻辑跳转,发现只能改到当前的那一行(改了也无效,想直接改到函数内部也不行,不知道啥原理)

 

 

然后只能强行改内存了,这种方法也不太友好(只对当前调试程序一次有效,重新F5都要重新改):

 

先右键->查看到反汇编,然后通过汇编定位(Crtl+F搜索函数名快速定位)到关键跳转,内存窗口中crtl+G跳转至该地址,查找对应OPCode修改即可(比如这里是0x74 je->0x75 jne).

 


反虚拟机的操作基本上是查询注册表来比对返回值有无vmware之类的关键字符串
附:md格式上传的图都挂了要重新贴,有没有铁子教一教小伙


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2019-12-3 18:02 被剁辣椒炒肉编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (4)
雪    币: 310
活跃值: (2232)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mark
2019-12-2 19:56
0
雪    币: 172
活跃值: (947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
请问你第一段解密是从哪里过来的?我看了下这个md5,他会联网确认下载并创建服务执行,能否说第一次解密之前如何过来的?
2020-1-30 21:48
0
雪    币: 575
活跃值: (561)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
第一段解密,先静态分析走一遍,找到可疑点下断,开启动态调试,单步跟进慢慢看的
2020-3-2 13:54
0
游客
登录 | 注册 方可回帖
返回
//