Dark Nexus僵尸网络分析 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

Dark Nexus僵尸网络分析

ang010ela web安全 2020-07-09 10:30:00
17325085
收藏

导语:​本文分析一款新的IoT僵尸网络——Dark Nexus。

Bitdefender 安全研究人员发现了一款新出现的IoT僵尸网络——Dark Nexus。Dark Nexus利用被黑的智能设备来发起DDoS攻击,通过平台来提供DDoS 租赁服务。

研究人员发现Dark Nexus 通过凭证填充对路由器(Dlink、ASUS等知名品牌)、视频录像机、温感摄像机等不同种类的设备发起攻击,使其加入到僵尸网络中来。截止目前,Dark Nexus 入侵了至少1372个主机充当逆向代理,涉及中国、韩国、 泰国、巴西和俄罗斯。

image.png

image.png

图1 dark_nexus僵尸网络全球受害者分布情况

架构

恶意软件二进制文件使用了一款开源的工具链Aboriginal Linux进行跨平台编译,可以使二进制文件适用于不同的IoT平台。这些二进制文件的大部分都有一个基于UPX的打包器,并且去表了符号和调试信息。但是研究人员发现arm7 二进制中含有一些调试信息。研究人员利用这些调试信息发现了该恶意软件的架构。其中包含以下源文件,分别对应僵尸主机的模块和特征:

· lockdown.c

· main.c

· networking.c

· resolve.c

· socks5.c

· mass_exploiter.c

· reverseproxy.c

· spreader.c

· syn_bruter.c

可执行文件使用了UPX的定制版本进行打包,以防止研究人员进行逆向分析。

通信协议

通信数据包的第一个字节表示命令的类型:

· 0x9a,退出

· 0x69 (‘i’) ,将目标加入到暴力破解目标列表中

· 0xfe,ping C2主机 (发送一个字节0x15)

· 0x4b (‘K’) - kill_attacks

· 0x43 (‘C’) - cmd_not_attack; 第二个字节和表示的含义如下:

 · 1: 在新进程中执行命令

 · 3: kill运行的fork

 · 7: 重启

 · 16: 按端口kill进程

 · 17:kill逆向代理

 · 18: 启动逆向代理

Killer模块

与其他僵尸网络相比,攻击是标准的DDoS攻击。其中browser_ http_req 是非常复杂和可配置的,会尝试将流量伪装成流量器生成的正常流量。Killer模块在特定进程中运行,因为是最后一个初始化的,因此指导所有其他复制的进程的PID,随后会用作白名单。

传播

僵尸主机使用了2个模块来进行一个传播,一个是同步模块,另一个是异步模块。在开启同步扫描器时,僵尸主机会生成一个执行init_syn_bruter函数的进程。在异步机制中,C2会发布一个特定的命令,指明IP和端口。这些信息保存在一个队列——dynamic_queue_head中。僵尸主机会维护一个大小为250的连接列表——bruting_conns。主僵尸主机进程会服用这些连接创建的socket。此外,还会周期性地检查所有连接的timeout,包括到C2的连接。在与C2通信时,就发送一个注册消息。

同步sync (init_syn_bruter)和异步async (fd_event) 机制中都实现了Telnet 协议,并尝试通过预定义的凭证以暴力破解的方式来进行认证。当同步暴力破解器报告受害者给报告服务器时,事实上是发送了一个感染payload,异步机制只通过C2 socket发送一个含有IP、端口和发现的凭证的消息。在一些版本中,异步报告器也会报告给报告服务器(维持蠕虫行为)。通信方法也是不同的,有些样本中是通过TCP 12000或13000端口,有些是通过UDP的12000或13000端口,有的是通过C2 socket(TCP 30047端口)。

攻击者IP:

· 66.175.210.74

· 51.15.120.245

· 45.33.73.134

· 190.115.18.144

· 190.115.18.28

· 51.159.52.250

· 190.115.18.86

· 192.168.100.210

· 192.168.100.27

· 192.168.110.135

· 45.33.84.114

· 45.56.102.170

僵尸主机用于暴力破解的凭证列表如下所示:

image.png

驻留

在不断进化发展过程中,dark_nexus使用了不同的驻留方法。在5.1之前版本中,该功能是在僵尸主机启动过程中执行的:

image.png

图2 反编译的驻留函数,负责停止cron服务

为确保驻留,这些命令会通过停止cron服务和移除用来重启设备的可执行文件的权限来防止设备重启。新版本中使用了另一种驻留函数,在/etc/init.d/rcS 文件中放置了一些命令。首先,从/proc/self/exe中读取僵尸主机代码,并将echo命令格式化并输出到/tmp/dvr_enc 文件,然后执行:

echo -ne “\x7f\x45\x4c...” > /tmp/dvr_enc
chmod 777 /tmp/dvr_enc
/tmp/dvr_enc reboot

驻留函数中执行的另一个shell命令是iptables -F,负责清除iptables规则,确保与C2之间的通信或发送的DDoS payload不会被过滤。

代理模块

在初始化后,僵尸主机会从命令行中提取参数IP和端口,是感染当前设备的公共IP端口,其父设备以HTTP服务器的形式运行。

image.png

图3 设备父设备信息提取的代码

然后僵尸主机会随机生成一个端口,并在新进程中启动其HTTP 服务器(init_reverse_proxy)。并且从host服务器上下载僵尸二进制文件——hoho.[arch],保存到设备上。该操作是循环发生的,以确保本地保存的二进制文件与HTTP服务器上的是同步更新的。代码会使用中心服务器作为其后台。当与后台的连接发生问题时,后台就会更新到指向感染链中父节点的IP和端口。

在蠕虫组件中,代理也用于感染过程:不管用了什么方法,受害者会被重定向到从攻击者处下载一个合适的二进制文件,而非中心化的服务器。

代码模块含有2个字符串,可以用来确保僵尸主机的版本:

· 服务器对GET请求/的响应内容就是这个形式:hoho_fastflux/v4.0

· 发送给后台的请求中使用的代理:User-Agent: checker/v4.0/p

基础设施

僵尸网络的基础设施由以下部分组成,分别是:

· 多个C2服务器。负责发布命令给僵尸主机,使用的域名有:

         · switchnets[.]net:30047

         · thiccnigga[.]me:30047

· 报告服务器。发现有漏洞的服务后,僵尸主机就会将IP和端口报告给报告服务器。在一些版本中,报告服务器是一个域名或硬编码的IP地址,端口是12000.域名与C2使用的相同,IP对应每次解析的地址。

· 托管服务器。样本托管在switchnets.net:80上,可以用HTTP提取。在使用二进制下载器的感染向量中,IP是硬编码的。在dark_nexus版本中有一个反向代理特征,每个受害者都作为托管服务器的代理,在随机端口上提供一般。当端口报告给C2时,僵尸主机就会注册。此外,在感染过程中,同步扫描器会给出其IP和反向代理端口号给受害者。受害者就指导了父服务器的IP和端口,并使用其作为源来周期性地更新其样本集。

image.png

image.pngimage.png

图4 dark nexus感染和服务交互图

本文翻译自:https://www.bitdefender.com/files/News/CaseStudies/study/319/Bitdefender-PR-Whitepaper-DarkNexus-creat4349-en-EN-interactive.pdf如若转载,请注明原文地址:
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务