Tunneling and Port Forwarding
Try Hard Security Group

Nmap提示
ICMP和SYN扫描无法通过socks代理进行隧道传输,因此我们必须禁用ping发现(-Pn)并指定TCP扫描(-sT)才能使其正常工作。
Bash
主机 -> 跳板 -> 内部A -> 内部B
SSH
SSH图形连接(X)
本地端口到端口
在SSH服务器中打开新端口 --> 其他端口
端口到端口
本地端口 --> 受损主机(SSH) --> 第三台主机:端口
Port2hostnet (proxychains)
本地端口 --> 受损主机(SSH) --> 任何地方
反向端口转发
这对通过 DMZ 从内部主机获取反向 shell 非常有用:
VPN隧道
您需要在两台设备上都有root权限(因为您将要创建新的接口),并且sshd配置必须允许root登录:
PermitRootLogin yes
PermitTunnel yes
在服务器端启用转发。
在客户端上设置新路由
SSHUTTLE
您可以通过ssh将所有流量通过主机隧道到一个子网络。 例如,转发所有流向 10.10.10.0/24 的流量
使用私钥连接
Meterpreter
端口到端口
本地端口 --> 受损主机(活动会话) --> 第三台主机:端口
SOCKS
SOCKS
另一种方法:
Cobalt Strike
SOCKS代理
在团队服务器中打开一个端口,监听所有可以用来通过beacon路由流量的接口。
rPort2Port
在这种情况下,端口在信标主机中打开,而不是在团队服务器中打开,流量被发送到团队服务器,然后再转发到指定的主机:端口。
rPort2Port 本地
在这种情况下,端口在信标主机上打开,而不是在团队服务器上,流量被发送到钴蓝打击客户端(而不是团队服务器),然后从那里发送到指定的主机:端口。
reGeorg
https://github.com/sensepost/reGeorg
您需要上传一个Web文件隧道:ashx|aspx|js|jsp|php|php|jsp
Chisel
您可以从https://github.com/jpillora/chisel的发布页面下载 您需要为客户端和服务器使用相同的版本
socks
端口转发
Rpivot
https://github.com/klsecservices/rpivot
反向隧道。隧道从受害者端启动。 在 127.0.0.1:1080 上创建一个 socks4 代理。
通过NTLM代理进行中继
Socat
https://github.com/andrew-d/static-binaries
绑定 shell
反向 shell
端口到端口
通过socks进行端口到端口的转发
通过 SSL Socat 进行 Meterpreter
您可以绕过未经身份验证的代理,在受害者控制台中执行以下代码而不是最后一行代码:
https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/
SSL Socat Tunnel
/bin/sh 控制台
在客户端和服务器端创建证书
远程端口到端口
将本地SSH端口(22)连接到攻击者主机的443端口
Plink.exe
这就像是一个控制台版本的 PuTTY(选项与 ssh 客户端非常相似)。
由于这个二进制文件将在受害者中执行,并且它是一个 ssh 客户端,我们需要打开我们的 ssh 服务和端口,以便我们可以建立一个反向连接。然后,只需将本地可访问端口转发到我们机器上的一个端口:
Windows netsh
端口到端口
您需要是本地管理员(对于任何端口)
SocksOverRDP & Proxifier
您需要通过系统获得RDP访问权限。 下载:
SocksOverRDP x64 二进制文件 - 该工具使用Windows远程桌面服务功能中的
Dynamic Virtual Channels(DVC)。DVC负责在RDP连接上隧道传输数据包。
在您的客户端计算机上加载**SocksOverRDP-Plugin.dll**,如下所示:
现在我们可以使用mstsc.exe连接到受害者的RDP,并且我们应该收到一个提示,表示SocksOverRDP插件已启用,并且它将在127.0.0.1:1080上监听。
通过RDP连接并在受害者机器上上传并执行SocksOverRDP-Server.exe二进制文件:
现在,在您的机器(攻击者)上确认端口1080正在监听:
现在,您可以使用Proxifier 通过该端口代理流量。
通过Proxifier代理Windows GUI应用程序
您可以使用Proxifier 让Windows GUI应用程序通过代理进行导航。 在Profile -> Proxy Servers中添加SOCKS服务器的IP和端口。 在Profile -> Proxification Rules中添加要代理的程序名称以及要代理的IP连接。
NTLM代理绕过
前面提到的工具:Rpivot OpenVPN也可以绕过它,设置配置文件中的这些选项:
Cntlm
它对代理进行身份验证,并在本地绑定一个端口,该端口被转发到您指定的外部服务。然后,您可以通过此端口使用您选择的工具。 例如,将端口443转发。
现在,如果您在受害者中设置SSH服务监听端口443。您可以通过攻击者端口2222连接到它。 您还可以使用连接到localhost:443的meterpreter,而攻击者正在监听端口2222。
YARP
由Microsoft创建的反向代理。您可以在这里找到它:https://github.com/microsoft/reverse-proxy
DNS隧道
Iodine
在两个系统中都需要root权限来创建tun适配器,并使用DNS查询在它们之间传输数据。
隧道速度会很慢。您可以通过以下方式在此隧道上创建一个压缩的SSH连接:
DNSCat2
通过 DNS 建立 C&C 通道。不需要 root 权限。
在 PowerShell 中
您可以使用 dnscat2-powershell 在 PowerShell 中运行 dnscat2 客户端:
使用dnscat进行端口转发
更改 proxychains DNS
Proxychains 拦截 gethostbyname libc 调用,并通过 socks 代理隧道传输 tcp DNS 请求。默认情况下,proxychains 使用的 DNS 服务器是 4.2.2.2(硬编码)。要更改它,请编辑文件:/usr/lib/proxychains3/proxyresolv 并更改 IP。如果您在 Windows 环境中,可以设置域控制器的 IP。
Go 中的隧道
https://github.com/hotnops/gtunnel
ICMP 隧道
Hans
https://github.com/friedrich/hans https://github.com/albertzak/hanstunnel
在两个系统中都需要 root 权限来创建 tun 适配器,并使用 ICMP 回显请求在它们之间传输数据。
ptunnel-ng
ngrok
ngrok是一个工具,可以通过一条命令将解决方案暴露到互联网上。 暴露的URI类似于: UID.ngrok.io
安装
创建一个账户:https://ngrok.com/signup
客户端下载:
基本用法
文档: https://ngrok.com/docs/getting-started/.
如果需要,还可以添加身份验证和TLS。
TCP隧道
通过HTTP公开文件
拦截HTTP调用
用于XSS、SSRF、SSTI ... 直接从stdout或在HTTP接口http://127.0.0.1:4040中。
隧道化内部HTTP服务
ngrok.yaml简单配置示例
它打开了3个隧道:
2个TCP
1个HTTP,从/tmp/httpbin/暴露静态文件
其他检查工具
尝试困难安全组

最后更新于