『P2P僵尸网络漏洞研究——mozi』 netgear路由器漏洞复现

阅读量    87509 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

0x0 前言

IBM的研究人员指出,Mozi的代码与Mirai及其变体重叠,并重用Gafgyt代码,在过去的一年里迅速“登上王座”,在2019年10月至2020年6月期间观察到的物联网网络攻击流量中占90%。——《新的僵尸物联网攻击流量之王:Mozi》;作者:安全牛

Mozi的传播利用了许多设备的漏洞,其中就包括了CVE-2016-6277,如下图1、图2所示。

图1

图2

 

0x1 简介

NETGEAR R6250在1.0.4.6.Beta之前,R6400在1.0.1.18.Beta之前,R6700在1.0.1.14.Beta,R6900,R7000在1.0.7.6.Beta之前,R7100LG在1.0.0.28.Beta之前,R7300DST在1.0.0.46.Beta之前,1.0.1.8.Beta之前的R7900、1.0.3.26.Beta,D6220,D6400,D7000之前的R8000,以及可能的其他路由器,允许远程攻击者通过shell在 cgi-bin/ 的路径中执行任意命令。

以Netgear R7000,版本V1.0.7.02_1.1.93为例,复现CVE-2016-6277。

 

0x2 准备

版本 V1.0.7.02_1.1.93:http://support.netgear.cn/doucument/More.asp?id=2251

调试的程序:httpd

图3

 

0x3 工具

静态分析:IDA
获取文件系统:binwalk

 

0x4 测试环境

Netgear R7000路由器真机测试,可以在某宝上或者某鱼上购买(价格不贵)。

 

0x5 漏洞分析

使用 binwalk -Me R7000-V1.0.7.2_1.1.93.chk 即可解包成功(固件没有加密,可直接分析)。

图4

将要分析的httpd,拖到IDA中分析,并通过CVE给出的部分信息,大概可以知道,漏洞点出现在图5中。在Mozi程序中,也可以分析出,该漏洞是一个命令执行漏洞,那么只需要找system等命令执行函数即可。

图5

sprintf(cmd, “/www/cgi-bin/%s > /tmp/cgi_result”, v41); 通过该命令可以看出,如果将 %s 换成 ;ls 的话,/www/cgi-bin/;ls > /tmp/cgi_result 那么就会将ls的结果存放到 /tmp/cgi_result,假设 /tmp/cgi_result 可以看到ls的结果,那么证明漏洞就存在此处。如图6是通过开放telnet端口进入之后,查看 /tmp/cgi_result,最终发现和预想的一样。如图5所示,如果需要cmd参数执行成功,那么v41参数就必须可以控制。

图6

往上溯源,发现v41的值来自v14的值,而v14的值来自v10。继续溯源。

图7

如图8可以看到v10的值来自a3,根据多年经验得出a3是路径。

图8

从此处可以看出a3是个url,那么不就是Mozi程序中的,/cgi-bin 了吗?从图8中可以看出 cgi-bin 后面也可以加 ? ,因为v41参数也可以再次出获取到。

图9

 

0x6 小结

这个漏洞相对来说比较简单,适合入门的大白。如果有兴趣调试的话,可以参考 复现影响79款Netgear路由器高危漏洞 。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多