最近我在reddit上看到一个帖子“get_local_and_public_ip_addresses_in_javascript”,我想着怎么入侵WiFi路由器。我现在有TP-LINK无线精简版N路由器WR741N,所以我开始用Chrome + Linux上的Iceweasel进行测试。
我首先通过谷歌找到了第一篇文章《路由器黑客组织攻击巴西及美国网络用户》,还有一篇也是来自巴西的非常有意思的文章《巴西450万路由器被黑》。攻击代码被控制攻击IE并以读卡器本地网络范围上的IP地址为目标,其中包括'192.168.0.1' 及 '192.167.1.1'。我想,“用javascript获取本地ip并没有那么难”,于是我开始挖……
我找到了它而且这是我的第一步。我找到了这个IP地址并开始跟路由器对话。因为同源策略的存在,现在的事儿有点难了,你不能直接把XMLHttpRequests发送到路由器。有HTTP基本认证而你不能从对话窗口阅读,并且不能访问头信息等等。
但是对于TP-Link,你可以使用内嵌框架或者img标签。Chrome不顺利,所以我只测试了iceweasel。像我刚才说的,你不能发送GET/POST请求,但可以通过<iframe src="http://admin:admin@192.168.1.1">登录。
绕过同源策略非常有意思的点在于,你真的不需要真正地绕过它,你可以通过内嵌框架登录,或者就像我做的那样,把TP-Link路由器标识放入img 标签里:
http://www.tp-link.com/resources/simulator/TL-WR750N_V5.0/images/top1_1.jpg
但是有一个问题,如果用户名/密码不匹配,会弹出会话窗口(基本认证)并且javascript没法进行关闭/隐藏。经过几个小时的警告及其它试验之后,我仅仅通过setAttribute("id", Math.random())就绕过了。
过了一天,我写了针对我自己路由器的PoC,在视频(0:11)处你会看到绿色的内嵌框架对话框。它是TP-Link标识而且攻击成功实施。
TP-Link有一点非常棒,你可以在他们的网页中查看模拟器:
http://www.tp-link.com/en/support/emulators/
好的,现在我拿到了本地IP,我可以通过wordlist攻击使用“绕过”认证会话的方式破解密码,但是怎么从路由器版本辨别出可能存在的DNS更改呢?我又开始挖模拟器了……
我知道我可以将图像包括在里面,但是脚本怎么办?有一个很好的.js文件, localiztion/str_menu.js
http://www.tp-link.com/resources/simulator/TL-WR750N_V5.0/localiztion/str_menu.js
这基本上是左边目录的结构,所以你可以包含这个<script>,调用预设定义并且看看它们是否已被定义。如何确定用户看到的目录及路由器类型很简单。
你可以观看这里的PoC,建议用Mozilla Firefox无AdBlock模式以及TP-Link路由器观看:
http://www.hacktheplanet.cz/PoC.html
源代码在这儿,有点糙,不过我只编写/测试了2-3天:
https://gist.github.com/vavkamil/50f9c2faf100ad8c5376
如果你没有TP-Link路由器,你可以通过我的“模拟器”使用这个演示:
http://www.hacktheplanet.cz/PoC2.html
写出这样的东西极其简单,而更改DNS设置也只是再多写几行代码的事儿。如果我能够通过TOR上Iceweasel的Javascript获得我的本地/公共IP并且修改我的DNS设置,那怎么自我防御呢?这个世界太可怕了!
EDIT 2:如果你在阅读一些关于“如何配置无线路由”的教程并且已经登录的话,你要用一个其他的浏览器。带有教程的网站可以进行Timeout(超时)设置,过一段时间它会发动入侵。
EDIT 1:脑补一下通过MITMf使用它,把wordlist存储为本地存储并且利用被黑网络上的用户来攻击公共WiFi路由器。以下是一些相关来源:
http://net.ipcalf.com/
http://crypto.stanford.edu/PwdHash/pwdhash.pdf
http://www.browserleaks.com/javascript
http://www.gnucitizen.org/blog/hacking-the-interwebs/
http://www.eweek.com/security/plug-and-play-flaws-leave-millions-of-devices-vulnerable-researchers
http://www.w3schools.com/html/html5_webstorage.asp
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local_clickcount
https://hacking.ventures/local-ip-discovery-with-html5-webrtc-security-and-privacy-risk/
https://dl.dropboxusercontent.com/u/1878671/enumhosts.html
https://github.com/diafygi/webrtc-ips
https://diafygi.github.io/webrtc-ips/
http://www.scip.ch/en/?vuldb.8501
http://1337day.com/exploit/20372
http://diveintohtml5.info/storage.html
https://github.com/cldrn/nmap-nse-scripts/blob/master/scripts/6.x/http-tplink-dir-traversal.nse
http://www.pcworld.com/article/2104380/attack-campaign-compromises-300000-home-routers-alters-dns-settings.html
http://hexus.net/tech/news/network/61925-some-tp-link-routers-vulnerable-exploit-found-wild/
http://www.jakoblell.com/blog/2013/10/30/real-world-csrf-attack-hijacks-dns-server-configuration-of-tp-link-routers-2/
http://news.softpedia.com/news/Cybercriminals-Exploit-TP-Link-Router-CSRF-Vulnerabilities-to-Hijack-DNS-Settings-395545.shtml
https://exploits.shodan.io/?q=TP-Link
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basic_access_authentication
http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local_clickcount
本文由测腾代码卫士编译,不代表测腾观点,转载请注明“转自测腾代码卫士www.codesafe.cn”。

