mirai变种之infeno分析
简述
- 名称
- infeno
- 覆盖平台
- arm(armv5,armv6,armv7)
- mips
- x86_64
- 关联的域名/ip
- 178.128.11.199
- 69.90.132.124
- thotnet.pw
- 发现过程
- 某云发现被持续扫描攻击,从扫描攻击的payload中提取样本
逆向分析
该样本类似于mirai,具有设置watchdog等功能,但是没有设置反adb调试,相应的代码却被替换为解析cnc地址的函数,有点奇怪。
第一处与miral不同之处在于,mirai的cnc地址经过xor加密,放置在table_init函数中。在需要的时候需要解密。而在此处样本中,cnc地址则明文存放在resolv_cnc_addr函数中。如图
2.png
可以看出,首先调用resolv_lookup函数去解析cnc地址thotnet.pw。如果解析失败则跳转至loc_C9F8位置,设置cnc地址为ip 69.90.132.124。
其他地方都与mirai类似,设置watchdog防止设备重启,初始化攻击等。但是在main函数中,竟然初始化自定义的攻击函数exploit_worker。这让该变种具备了使用exp去攻击的功能。
exploit_worker函数很简单,直接调用各个子攻击函数,如图
3.png
每个攻击函数在调用之前,都要针对性的生成IP,例如GPON80_IPGen等等,然后再调用exp函数。下面以
exploit_socket_huawei
为例。首先调用HUAWEI_IPGen生成目标IP,如图
4.png
5.png
调用random生成随机数,然后通过sprintf生成完整的ip地址。一共成成5组。这与mirai不同之处在于,mirai生成随机IP后,会刻意避开部分IP地址。但是在这些函数中,没有避开任何IP。而在该样本的scanner_init中,却又引用了原版mirai的生成IP算法,如图
15.png
生成这5组随机IP地址后,再调用
exploit_socket_huawei
去攻击。exploit_socket_huawei
函数如图所示6.png
可以看出该函数很简单,建立socket链接,发送包含exploit代码的http请求,然后关闭socket链接。在包含exploit代码的http中,包含了wget下载该样本的shell代码,也就是说如果目标设备存在漏洞的话,则直接下载该mirai样本。这样降低了exploit函数的复杂度。
可以粗略的看一下,该样本包含了数种exp代码,如图
7.png
危害程度甚至比mirai还大。不过可疑的是,在搜索引擎中,发现该exploit代码早已被人上传pastebin网站上。经过比对,发现只有个别之处不一样,其他大部分都相同。该文件上传者还收集mirai变种样本。目前暂未发现该文件上传者与此样本有关
8.png
在table_init函数中,存放该样本一些重要配置信息,例如cnc端口等。这里的加密为简单的异或加密,加密密钥存放在data段。加密密钥和解密函数如图
9.png
10.png
可以根据此写一个解密脚本
def decode_str(s):
res = []
key = 0xdedefbaf
a = key & 0xff
b = (key >> 8) & 0xff
c = (key >> 16) & 0xff
d = (key >> 24) & 0xff
for i in s:
i = ord(i)
i ^= a
i ^= b
i ^= c
i ^= d
res.append(chr(i))
res = "".join(res)
print(res)
解析出cnc的端口为961,另外还有一串奇怪的字符串1gba4cdom53nhp12ei0kfj。我们可以使用nc去链接cnc,不过由于不知道用户名和密码,所以作罢。我们将这串奇怪的字符串使用google搜索。竟然发现了该样本的代码。
11.png
将源码下载下来,发现大部分都与此样本相似,只有个别极少的内容不一致。
12.png
该样本与mirai类似,只不过魔改了一下。在网站中可以发现该网站管理员的instgram。点进去发现这人经常在几种炫耀自己ddos攻击。不过因为此代码已经公开,不确定此人是否与该样本有关。如图
14.jpg 13.jpg
解决方案
1.及时升级路由器等智能设备的固件
2.不要随便链接公网,设置好防火墙等
网友评论