星辰丿 发表于 2024-8-13 21:51

好心群友给的外挂大礼包 -- 记一次远控马分析

最近玩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上通信的,后面有空在研究了。

感谢这位群友送的大礼物。

Hmily 发表于 2024-8-14 16:31

图片居中看的太难受了,我给你取消直接默认靠左了,另外底部有2个图是不是插入丢了,补一下插入?

a13005746827 发表于 2024-8-14 00:08

有个疑问,病毒检测杀软后真的能干掉吗? 现在杀软不都是有主动防御

星辰丿 发表于 2024-8-13 22:04

寄了 图顺序乱套了。。。。

justwz 发表于 2024-8-13 22:16

跟着大佬学逆向

LTCS888 发表于 2024-8-13 22:35

跟着大佬学逆向

cnmingxing 发表于 2024-8-13 23:19

感谢分享

丶七年 发表于 2024-8-13 23:32

{:1_886:}上报网警,大哥是不是G了

Figxas 发表于 2024-8-13 23:56

笑死了,大哥估计也没想到来了个真家伙的哈哈,3c3u我貌似也玩过哈哈,2b2t就进去转了一圈。

bwcloud 发表于 2024-8-14 00:22

嗯哼?咋用?

yinsel 发表于 2024-8-14 00:46

膜拜大佬,分析的详略得当,学习了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 好心群友给的外挂大礼包 -- 记一次远控马分析