Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

横向渗透

隧道技术或代理技术涉及创建一条路径,通过被攻击的主机来路由所需的网络流量,将一种网络协议封装在另一种协议内。各种协议(如 HTTPSSHDNS或自定义代理)可以将流量引导到目标网络。这种技术使渗透测试人员能够在受限的网络环境中安全地传输数据。可以将其比作在防火墙中建立一条秘密通道,以访问内部系统。

端口转发

隧道(Tunneling)指的是将网络上的 A、B 两个端点通过某种方式连接起来,形成一个“隧道”,使得两端的通信能够穿透某些限制(例如防火墙),或将通信内容加密以避免泄漏。

SSH 隧道

SSH 协议创建一个安全的网络隧道,用户可以访问本地防火墙后面的服务,如数据库或私有网络中的 Web 应用。主要内容包括三种端口转发模式:本地端口转发远程端口转发动态端口转发

AllowTcpForwarding 是 OpenSSH 服务器 (sshd_config) 中的一个配置选项,决定是否允许 TCP 转发(SSH 隧道)。各配置选项包括 yes(允许所有转发)、no(禁止转发)、local(仅允许本地转发)、remote(仅允许远程转发)。

https://iximiuz.com/en/posts/ssh-tunnels/

for i in $(seq 254); do ping 10.1.2.${i} -c1 -W1 8 & done | grep from

本地端口转发(ssh -L)允许用户将 SSH 客户端的端口映射到远程服务器的端口。

ssh -fNC -L [bind_address]:local_port:target_host:target_port user@ssh_server

ssh -i $HOME/.ssh/id_iximiuz_lab -o StrictHostKeyChecking=no
user@ssh_server
ssh -fNC -L 8834:localhost:8834 rbt

参数说明:

  • -f:在连接建立后将 SSH 会话放入后台。
  • -N:告知 SSH 不要在远程服务器上执行任何命令。
  • -C:为 SSH 隧道启用压缩。
  • bind_address,默认 Bind 在 localhost 上。如果你想把 Port 9090 开放给所有人用:ssh -L 0.0.0.0:9090:localhost:8080 johnliu@my-server
  • local_port:您本地计算机上要监听的端口。
  • target_host:您要访问的远程计算机。
  • target_port:远程主机上服务运行的端口。
  • user:您的 SSH 用户名。
  • ssh_server:SSH 服务器(例如,服务器的主机 IP)。

python3 -m http.server 8080

ssh -fNC -o StrictHostKeyChecking=no -L 8080:localhost:8080 bob@127.0.0.1 -p 2222
ssh -fNC -o StrictHostKeyChecking=no -L 8080:192.168.200.4:8080 bob@127.0.0.1 -p 2222

远程端口转发(ssh -R)则使本地服务可以通过 SSH 服务器向外界公开。

SSH 服务器需要配置 GatewayPorts yes 设置

ssh -R [remote_addr:]remote_port:local_addr:local_port [user@]gateway_addr

端口映射

浏览器 安装扩展FoxyProxy

Proxychains 配置

Poxifier

参考资料