『P2P僵尸网络漏洞研究——mozi』 netgear路由器漏洞复现
2021-07-29 12:38:27 Author: www.secpulse.com(查看原文) 阅读量:48 收藏

0x0 前言

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

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

1.PNG

图1

2.PNG

图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.PNG

图3

0x3 工具

  • 静态分析:IDA

  • 获取文件系统:binwalk

0x4 测试环境

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

0x5 漏洞分析

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

4.PNG

图4

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

5.png

图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.png

图6

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

7.png

图7

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

8.png

图8

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

9.png

图9

0x6 小结

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

本文作者:知微攻防实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/163410.html


文章来源: https://www.secpulse.com/archives/163410.html
如有侵权请联系:admin#unsafe.sh