前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

如何反编译D-Link路由器固件程序并发现它的后门_支点网 当前位置:当前位置:支点网 >> 新网络设备频道 >> 路由器 搜索模块、右侧电子杂志--> 滚动新闻: --> 如何反编译D-Link路由器固件程序并发现它的后门 作者:佚名 来源:互联网 时间:2013-11-4 13:34:14 责任编辑:蒋菁 一时兴起,我下载了D-link无线路由器(型号:DIR-100 revA)的固件程序v1.13。使用工具Binwalk,很快的就从中发现并提取出一个只读SquashFS文件系统,没用多大功夫我就将这个固件程序的web server (/bin/webs)加载到了IDA中: --> 一时兴起,我下载了D-link无线路由器(型号:DIR-100 revA)的固件程序v1.13。使用工具Binwalk,很快的就从中发现并提取出一个只读SquashFS文件系统,没用多大功夫我就将这个固件程序的web server (/bin/webs)加载到了IDA中: /bin/webs中的字符信息 基于上面的字符信息可以看出,这个/bin/webs二进制程序是一个修改版的thttpd,提供路由器管理员界面操作功能。看起来是经过了台湾明泰科技(D-Link的一个子公司)的修改。他们甚至很有心计的将他们很多自定义的函数名都辅以“alpha”前缀: 明泰科技的自定义函数 这个alpha_auth_check函数看起来很有意思! 这个函数被很多地方调用,最明显的一个是来自alpha_httpd_parse_request函数:  调用alpha_auth_check函数 我们可以看到alpha_auth_check函数接收一个参数(是存放在寄存器$s2里);如果alpha_auth_check返回-1(0xFFFFFFFF),程序将会跳到alpha_httpd_parse_request的结尾处,否则,它将继续处理请求。 寄存器$s2在被alpha_auth_check函数使用前的一些操作代码显示,它是一个指向一个数据结构体的指针,里面有一个char*指针,会指向从HTTP请求里接收到的各种数据;比如HTTP头信息和请求地址URL: $s2是一个指向一个数据结构体的指针 我们现在可以模拟出alpha_auth_check函数和数据结构体的大概样子: alpha_auth_check本身是一个非常简单的函数。它会针对http_request_t结构体里的一些指针进行字符串strcmp比较操作,然后调用check_login函数,实际上就是身份验证检查。如果一旦有字符串比较成功或check_login成功,它会返回1;否者,它会重定向浏览器到登录页,返回-1; alpha_auth_check函数代码片段 这些字符串比较过程看起来非常有趣。它们提取请求的URL地址(在http_request_t数据结构体的偏移量0xB8处),检查它们是否含有字符串“graphic/”或“public/”。这些都是位于路由器的Web目录下的公开子目录,如果请求地址包含这样的字符串,这些请求就可以不经身份认证就能执行。 然而,这最后一个strcmp却是相当的吸引眼球: alpha_auth_check函数中一个非常有趣的字符串比较 这个操作是将http_request_t结构体中偏移量0xD0的字符串指针和字符串“xmlset_roodkcableoj28840ybtide”比较,如果字符匹配,就会跳过check_login函数,alpha_auth_check操作返回1(认证通过)。 我在谷歌上搜索了一下“xmlset_roodkcableoj28840ybtide”字符串,只发现在一个俄罗斯论坛里提到过它,说这是一个在/bin/webs里一个“非常有趣”的一行。我非常同意。 那么,这个神秘的字符串究竟是和什么东西进行比较?如果回顾一下调用路径,我们会发现http_request_t结构体被传进了好几个函数: 事实证明,http_request_t结构体中处在偏移量0xD0处的指针是由httpd_parse_request函数赋值的: 检查HTTP头信息中的User-Agent值 将http_request_t + 0xD0指针指向头信息User-Agent字符串 这代码实际上就是: 知道了http_request_t偏移量0xD0处的指针指向User-Agent头信息,我们可以推测出alpha_auth_check函数的结构: 换句话说,如果浏览器的User-Agent值是“xmlset_roodkcableoj28840ybtide”(不带引号),你就可以不经任何认证而能访问web控制界面,能够查看/修改路由器的设置(下面是D-Link路由器(DI-524UP)的截图,我没有DIR-100型号的,但DI-524UP型号使用的是相同的固件): 访问型号DI-524UP路由器的主界面 基于HTML页上的源代码信息和Shodan搜索结果,差不多可以得出这样的结论:下面的这些型号的D-Link路由器将会受到影响: • DIR-100 • DI-524 • DI-524UP • DI-604S • DI-604UP • DI-604+ • TM-G5240 除此之外,几款Planex路由器显然也是用的同样的固件程序: • BRL-04UR • BRL-04CW 你很酷呀,D-Link。 脚注:万能的网友指出,字符串“xmlset_roodkcableoj28840ybtide”是一个倒序文,反过来读就是“editby04882joelbackdoor_teslmx”――edit by 04882joel backdoor _teslmx,这个后门的作者真是位天才! 【凡属支点网原创内容,版权所有,未经授权谢绝转载。内容合作,请联系市场部,否则支点网将保留追究其法律责任的权利。】 分享到: 【字体:大 中 小】【打印此文】【关闭窗口】【论坛】 输入您的搜索字词: 图片新闻 --> 相关评论 --> 专题 让移动信息化触手可及 ·移动CRM诠释如影随形的手机·金道助力企业强化IT业务支持·曙光全自主龙腾服务器强势发·浪漫与激情 女性最爱—三星S·聚焦客户全生命周期管理 提 会展活动 苹果Mac电脑:黑客们的下一个索尼CEO回应PSN网络被黑事件:分析:为何云计算与开源密不可英特尔CEO欧德宁:与诺基亚合天后绽放 ideapad Y470夏日来iPad 2再引发伤人事件 三名男云计算安全危机:黑客攻击再翻IDC:云计算、物联网引领未来 论坛版块 --> 下载 会计电算化模拟试题 用友财务软件说明书 投标书 项目经理全面管理沙盘实战模拟演练课程简介 SAP Business One预装版独家下载 GPS自动导航仪项目 关于对项目部管理人员工资制度进行——修订的办法 天心鞋业销售方案 整合营销内部培训 《毕博管理--清华紫光(全套)》 排行榜 “网络间谍黑客”虽层出不穷 但大部分根本不足为惧 惠普CTO:100TB忆阻器驱动器或将于2018年面世 AT&T:CIO们希望网络可编程 SDN+NFV:彻底释放网络的力量 IBM将关闭其SCE智慧云计算服务 大数据发现:四季度宏观经济持续向好 DCN大数据时代理想网络 业务定义的网络 如何反编译D-Link路由器固件程序并发现它的后门 大数据产业"光谷路径"初见雏形 大数据:网络视频行业破局的关键必要条件 支点简介 | 联系我们 | 广告服务 | 电子杂志 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈 | 网站地图 | 友情链接 支点网 | 在线研讨会 | Ziff Davis | PC Magazine | 1UP | Baseline | CIO Insight | eSeminars | eWEEK | ExtremeTech | Microsoft Watch 指导:中国软件行业协会管理软件分会 支点网版权所有 京 ICP100529 京公网安备 110102003189 京ICP备09001380号-5