内网常见隧道工具的使用( 二 )


文章插图
 
V-P-S要连接内网机器,就必须得通过中间那台服务器 。如果我们知道中间那台服务器的账号和密码,就可将中间服务器当作跳板,去访问内网机器,具体做法如下:
# 在V-P-S上执行如下命令:ssh -g -L 9999:192.168.100.101:22 -fN root@192.168.100.100# 参数介绍:-L 表示做本地端口映射,9999表示本地端口,192.168.100.101:22表示目标映射的地址与端口-f 表示SSH客户端在后台运行-N 参数表示该连接不做任何操作,仅用于端口转发-g 表示允许外来主机连接该V-P-S的9999端口(例如用netstat查看时监听的是0.0.0.0:9999)# 上述命令理解为通过192.168.100.100,将本地9999端口映射到内网主机192.168.100.101的22端口# 验证映射成功ssh m1sn0w@192.168.100.101 -p 9999(2)远程端口转发远程端口转发即将一台远程主机的端口转发到另外一台主机的某个端口
与本地端口转发不同,它需要在中间服务器上执行(也就是上面的跳板),一般用于内网流量可以出去,但是外网流量由于防火墙限制不能进的情况 。
考虑以下这种情况:

内网常见隧道工具的使用

文章插图
 
在中间服务器执行ssh的远程端口转发,打开V-P-S的某个端口,与内网机器(中间服务器能访问的机器)的某个端口做一个映射 。(与本地端口转发类似,这里只不过是打开远程主机的某个端口)
常规操作:
# 将远程主机的9999端口映射到内网机器的80端口# -R参数表示进行远程端口转发ssh -R 9999:192.168.100.101:80 -fN m1sn0w@192.168.226.130做个实验:模拟中间服务器不允许V-P-S访问其80端口,通过在中间服务器做一个远程端口转发,绕过防火墙
# iptables模拟防火墙,不允许V-P-S访问中间服务器的80端口(设置INPUT链规则)iptables -A INPUT -p tcp -s 192.168.226.130 --dport 80 -j DROP# 在V-P-S访问192.168.226.133的80端口发现访问不了curl 192.168.226.113# 在中间服务器上做一个远程端口转发(注意:这里的映射主机就是中间服务器)ssh -R 9999:192.168.226.133:80 -fN m1sn0w@192.168.226.130# 在V-P-S访问本机的9999端口,发现可以访问curl 127.0.0.1:99993、EarthWormEarthWorm也是一个内网穿透的神器,可以利用端口转发做socks5代理实现内网的穿透主要有三个参数:# rcsocks客户端,监听端口以及转发端口# rsscoks服务端,指定连接的主机以及端口# ssocksd,做正向代理以上述实验拓扑为例,EarthWorm可以做正向代理和反向代理
(1)正向代理示例# 在中间服务器做一个正向代理,V-P-S通过该代理去访问内网机器# 利用EarthWorm在中间服务器上做一个代理服务./ew_for_linux32 -s ssocksd -l 8888# 此时该主机会监听8888端口,相当于一台socks5代理服务器
内网常见隧道工具的使用

文章插图
 
# V-P-S配置一下socks5代理即可访问内网机器# 修改/etc/proxychains.confsocks5 192.168.226.133 8888# 访问内网机器的80端口proxychains curl 192.168.100.101(这里正向代理的含义是中间服务主动打开了一个端口等待我们的V-P-S连接,也就是主动去连接)
(2)反向代理示例# 让中间服务器主动与我们的V-P-S建立一个连接,以便传输数据(用于外部流量不能进,而内部流量可以出的情况)# 在V-P-S上配置监听端口(8888端口用于连接传输数据,10002端口表示将本机的10002端口转发到8888端口)./ew_for_Linux64 -s rcsocks -l 10002 -e 8888# 配置一下V-P-S上的socks5代理socks5 127.0.0.1 10002# 在中间服务器配置主动连接./ew_for_Linux32 -s rssocks -d 192.168.226.130 -e 8888
内网常见隧道工具的使用

文章插图
 
# 接下来尝试访问内网机器proxychains curl 192.168.100.1014、netshnetsh即network shell,是windows系统提供的一款强大的网络配置命令行工具 。它拥有比较强大的端口转发功能,能够进行本地端口转发和远程端口转发 。netsh也可以用于配置防火墙(1)netsh实现端口转发# 使用方式介绍netsh interface portproxy add v4tov4listenaddress=监听主机 listenport=本机需要映射(转发)的端口 connectaddress=远程主机(也可以是本机) connectport=远程(本地)映射端口
内网常见隧道工具的使用

文章插图
 
由于是做端口转发,因此考虑的场景是从外(边界)向里(内网),利用此工具进行端口转发,从而访问内网 。


推荐阅读