当前位置 博文首页 > 文章内容

    利用被入侵的路由器迈入内网——抓包,利用路由器漏洞入侵渗透,进行流量劫持

    作者:..... 栏目:网站安全 时间:2020-11-25 13:59:44

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



        去年开始利用路由器对目标内网进行渗透的方式方法开始研究,测试了一阵了。看到乌云之前有一篇翻译外国人的文章,讲路由器流量劫持的,利用条件苛刻,成效也不大。所以决定写一篇自己实测的例子。

    0x01 控制路由器

         现在只搞cisco的路由器,但是方法不限于cisco,华为,juniper什么的都可以。

         这一步没有什么好的办法,我们利用分布式扫描抓到了一些路由器,再加上其他的漏洞,有了一定数量作为测试保证。

         选择一台 cisco c800系列的小企业路由器(很老了)

         图1 router version

         进去之后,先查看日志,登陆认证相关信息。

         图 2 router 登陆等相关信息

         有一个登陆限制的acl,被我之前删掉了,这就找到了telnet的密码。同时没有开启aaa认证,也就不存在什么认证服务器什么的,就只有本地验证。没有任何日志服务器的配置,连snmp都没有配置(本来还想留一个snmp的后门,看来是不行了)。

         赶紧添加账号密码,加固路由器,修复漏洞。

         图3 添加特权账户

    0x02 网络拓扑分析

         基本操作完,赶紧保留一份完整的配置(这个不能完整的贴出来)然后分析基本网络架构。

         总述就是这是一个公司的小分部,通过pppoe加nat上网,有一个公网ip地址,有一个10.xx.xx.0/24的内网地址,通过gre的隧道,和主公司相连,拥有更为庞大的内网。

         这种网络形式是最为常见的,通过ISP拨号获取公网地址,然后内网机器通过nat上网。全公网ip地址的公司网络极为少见。

         网络拓扑如下

         图4 网络拓扑示意图

    0x03 准备进入内网

         内网机器通过NAT访问Google,同时内网受到NAT的保护。我们控制了R1这台路由器,处于内网出口;还有一台公网VPS,ubuntu12.04 。R2表示很多台路由器,没有控制权限。

         由于想要进行内网渗透测试,需要获取更多的信息。我们另外添加一台公网VPS(win2008R)在上面架设流量监视服务器,分析内网日常流量和行为。

         win2008搭建的是netflow服务器,在R1上配置netflow,来观测内网流量信息。netflow软件网上有好多,solarwind最好,支持sqlserver2005,能存储大量的数据,没找到破解版。我用的ManageEngine,到处都是破解版。

    0x04 进入内网

         流量不能帮我获取内网权限,就只能自己进入内网。

         强制劫持一个内网没有人用的合法IP地址,通过连接linux openVPN分配给自己,剩下只要在路由器添加这个地址的主机路由和在Linux上添加到10.xx.xx.xx/8 的默认路由,然后我的WorkStation就获得了内网访问权限(没有像VPN什么的限制,访问权限等同于路由器权限)。

         如何让自己的WorkStation进入内网就是很随意的了,方法实在是太多,因为此时这台Ubuntu已经在内网中。openVPN配置和添加路由配置就不贴出了,网上太多。

         图8 验证Ubuntu于内网的连通性

    这样的内网渗透是有以下几个优点:

         你所有的流量会被内网流量设备认为是内网流量,流量稍微大一点的内网,你可以随意下载文件,不用再关心流量过大引起报警。(理论,没脱过文件)

         在路由器上做好隐藏,规避netflow监测,去掉日志,在临走的时候直接erease所有的存储器,你的行为在内网不可查。(理论,没做过)

         如果地址劫持的合适,能绕过内网服务器的登陆限制(三层限制)。

         时间把握的好,可以制造内网某员工从文件服务器大量下载文件的假象。(理论,没做过)

    缺点

         就一个,数据包不加密,这点很烦人,数据包基本全透明。要是路由器外没有安全设备了或者直接做一个IPSec Tunnel,就等同于没缺点。

         总结,就是拥有极高的隐蔽性,远高于VPN,马什么的。连日志服务器都可以不怎么理他。

         本文标题为迈入内网,并非内网渗透,不做内网渗透相关研究。

         所有的敏感的信息已经修改涂掉。

    0x05 后话

         其他的一些小讨论

         关于链路延迟,研究比较多,需要多说一点。以我劫持的Google为例,我在Google与内网路径的附近,并且是靠近Google的一端。

         到Google的延迟平均为0.617ms

         图9 Ubuntu 到Google延迟

         路由器到Linux的延迟平均为256ms,路由器直接ping Google 平均延迟时180ms

         图10 路由器网络延迟截图

         Linux处理劫持数据,修改数据包的软件延迟约为5ms,所以预估劫持之后的延迟应该在260ms左右。

         但是,经过劫持之后,到目标的延迟为248,该数值小于256ms+0.6ms+5ms,至于为什么,无法解释。

         总体延迟影响,增加了180ms的三分之一,60ms左右。

         之前我们对延迟有过较多的讨论:增加了延迟的三分之一,影响会比较明显,容易被察觉从而引发报警。我个人认为,大家上百度比平时延迟增加了500ms,或是1s,就算是baidu的运维,在检查完IP地址,看完tracert之后,也就骂骂运营商。更何况一般网络用户不会认为是运营商的问题,只会认为是不是自己电脑卡了,可能有人怀疑自己被网络劫持了么。

         关于内网路由器的讨论,本文研究的路由器为网络边界路由器,至少有一个公网IP地址。当路由器或者三层交换处于内网中,劫持能否使用,答案是可以的。通过建立七层应用层隧道(GRE为三层网络层隧道),就像我们个人电脑一样,穿过内网。或者直接同内网的一台服务器建立连接,劫持数据(经过验证,但是公网测试时,对端是一台公网CISCO路由器2911,没试过服务器,开发能力有限)。

         如果需要穿透内网,需要应用层VPN,例如IPSec VPN,EZ VPN (我测试了这俩,其他的高于三层的VPN都理论可行)等,配置比GRE Tunnel复杂的多,但懂了原理配置还是很简单的。配置实在是贴不完。IP Sec VPN理论上应该可以向IP Sec VPN 服务器建立连接,我没成功,还在理论层面研究。EZ VPN ,CISCO专有,肯定不能在WIN或者linux上搭建服务器。

         关于驻留,通过路由器扩展内网驻留或者路由器后门驻留,比马什么的好太多了,除了NSA和fireeye,没听说过谁接触过过路由器后门的。国内绝对是通杀,会配置路由器的都没几个人,更别说反查。

         关于HTTPS的讨论:绿标这个问题确实比较头疼,我目前尝试能过的就是嵌套,在绿标中插入红标,最后用户看到的还是绿标。

         关于流量劫持软件,网上都说劫持软件多如牛毛,但是实际上找下来,就没有一个可以拿来直接用的,尤其是在透明劫持这个模式下,没发现能直接用的,像什么MITMproxy什么什么的,大家都说好,实际测试一下,也就适合开发人员调试软件,所以只能自己开发,但是开发能力有限。

         希望大家推荐一些,能效率很高的处理大流量(例如BGP劫持)的软件。