HACK7YD 发布于2022年11月8日 分享 发布于2022年11月8日 0x00 前言 在渗透测试中,经常使用端口转发和代理。 端口转发是将网络端口从一个网络节点转发到另一个网络节点的行为。 实际应用中需要考虑两种情况: 客户端-中转服务器-服务器:客户端可以主动连接到中转服务器。中转服务器可以直接转发。 客户端-中转服务器-服务器:客户端不能正向连接到中转服务器,但中转服务器可以反向连接到客户端。 如果客户端要扫描一台服务器的多个端口(或者多台服务器的多个端口),那么逐个配置转发规则是不现实的。 为了提高效率,可以在这里使用代理,一次配置规则。 本文将对常用的方法和工具进行梳理和总结,进行分类,区分正向和反向连接,区分转发和代理,分析它们之间的联系和区别,并给出应用场景以供参考。 0x01 简介 本文将介绍以下内容: 对于Windows系统和Linux系统(Ubuntu和CentOS)下的方法 端口——转发连接的方法 端口——反向连接的转发方法 正向代理方法 反向代理方法 上述方法的应用场景 注: Go语言支持跨平台编译,所以本文重点介绍Go语言实现的工具。 0x02 端口转发——正向连接 0、应用场景 1.流量转发的跳板 用于隐藏真实的服务器地址。 Linux的Iptables用于CIA Hive Beacon基础设施中的端口转发。 (2)在下图中 注: 中转服务器的搭建请参考前面的文章《CIA Hive Beacon Infrastructure复现1——使用Apache mod_rewrite实现http流量分发》和《CIA Hive Beacon Infrastructure复现2——使用Apache mod_rewrite实现https流量分发》。 2.建立通道 连接到内网服务器的指定端口。 客户端可以肯定地连接到中转服务器。 1、测试环境 客户:192.168.111.136 服务器:192.168.111.103 网络连接如下 用nc测试网络连接 服务器: nc -lvp 4444 客户: nc -vv 192.168.111.103 4444 客户端连接成功,如下图所示 2、Windows系统下的端口转发方法 中转服务器:192.168.111.132 网络连接如下 1、使用netsh实现端口转发(需要管理员权限) (1)添加转发规则。 netsh接口端口代理add v4 to v4 listen address=192 . 168 . 111 . 132 listen port=7777 connect address=192 . 168 . 111 . 103 connect port=4444 (2)添加防火墙入站规则。 netsh advfirewall防火墙添加规则名称='传输测试'协议=TCP目录=in localport=7777操作=允许 注: 默认情况下,允许出站流量,阻止入站流量,因此这里只需要添加入站规则。 测试网络连接: 服务器: nc -lvp 4444 客户: 192.168.111.132 7777 客户端连接成功。 (3)检查端口转发规则。 netsh接口端口代理显示全部 (4)明确端口转发规则。 netsh接口端口代理删除v4tov4列表地址=192.168.111.132列表端口=7777 (5)清除防火墙规则。 netsh advfirewall防火墙删除规则名称='传输测试' 2、使用rinetd实现端口转发 下载地址: https://boutell.com/rinetd/http/rinetd.zip 只有压缩包中的rinetd.exe是必需的。 (1)为rinetd.exe添加防火墙规则(管理员权限)。 netsh advfirewall防火墙添加规则name=' transit test 2 ' dir=in program=' c:\ test \ rinetd . exe ' action=allow (2)写转发规则。 echo 0 . 0 . 0 . 0 7777 192 . 168 . 111 . 103 4444 conf . txt (3)开始 rinetd.exe-c c:\ test \ conf . txt (4)清除防火墙规则(管理员权限) netsh advfirewall防火墙删除规则name=' transit test 2 ' dir=in program=' c:\ test \ rinetd . exe ' 3、使用HTran实现端口转发 注: x与其功能相似。 源码来自网络,我在github做了备份。备份地址是: https://raw . githubusercontent . com/3g student/test/master/htran . CPP (1)为HTran.exe添加防火墙规则(管理员权限)。 netsh advfirewall防火墙添加规则name=' transit test 3 ' dir=in program=' c:\ test \ htran . exe ' action=allow (2)打开转发功能 HTran.exe 7777 192 . 168 . 103 4444 (3)清除防火墙规则(管理员权限) netsh advfirewall防火墙删除规则name=' transit test 3 ' dir=in program=' c:\ test \ htran . exe ' 4、使用EarthWorm实现端口转发 下载地址: https://github.com/rootkiter/EarthWorm (1)为ew _ for _ win _ 32.exe添加防火墙规则(管理员权限)。 netsh advfirewall防火墙添加规则name=' transit test 4 ' dir=in program=' c:\ test \ ew _ for _ win _ 32 . exe ' action=allow (2)开启转发功能 ew _ for _ win _ 32。exe-s lcx _ tran-l 7777-f 192。168 .111 .103-g 4444 (3)清除防火墙规则(管理员权限) netsh防火墙防火墙删除规则name=' transit test 4 ' dir=in program=' c:\ test \ ew _ for _ win _ 32。' exe ' 3、Linux系统(Ubuntu)下的常用端口转发方法 中转服务器:192.168.111.102 网络连接如下图 1、使用iptables实现端口转发 (1)开启转发功能 echo 1/proc/sys/net/IP v4/IP _ forward 注: 该命令立即生效,重启失效 (2)添加转发规则 iptables -t nat -A预路由-p TCP-d 192。168 .111 .102-d端口8888-j DNAT至目的地192。168 .111 .103:4444 IP tables-t NAT-A post routing-p TCP-d192。168 .111 .103-d端口4444-j SNAT到源192.168.111.102 (3)查看转发规则 iptables -L -t nat -线路号 如下图 测试网络连接: 服务器: nc -lvp 4444 客户: nc -vv 192.168.111.102 8888 客户连接成功 (4)清除规则 iptables -F -t nat (5)保存规则 iptables-save/etc/iptables。向上。规则 (6)恢复规则 iptables-restore/etc/iptables。向上。规则 2、使用rinetd实现端口转发 (1)编译安装 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz 塔尔zxvf rinetd.tar.gz 激光唱片唱片d 制造 (2)编写转发规则 回声0。0 .0 8888 192 .168 .111 .103 4444/etc/rinetd。会议 (3)启动。/rinetd.exe (4)结束进程 pkill -9 rinetd 3、使用HTran实现端口转发 Linux操作系统操作系统版HTran(lcx)的源码参考如下地址: https://github.com/windworst/LCX 需要使用(同地面控制中心)地面控制中心重新编译 (1)开启转发功能。/lcx-tran 8888 192。168 .111 .103 4444 注: 去语言编写的HTran(lcx),优点是跨平台,支持Windows操作系统操作系统和Linux操作系统操作系统 下载地址: https://github.com/cw1997/NATBypass 4、使用EarthWorm实现端口转发 下载地址: https://github.com/rootkiter/EarthWorm 未开源 (1)开启转发功能。/ew _ for _ Linux-s lcx _ tran-l 8888-f 192。168 .111 .103-g 4444 4、Linux系统(CentOS)下的常用端口转发方法 中转服务器:192.168.111.105 网络连接如下图 1、使用iptables实现端口转发 (1)开启转发功能 echo 1/proc/sys/net/IP v4/IP _ forward 注: 该命令立即生效,系统重启失效 (2)安装iptables 系统停止防火墙d 系统屏蔽防火墙d 妙的安装iptables-服务 系统ctl启用iptables (3)添加转发规则 iptables -t nat -A预路由-p TCP-d 192。168 .111 .105-d端口8888-j DNAT至目的地192。168 .111 .103:4444 IP tables-t NAT-A post routing-p TCP-d192。168 .111 .103-d端口4444-j SNAT到源192.168.111.105 服务iptables保存 服务iptables重启 服务iptables状态 (4)查看转发规则 iptables -L -t nat -线路号 如下图 测试网络连接: 服务器: nc -lvp 4444 客户: nc -vv 192.168.111.105 8888 客户连接成功 (4)清除规则 iptables -F -t nat 2、使用rinetd实现端口转发 同Ubuntu,此处省略 3、使用HTran实现端口转发 同Ubuntu,此处省略 4、使用EarthWorm实现端口转发 同Ubuntu,此处省略 0x03 端口转发——反向连接 0、应用场景 1.建立通道 连接内网服务器的指定端口 测试环境如下图 已有中转服务器权限,想要访问计算机网络服务器的3389端口 客户无法正向连接到中转服务器,但中转服务器能够反向连接到客户 iptables和rinetd不再适用 1、使用HTran 支持Windows操作系统操作系统和Linux操作系统操作系统 客户: HTran-收听1111 2222 中转服务器: HTran-从1.1.1.1 1111 10 .0 .0 .2 3389 客户: nc -vv 127.0.0.1 2222 2、使用EarthWorm 支持Windows操作系统操作系统和Linux操作系统操作系统 客户: ew -s lcx_listen -l 2222 -e 1111 中转服务器: 1.1.1.1-e 1111-f 100 .0 .2-g 3389 客户: nc -vv 127.0.0.1 2222 0x04 正向代理 0、应用场景 1.内网扫描 对内网的多个端口进行扫描 客户能够正向连接到中转服务器 测试环境如下图 要对服务器1、服务器2和服务器3的端口进行扫描 袜子四代理只支持传输控制协议(传输控制协议)协议,而足球5代理支持传输控制协议(传输控制协议)协议和用户数据报协议(用户数据报协议)协议,更加全面,所以本文只介绍实现足球5代理的方法 1、使用HTran 网上流传HTran2.4支持足球5代理,但我未找到开源代码,此处作一个标记 2、使用EarthWorm 中转服务器: ews ssockdl 8888 客户使用代理工具连接中转服务器的8888端口 3、使用goproxy Go的高性能HTTP、HTTPS、WebSocket、TCP、UDP、Socks5、SS代理服务器支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP端口映射和SSH中转。 下载地址: https://github.com/snail007/goproxy/ 中转服务器: 代理socks -t tcp -p '0.0.0.0:8888 ' 使用客户端代理工具连接到中转服务器的8888端口。 4、自己使用go实现 Windows系统安装转到: https://golang.org/dl/ 安装git: http://git-scm.com/downloads Go-socks5安装: 去找github.com/armon/go-socks5 去建吧 测试. go: 主包装 导入socks 5 ' github . com/Armon/go-socks 5 ' func main() { conf :=socks5。配置{} 服务器,err :=socks5。新(会议) 如果err!=零{ 恐慌(错误) } 如果err :=服务器。ListenAndServe('tcp ',' 0 . 0 . 0 . 0:8888 ');呃!=零{ 恐慌(错误) } } 编制 开始构建测试。开始 使用客户端代理工具连接到中转服务器的8888端口。 5、使用reGeorg 下载地址: https://github.com/NoneNotNull/reGeorg 针对web服务器,支持(aspx ashx jsp php) 注: Socks CAP64可以作为Windows下连接Socks代理的工具。 Proxychains可以作为Linux下连接socks代理的工具。 0x05 反向代理 0、应用场景 1.内网扫描 扫描内部网中的多个端口。 测试环境如下 客户端无法正向连接到中转服务器,但中转服务器可以反向连接到客户端。 扫描服务器1、服务器2和服务器3的端口 1、使用EarthWorm 客户: ew -s rcsocks -l 2222 -e 1111 中转服务器: 1.1.1.1-东1111 使用代理工具连接到客户端的端口2222。 2、使用rsocks 下载地址: https://github.com/brimstone/rsocks Go语言,支持Windows和Linux。 客户: 袜子-听:1111-袜子127.0.0.1:2222 中转服务器: rsocks-连接1.1.1.1:1111 使用代理工具连接到客户端的端口2222。 0x06 小结 总结了端口转发和代理的常用工具和方法,分为正向连接和反向连接两大类,分别介绍了应用场景和常用工具,可供实际应用参考。 留下回复 链接帖子 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子