通向彼岸 之内网代理转发 [ 系统篇 netsh ]



0x01 前言:
    除了前面提到的用一些端口转发工具来进行端口转发,其实windows系统自己也给我们提供了类似的功能,比如,其自带的防火墙管理工具netsh套件[确实非常实用],尤其碰到一些稍微畸形点的内网环境

0x02 先来假设这么一种情况
    当你搞定边界的一台windows机器以后,上去一看发现,机器上有两块网卡,一块外网卡,一块内网卡[先暂以正常的DMZ来讲],这时又你通过别的方式搞定了同内网的另一台windows机器,本来以为简单的种上马就可以走人了,但你发现马执行以后似乎什么都没发生,搞了半天,你才发现,原来这台内网机器根本不能连外网,说到这里,相必你也应该知道我要干啥了,没错,虽然内网的那台机器不能连外网,但它起码能跟边界的这台机器正常通信,这就够了,我们可以直接从外部通过边界这台机器来访问内网的那台不能连外网的机器


0x03 演示简单环境如下

1
2
3
目标的边界机器[win7en] ip: 192.168.3.212 [假设为目标公网ip] 192.168.32.132[目标内网ip]
目标内网的那台不能连外网的机器[win 2008r2cn] ip: 192.168.32.134 [目标内网ip]
外部的攻击者的机器[win7cn] ip: 192.168.3.251

0x04 要实现的目的很简单:

1
2
首先,可以确认的是,边界机器和攻击者机器通信正常,边界机器和目标内网的那台不能连外网的机器通信正常
现在,我想通过边界机器的某个端口去访问目标内网的那台不能上外网的机器的3389,下面是具体的操作步骤

0x05 如果边界的机器是xp/03的系统,可能还需要你先装下ipv6支持,08以后的系统就不用装了,默认自带

1
# netsh interface ipv6 install

0x06 首先,先看下边界机器系统中现有的转发规则

1
# netsh interface portproxy show all

0x07 开始在边界机器上添加下面的转发规则,意思就是把来自的外部的某个端口的流量,转到同网段中其他机器的指定端口上,这里其实就是转到我的2008的机器上,当然啦,你事先肯定要确保,你要访问的那个目标机器的端口开了才行,比如,3389,22…

1
2
3
4
# netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.32.134 connectport=8080
# netsh interface portproxy add v4tov4 listenport=3389 connectaddress=192.168.32.134 connectport=3389
# netsh interface portproxy add v4tov4 listenport=22 connectaddress=192.168.32.134 connectport=22
# netsh interface portproxy add v4tov4 listenport=23 connectaddress=192.168.32.134 connectport=23

0x08 现在入侵者可以尝试通过边界机器访问目标内网中那台不能正常上网的机器,来看看我们的转发到底有没有生效

1
2
mstsc 192.168.3.212:3389
putty 192.168.3.212:22 尝试访问和边界机器处在同内网的另一台linux机器




0x09 干完活儿以后,别忘了删除自己刚刚创建的转发规则

1
2
3
4
# netsh interface portproxy delete v4tov4 listenport=8080
# netsh interface portproxy delete v4tov4 listenport=22
# netsh interface portproxy delete v4tov4 listenport=23
# netsh interface portproxy delete v4tov4 listenport=3389



小结:
    从整个流程可以看到,总体来讲就是一路bind进去的过程,也就是说,中间只要有任何防火墙阻断了某些端口,这种方式可能就废掉了,所以,具体利用场景大家还是酌情而定吧,另外,关于netsh的更多高级用法,目前自己也正在学习中,待续……