我是如何逃过所有杀软进行内网端口转发的
平时在渗透测试中大家经常会用到内网渗透,然而内网渗透中很重要的一个步骤就是端口转发。
常见的端口转发
- lcx.exe
- nc.exe
- Using php/jsp/aspx Script
- iptables端口转发
- nginx端口转发
- 等等......
其中lcx.exe、nc.exe以及使用脚本转发,都有可能被防护/杀毒软件拦截,而后者则略微有点麻烦(不会告诉你是因为我真懒!)
我是一个非常喜欢渗透测试的人,并且颜值比较高(啊,打我干啥!)
偶尔也会用到内网渗透,进行端口转发什么的,但时长会遇到XX狗,XX卫士,上传lcx.exe或者nc.exe就会被杀掉...
用后面几种方式又感觉好像很费事的样子..
前言
前几天在工作中遇到了某客户的服务器被利用端口转发来做SEO
分析的文章可以看这里:免杀世界杀软:神奇的端口转发黑帽SEO手法
文章中详细的讲了一下端口转发的实现原理,以及是如何免杀世界杀软的。
但其实这个工具也一样可以用在渗透中。
NetSH (Network Shell) 是windows系统本身提供的功能强大的网络配置命令行工具。
故我们可以使用netsh进行内网端口转发。
使用方法
新增端口转发
netsh interface portproxy add v4tov4 - 添加通过 IPv4 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy add v4tov6 - 添加通过 IPv6 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy add v6tov4 - 添加通过 IPv4 的 IPv6 和代理连接到的侦听项目。
netsh interface portproxy add v6tov6 - 添加通过 IPv6 的 IPv6 和代理连接到的侦听项目。
命令语法
以netsh interface portproxy add v4tov4
为例,其语法格式如下:
netsh interface portproxy add v4tov4 [listenport=]<integer>|<servicename>[connectaddress=]<IPv4 address>|<hostname>[[connectport=]<integer>|<servicename>][[listenaddress=]<IPv4 address>|<hostname>] [[protocol=]tcp]
参数:
标记 | 值 |
---|---|
listenport | IPv4 侦听端口。 |
connectaddress | IPv4 连接地址。 |
connectport | IPv4 连接端口。 |
listenaddress | IPv4 侦听地址。 |
protocol | 使用的协议。现在只支持 TCP。 |
说明: 添加通过 IPv4 的 IPv4 和代理连接到的侦听项目。
示例
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.56.101 connectport=8080
将本地的8080端口的数据转发至192.168.56.101上的8080端口。
netsh interface portproxy add v4tov4 listenport=9090 connectaddress=192.168.56.101 connectport=9090
将本地的9090端口的数据转发至192.168.56.101上的9090端口。
查看已经设置转发的端口
netsh interface portproxy show all - 显示所有端口代理参数。
netsh interface portproxy show v4tov4 - 显示 IPv4 代理连接到另一个 IPv4 端口的参数。
netsh interface portproxy show v4tov6 - 显示 IPv4 代理连接到 IPv6 的参数。
netsh interface portproxy show v6tov4 - 显示 IPv6 代理连接到 IPv4 的参数。
netsh interface portproxy show v6tov6 - 显示 IPv6 代理连接到另一个 IPv6 端口的参数。
示例
netsh interface portproxy show all
修改转发配置
netsh interface portproxy set v4tov4 - 更新通过 IPv4 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy set v4tov6 - 更新通过 IPv6 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy set v6tov4 - 更新通过 IPv4 的 IPv6 和代理连接到的侦听项目。
netsh interface portproxy set v6tov6 - 更新通过 IPv6 的 IPv6 和代理连接到的侦听项目。
命令语法
以netsh interface portproxy set v4tov4
为例,其语法格式如下:
netsh interface portproxy set v4tov4 [listenport=]<integer>|<servicename>[connectaddress=]<IPv4 address>|<hostname>[[connectport=]<integer>|<servicename>][[listenaddress=]<IPv4 address>|<hostname>][[protocol=]tcp]
参数:
标记 | 值 |
---|---|
listenport | IPv4 侦听端口。 |
connectaddress | IPv4 连接地址。 |
connectport | IPv4 连接端口。 |
listenaddress | IPv4 侦听地址。 |
protocol | 使用的协议。现在只支持 TCP。 |
说明: 更新通过 IPv4 的 IPv4 和代理连接到的侦听项目。
使用示例
netsh interface portproxy set v4tov4 listenport=9090 connectaddress=192.168.56.101 connectport=9080
将本地9090端口改成转发至192.168.56.101的9080端口中。
删除端口转发配置
netsh interface portproxy delete v4tov4 - 删除通过 IPv4 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy delete v4tov6 - 删除通过 IPv6 的 IPv4 和代理连接到的侦听项目。
netsh interface portproxy delete v6tov4 - 删除通过 IPv4 的 IPv6 和代理连接到的侦听项目。
netsh interface portproxy delete v6tov6 - 删除通过 IPv6 的 IPv6 和代理连接到的侦听项目。
以netsh interface portproxy delete v4tov4
为例,其语法格式如下:
netsh interface portproxy delete v4tov4 [listenport=]<integer>|<servicename>[[listenaddress=]<IPv4 address>|<hostname>][[protocol=]tcp]
参数:
标记 | 值 |
---|---|
listenport | 要侦听的 IPv4 端口。 |
listenport | 要侦听的 IPv4 地址。 |
protocol | 要使用的协议。当前仅支持 TCP。 |
注释: 删除要侦听的 IPv4 的项并通过 Ipv4 代理连接。
使用示例
netsh interface portproxy delete v4tov4 listenport=9090
删除本地端口9090的端口转发配置。
后记
本文仅作学习交流之用,首发于安全盒子论坛,转载需经作者同意方可转载。