好心群友给的外挂大礼包 -- 记一次远控马分析
最近玩MC的3c3u服务器,是一个类似2b2t的无政府服务器,加了官方群,一个好心大哥给我发了一个挂。如此好心,我当然要开心地收下。
UPX -d 脱掉
IDA32启动
主程序
WinMain就一个函数,跟进
逻辑如图,跟踪一下函数,函数名和变量名都是我恢复的。一开始以为是SMC,后来发现是反射加载dll。加载函数如下。
解密函数如下,一眼xxtea。
至此程序逻辑已经较为清晰:反射加载dll,具体为从密文以标准xxtea算法解密数据,然后把数据地址传入加载dll函数,最后调用dll中的函数,函数名为前面传进来的StudyHard。
dll
dump dll的过程可谓艰辛,由于打CTF打多了,最开始写了一个c脚本,结果发现0x15000个u_int32似乎不好打印,后来又尝试保存到文本,效果也一般。(可能是IDA哪里分析出问题了)后来又尝试了下断点让他自己解密,因为他这个dll想执行最后肯定得以无加密方式执行,但是似乎有反调试,运行会卡住,跑不到解密的地方。(复盘时考虑可能是那些抛出异常的地方写了专门的处理,结合下图一堆函数猜测可能是自调反调试)
最后采取的方案:虚拟机直接运行,转储运行文件。这个程序应该是写入计划任务了,重启发现虚拟机里面还有这个样本,那只能说是正合我意了。
直接IDA分析这个内核转储文件。这里直接用windbg打开,显示
吓了我一跳,还以为是天堂之门,后来群里大哥说是调用了64位dll就会这样,而且这样必须用IDA64分析了。
IDA64打开转储文件,直接按G jump到那个加密dll的地址。
MZ开头,舒服了。
dump下来,32位IDA打开
StartAddress
获取路径,写注册表,写开机启动,持久化。
DllMain
查找explorer.exe
查找父进程
都没找到就退出。
获取win版本。
从URL下载文件,写入构造的地址(就是前面获取的)。
查找rundll32.exe,找到就taskkill了。
注册成服务。
等待服务器发送指令(域名不贴了,就是server_domin),控完while(1) sleep
根据系统版本写启动项,驻留。其中win10就用前面分析的StartAdress。
StudyAdress
本来以为这才是正餐,分析了一下,大部分跟dllmain一样。。。
剩余部分有意思的函数
查找这161个杀软是否存在,看到这玩意我第一反应是真牛逼。。。。。
scvh0st.exe,6.
至此已经拆的差不多了,控制方发送字符组成的指令序列,在被控机执行。
另外有意思的是作者把网站的80端口伪装成了一个没备案被拦截的页面,nmap扫了只有22 443 80开着,微步沙箱测到是在3xxxx上通信的,后面有空在研究了。
感谢这位群友送的大礼物。 图片居中看的太难受了,我给你取消直接默认靠左了,另外底部有2个图是不是插入丢了,补一下插入? 有个疑问,病毒检测杀软后真的能干掉吗? 现在杀软不都是有主动防御 寄了 图顺序乱套了。。。。 跟着大佬学逆向 跟着大佬学逆向 感谢分享 {:1_886:}上报网警,大哥是不是G了 笑死了,大哥估计也没想到来了个真家伙的哈哈,3c3u我貌似也玩过哈哈,2b2t就进去转了一圈。 嗯哼?咋用? 膜拜大佬,分析的详略得当,学习了