本文发表于《网管员世界》2012年8A期 |
寻找***内网登陆外网的秘密通道
刘志勇
笔者所在某分公司,有两条网络线路,一条是帧中继到公司本部,这条线路是2M的带宽;另一条就是普通的ADSL宽带,仅为512K。整个分公司都通过那条512K的宽带共享互联网,这样分摊到每个用户,可用带宽就变得非常小,网络应用体验不甚顺畅。
笔者听说本部的互联网出口带宽高达50M,但他们的代理不对分公司提供互联网权限,加之听说本部的代理服务器部署了上网行为控制,本部同事上网体验其实也不佳。
后来笔者无意得到本部的***账户,地址是218.*.*.*,就试着设置然后登陆,按照缺省的设置,连上以后能访问内网,但与此同时外网就断开了。当然,如果不勾选“在远程网络上使用默认网关”就可以避免外网无法访问的现象,但这不是笔者希望的。
笔者就思考,能否从这个***入手,寻找内网登外网的途径呢?这样就能好好利用那条2M的线路了。
笔者先从ADSL线路登陆上本部的***,键入ipconfig /all查看,得知分配到的内网IP是属于10.152.40这个网段。
笔者猜测***有可能在这个网段内。随手用了某款扫描软件看看这个网段都有哪几个活动主机,只有三个,这不符合常理,有可能是做了某种设置,使主机不响应ping操作。
笔者想到,如果从外网扫描出那个***的机器名,开放端口等信息,再扫描10.152.40这个网段,如果符合的话,那它必定是***相应的内网IP地址。
但是这个主机,普通的扫描软件拿他没辙,怎么办呢?笔者想到以前曾在本刊发表的有关Nmap的文章。Nmap是最为强大的扫描软件。
于是登陆Linux系统,打开终端,键入如下命令查看那个***主机的端口开放情况:
nmap -sC 218.*.*.*
返回的结果显示,它开放了tcp端口1723。而这个端口的相应服务就是pptp。这是一个很重要的线索,如果在10.152.40.*这个网段能找到开放tcp端口1723的主机,那它极有可能就是***的内网IP地址!
于是继续键入如下命令查看有哪些主机开放了端口1723:
nmap -p 1723 10.152.40.0/24
返回的结果显示有很多主机,当然,很多都显示“1723/tcp closed pptp”、“1723/tcp filtered pptp”这样的信息,仔细翻着,终于找到唯一的一行:“1723/tcp open pptp”!赶紧抄下它的内网IP地址:10.152.40.99。
接下来,修改***的属性中的常规项里面的目的地的主机名或IP地址,把刚才抄下的内网IP地址10.152.40.99,替换掉218.开头的外网地址。
然后拨号,连上以后,发现QQ掉了一下又自动登陆了,但这时候上不去任何网页,内网也不行。
联想到QQ能登陆,它不靠域名解析而是直接通过IP地址来登陆QQ服务器的。这说明外网的线路已经通了,有问题的是DNS设置。好,设置***属性中的网络中的Internet协议的属性,指定了谷歌的DNS服务器8.8.8.8。再重新拨号看看,嘿,能浏览任何网页了!这次走的是2M的线路了。
但是,笔者不久就发现,经过这样的设置后,不能访问内网。
赶紧在命令提示符键入如下指令看看路由表:
route print
从返回的路由表得知,缺少一个路由。只要添加一条路由就行了:
route add 10.0.0.0/8 10.152.64.253
因为笔者的网关就是10.152.64.253,而10.0.0.0/8则是内网。
添加这条路由后,发现外网、内网都通了,不再掉线,都走2M的线路,外网都从10.152.40.99那个***出去,内网则由10.152.64.253出去,笔者再也不用那根512K的ADSL线路了,留给分公司最需要的人吧。
不过笔者发现,重启后路由就有问题,于是敲入如下命令添加永久路由:
route -p add 10.0.0.0/8 10.152.64.253
这样就不用每次开机都要手动添加路由了。
这次找出漏洞的本质,主要是防火墙采用了IPSEC-***(L2TP机制),分了个内网IP,相当于认证后内网全通,然后它在做出口NAT时候,没有限制哪些内网IP可以通过防火墙出口访问INTERNET,导致笔者成功。
现在主流*** 都是SSL-***,可以限制到端口级(颗粒级)访问。