一个.net的样本分析[STMP]
2020-01-22 18:59:00 Author: mp.weixin.qq.com(查看原文) 阅读量:101 收藏


本文为看雪论坛优秀文章

看雪论坛作者ID:剁辣椒炒肉

 
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之类的关键字符串。
- End -

看雪ID:剁辣椒炒肉

https://bbs.pediy.com/user-838468.htm 

*本文由看雪论坛  剁辣椒炒肉  原创,转载请注明来自看雪社区

推荐文章++++

实战栈溢出漏洞

栈溢出原理和利用

堆栈别乱用

栈溢出漏洞--GS和DEP

CVE-2019-0708 bluekeep 漏洞研究分析详细完整版

好书推荐


公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]
“阅读原文”一起来充电吧!

文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458303066&idx=1&sn=c3cd22aa2564879ceab78a69762cb128&chksm=b1818ad086f603c6663586ea0f9a15b538c586a3ea088cfdd9a2d48fe28bdb18f941d34926b6#rd
如有侵权请联系:admin#unsafe.sh