Board logo

标题: 关于磊科(NetCore)全系列路由器中的“疑似后门”程序 [打印本页]

作者: linda    时间: 2015-1-4 15:21     标题: 关于磊科(NetCore)全系列路由器中的“疑似后门”程序

关于磊科(NetCore)全系列路由器中的“疑似后门”程序

2014年12月28日 12:52




    看近年来的路由器后门,多数是内置了超级密码,可直接登录路由管理后台,或是后台开启了FTP,可以任意文件上传下载等,再有就是存在一些很明显的漏洞,这些勉强也说得过去,但如果直接监听端口,可以执行命令上传下载文件,那就有点太说不过去了。也许是为了远程调试设备,维护设备,但是,这些功能是不是有点过了呢?


描述
磊科(NetCore)路由器中内置了一个叫做IGDMPTD的程序,按照它的描述应该是IGD MPT Interface daemon 1.0。该程序会随路由器启动,并在公网上开放端口,攻击者可以执行任意系统命令、上传下载文件,控制路由器。
一切的开始源自于今年8月份买了一个磊科(NetCore)家用路由器。随后发现IGDMPTD,并做了测试工具验证。
Google后发现在今年825日,趋势科技的研究员Tim Yeh发表文章描述了这个疑似后门IGDMPTD,并报告厂商。
http://blog.trendmicro.com/trendlabs-security-intelligence/netis-routers-leave-wide-open-backdoor/
随后在今年103Tim Yeh再次发表文章,指出磊科官方并未完全删掉这个后门程序

http://blog.trendmicro.com/trendlabs-security-intelligence/netis-router-backdoor-patched-but-not-really/

随后我在京东购买两款 NW774路由器,并安装官方最新升级固件(2014-11-7日更新),发现使用8
月份编写的测试工具不需修改仍可正常使用。


废话不多说先看看这个”IGDMPTD”都能干嘛。
先拿我自己的路由器来测试一下。IGDMPTD的第一项功能就是可以执行Command。如下图所示,至于能执行哪些命令,这取决于路由器系统中busybox的阉割程度。



第二项功能就是可以上传/下载文件。同样的,能否成功取决于目录是否可写。



第三项功能是IGDMPTD内置了很多功能函数,具体功能和版本相关,下图是我使用的路由器版本提供的MPT功能。



我尝试了几款不同型号的路由器和不同版本的固件,新版本中基本全都提供了上图中的功能,在老版本中可能没有提供这么多 MPT功能,常用的有$WritieMac$ReadMac$ReadSsid$WriteSsid$ReadRegDomain$WriteRegDomain$TestUsb$SetSsid$GetSsid

注意看$ReadWwwPasswd这条指令,可以获取路由器WEB登录密码,下图中的guest就是我路由器管理员登录密码。相比之下,DLink内置一个万能密码来登录路由管理页面简直弱爆了。


以上测试环境是内网。如果这个端口只是开在内网,那就没什么问题了,方便调试和维护路由器。但可怕的是IGDMPTD监听的IP地址是INADDR_ANY,,意味着这个端口将暴漏在公网上。为了验证该程序的危害,我用nmap随便扫了几个IP,并下载了/etc/passwd文件。





到这里相信大家已经见识到IGDMPTD的可怕之处了。希望官方能给大众一个合理的解释,我相信这是开发人员为了方便调试设备留下的程序,只是不小心将IP绑定在了公网。


IGDMPTD分析
/bin目录下存在一个功能强大的可执行文件igdmptd,该程序会随路由器启动,并监听端口,通过逆向分析发现其提供了任意命令执行、内置功能、文件上传下载功能。

程序运行环境为MIPSBig Endian)。将igdmptd拖进IDA可自动识别,将程序解析为mips汇编指令。

create_server函数中创建了udpsocket网络连接,并绑定53413端口,sockAddr.sin_addr设置为INADDR_ANY,意味着53413端口将暴漏在公网。在netcore各路由器中几乎都是使用该端口,若被攻击者利用,后果不堪设想。



通过IDA静态分析可以发现几个比较有特点的函数。这也是igdmptd的主要工作函数,igdmptd的可怕之处就在于这几个函数。


do_mptlogin是登录验证函数。

验证通过会将登陆状态保存在全局变量中,第二次发包时就会绕过口令验证部分。也就是说,只要igdmptd被人成功连接一次, 后来者可直接发包使用igdmptd的其他功能,除非路由器重启,全局变量重置。


do_syscmd 用于执行系统命令。


do_getfile 可以从路由器下载任意文件到本地。


do_putfile 可以上传任意文件到路由器。


do_mptfun 提供一些常用功能,比如

   

另外宽带通这些宽带厂商与磊科合作出产的路由器也存在这些问题。



基本就是这些内容了,测试工具已销毁。


原文: http://weibo.com/p/1001603792736686871336


[ 本帖最后由 linda 于 2016-2-15 16:20 编辑 ]




欢迎光临 中神通公司技术论坛 (http://trustcomputing.com.cn/bbs/) Powered by Discuz! 6.0.0