命令行 plink 通过 jumphost 远程目标捕获流量

命令行 plink 通过 jumphost 远程目标捕获流量

我正在尝试从 Windows 机器通过 jumphost 捕获远程主机流量并在 Wireshark 中显示。

当使用 PUTTY GUI 并按如下方式配置时

  1. 创建并保存 SSH 会话(堡垒主机) 为跳伞者
    • 连接-->数据-->自动登录用户名已配置
    • 连接-->SSH-->身份验证-->配置用于身份验证的jumphost私钥文件
  2. 创建并保存另一个 SSH 会话(目標主機)进行流量捕获的地方
    • 连接-->数据-->自动登录用户名已配置
    • 连接 --> 代理 --> 代理主机名配置为代理和端口 22
    • 连接 --> 代理 --> Telnet 命令或本地代理命令plink "bastion-host" -agent -nc %host:%port
    • 连接 --> SSH --> 远程命令"sudo tcpdump -i ens5 -w - not port 22"
    • 连接--> SSH--> 认证--> 目标主机认证私钥文件配置
  3. 加载并打开已保存的会话(目標主機

结果是

  1. 我可以看到流量被捕获并显示在 Windows PUTTY 终端上。
  2. 而“tcpdump”实际上是在目标主机上执行的。

在这个阶段,我不知道如何将其重定向到 Wireshark。

接下来,这就是我要实现的,通过命令行执行上述设置。以下是完整的命令

plink.exe -proxycmd "putty.exe -ssh <username>@<jumphost-address> -i <private-key-file> -agent -nc <target-host>:22" -ssh <target-username>@<target-host> -i <target-private-key> "sudo tcpdump -ni ens5 -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -

Wireshark 弹出但没有捕获流量,因为我看不到“tcpdump”命令在 上执行。

为了确认 plink 有效,我在可直接访问的主机上测试了类似的命令,一切正常。Wireshark 弹出实时流量捕获。

plink.exe -ssh -pw <password> <username>@<my-host> "/usr/sbin/tcpdump -ni ens192 -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -

所以,我认为我使用 plink 命令的方式有问题。如果有人能帮助我纠正它,我将不胜感激。

谢谢

操作系统:Windows 7 Enterprise,64 位

PUTTY:版本 0.70

答案1

答案发布在此帖子中提示正确的命令对我有用。

我最后的命令是

plink -proxycmd "plink <username>@<jumphost-address> -i <private-key-file> -nc <target-host>:22" <target-username>@<target-host> -i <target-private-key> "sudo tcpdump -ni ens5 -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -

相关内容