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

转载,详见原文: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解包

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


说明: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 文件夹下

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

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

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

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

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

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

  • 存在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字符串比较匹配时

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

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

函数交叉调用关系

  • httpd_parse_request
  • alpha_httpd_parse_request
  • alpha_upload
  • alpha_auth_check

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

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

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

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

传入的参数是 User-Agent?

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

结论:

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

PS:

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

10、对漏洞进行验证

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

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

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

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

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

成功绕过了登录认证过程

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355