经常有人问我这个问题“怎样进入内网”,怎么回答呢,归纳起来就是一句话“突破网关,利用端口重定向进入内网”。
+#U|skl 首选要突破网关(GetWay),这很容易理解,因为一个内网要访问internet总是必然通过网关接入的,至于怎样突破网关,这和进入不是网关的服务器没有什么两样,就不说了。
**9x?s 突破网关以后,我们的目标就是通过网关(IP为202.98.*.*)上网的192.168.21.75。以后的方法就是在网关力端口重定向,建立包转发。端口重定向分两种(local和remote),但是我们要进而内网,显然不能用local方式的重定向,local方式的重定向主要用来绕过防火墙(关于这个问题我将在随后单独写一篇文章来讨论怎样用端口重定向绕过防火墙)。
F+R?a+e 一、利用Fpipe建立端口重定向。
^;!0j9"*: Fpipe是个非常有趣的东东。为了证明Fpipe的端口重定向功能,我们来做这样的试验。
$mf
u:tbP 首先在自己的机器上运行Fpipe,如下:
-;f*VM.a vgY3L E:\tool\FPip>fpipe -l 80 -s 90 -r 80 202.98.177.162
)?_#gLrE6 FPipe v2.1 - TCP/UDP port redirector.
;!:U((wv Copyright 2000 (c) by Foundstone, Inc.
O~j> ? http://www.foundstone.com ojYbR<jn9 'z76Sa //解释一下这个命令
sn7AR88M; fpipe -l 80 -s 90 -r 80 202.98.177.162
|*Z$E$k: 将到本机80端口的连接通过90端口连接到202.98.177.162的80端口。
D\IjyZ-O 一下是详细语法:
SJD@&m%?[ FPipe [-hv?] [-brs ] IP
u\&b4=nL -?/-h - shows this help text
P96pm6H_; -c - maximum number of allowed simultaneous connections. Default is 32 #连接的最大数目,默认是32
+]=e;LN $0 -l - listening port number #要监听的TCP端口号
EY*(Bw -r - remote TCP port number #要定向到的IP主机的端口号
R1Sy9x . -s - outbound connection source port number #从哪个端口发出重定向信息
C{TA.\ -v - verbose mode #详细显示过程
hxce\OuU0h %ZHP2j
%~ 在上面的过程中,我们在自己的机器上建立了端口重定向:将到本机80端口的连接通过90端口连接到202.98.177.162的80端口
"KcA 然后我们在浏览器中输入:
http://127.0.0.1,结果发现昆明高新区的网页打了,这说明我们的重定向成功。
n>@oBG)! 此时fpipe现实了如下的内容:
W3`>8v1?o Pipe connected:
zJe#m|Z In: 127.0.0.1:2092 --> 127.0.0.1:80
f{SB1M Out: 192.168.168.112:90 --> 202.98.177.162:80
@`\VBW 6'\6OsH 从上面的输出可以看出数据包经过的路径(192.168.168.112是我的IP)
dJ"iEb|4 好了成功以后,下面的东西我不说大家也知道了,将Fpipe拷贝到我们控制的网关上,执行重定向:
hW{j\@R fpipe -l 81 -s 91 -r 21 192.168.21.75 #在网关(202.98.*.*)执行,将到202.98.*.*的81端口的数据通过91端口转发向192.168.21.75的21端口。同样的:
&zs'/xv] fpipe -l 82 -s 92 -r 23 192.168.21.75 #将到202.98.*.*的82端口的数据通过92端口转发向192.168.21.75的23端口
~y=T5wt fpipe -l 83 -s 93 -r 80 192.168.21.75 #将到202.98.*.*的83端口的数据通过93端口转发向192.168.21.75的80端口
Kw#so; e fpipe -l 84 -s 94 -r 139 192.168.21.75 #将到202.98.*.*的84端口的数据通过94端口转发向192.168.21.75的139端口
Gy=B&bo