美文网首页
D-Link路由器后门固件逆向分析及漏洞利用

D-Link路由器后门固件逆向分析及漏洞利用

作者: andy_shx | 来源:发表于2020-05-20 17:29 被阅读0次

    转载,详见原文:http://www.atomsec.org/%E5%AE%89%E5%85%A8/d-link%E8%B7%AF%E7%94%B1%E5%99%A8%E5%90%8E%E9%97%A8%E5%9B%BA%E4%BB%B6%E9%80%86%E5%90%91%E5%88%86%E6%9E%90%E5%8F%8A%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8/

    1、下载D-Link DIR-100固件

    下载链接:ftp://ftp.dlink.eu/Products/dir/dir-100/driver_software/DIR-100_fw_reva_113_ALL_en_20110915.zip

    2、使用binwalk -e解包

    image

    查看解压后的文件,发现squashfs-root文件夹下内容为空,并且存在另一个squashfs文件

    image

    说明:squashfs-root文件夹下内容为空的问题是由于sasquatch安装的有问题导致的,可以通过重新安装sasquatch解决,参考:https://www.jianshu.com/p/29c99274ff85,具体如下:

    <meta charset="utf-8">

    百度了一下,在这篇文章中找到答案binwalk WARNING: Extractor.execute failed to run external extractor 'sasquatch -p 1 -le -d '%%squash
    需要安装sasquatch:
    安装地址位于:
    https://github.com/devttys0/sasquatch
    安装步骤

    1. 打开命令行(或到如下github上手动下载安装)
      git clone https://github.com/devttys0/sasquatch
    2. 安装依赖环境
    $ sudo apt-get install build-essential liblzma-dev liblzo2-dev zlib1g-dev
    
    
    1. cd 到clone下来的文件下安装sasquatch
    $ ./build.sh
    
    

    之后,再进行binwalk解压,终于成功。

    image

    作者:飞熊先生
    链接:https://www.jianshu.com/p/29c99274ff85
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


    解压出来的文件主要有两类,可以查看文件夹下内容来具体区分查看

    • 路由器二进制可执行文件,通常在bin sbin 文件夹下

    image
    • 路由器web端文件,通常在htdocs web webs www文件夹下

    image

    3、静态分析,将bin/webs二进制程序载入idapro中

    在strings window中找到一个有趣的字符 thttpd-alphanetworks/2.23

    这是一个嵌入式设备常用的小型http服务器,特点是其中的函数都是以alpha_开头

    image

    4、在functions window窗口中找alpha_开头的函数,发现一个疑似登录认证的函数 alpha_auth_check

    image

    5、分析此函数,找到几个比较有趣的地方

    image

    image
    • 存在strstr字符串子串函数,比较的 graphic/、public/ 是路由器的子文件
    • 存在一个硬编码,疑似后门
    • 存在strcmp字符比较函数
    • 存在check_logined登录验证函数

    6、根据上下文分析代码,存在如下逻辑:

    • 0xB8($S0)字符中是否有 graphic/、 public/ 子串
    • 0xD0($S0)字符跟硬编码字符串进行strcmp比较
    • 0xC(S0)与0xE0(S0)代码进行check_logined操作 很可能是用户名和密码或是cookie,session等

    7、仔细观察check_logined登录验证图 可以看到明显的登录绕过可能性 —-> 当strcmp字符串比较匹配时

    image

    初步结论: 此硬编码很可能就是预留的路由器后门

    8、哪一个参数跟此字符串比较?

    函数交叉调用关系

    image
    • httpd_parse_request
    • alpha_httpd_parse_request
    • alpha_upload
    • alpha_auth_check

    根据$S0偏移量0xD0进行字符查找

    image

    根据函数调用关系和字符查找,发现可能的赋值代码处

    image

    9、双击进入定位到偏移代码处

    image

    根据跳转关系向上查找到调用处

    image

    传入的参数是 User-Agent?

    目前还不确定,分析到此有个初步结论

    结论:

    访问站点时设置 User-Agent: xmlset_roodkcableoj28840ybtide 就可以绕过登录验证过程

    PS:

    后门字符串倒置 edit by 04882joel backdoor _teslmx 更加怀疑是后门

    10、对漏洞进行验证

    使用shodan查找使用此后门漏洞缺陷的D-Link路由器,例如型号 DI-524UP

    image

    找到一个站点** http://93.184.71.88:8080**

    访问此站点,使用Burpsuite抓包修改User-Agent的值

    image

    会有个重定向到Home/h_wizard.htm页面,记得此处还需要修改 User-Agent值

    image

    forward值之后,就可以查看到 /Home/h_wizard.htm的页面了

    image

    成功绕过了登录认证过程

    探索路由器后台功能,例如查看有哪些设备连接了此路由器,可以直接查看DHCP

    image

    至此,我们证明了D-Link路由器存在的后门漏洞以及如何进行利用

    相关文章

      网友评论

          本文标题:D-Link路由器后门固件逆向分析及漏洞利用

          本文链接:https://www.haomeiwen.com/subject/lmvnohtx.html