Pivoting

Enumeración

  • Tabla ARP:

arp
arp -n
  • Archivo hosts:

cat /etc/hosts
  • Tabla de enrutamiento:

route -n
ip route
netstat -r
  • Información de interfaces:

ip a
ifconfig
cat /proc/net/fib_trie
nmcli dev show

Para ifconfig y nmcli debemos tener instalado network-manager. Se puede instalar usando sudo apt update && sudo apt install network-manager -y.

  • Información DNS:

cat /etc/resolv.conf
  • Conexiones establecidas y a la escucha:

netstat -auntp
  • Ping Sweep:

for i in {1..254} ;do (ping -c 1 192.168.2.$i | grep "bytes from" &) ;done
  • Enumeración de puertos remotos:

for port in {1..65535}; do(echo > /dev/tcp/10.30.40.39/$port) > /dev/null 2>&1 && echo "port $port is open"; done

SSH

Port Forwarding

ssh <user>@<pivot_ip> -L 127.0.0.1:<local_port>:<target_ip>:<target_port> -N

Se puede omitir la dirección del localhost.

  • Se abre de forma local el puerto <local_port> mediante la opción -L

  • El tráfico generado al localhost (127.0.0.1) con el puerto <local_port> es transferido al puerto <target_port> de la IP <target_ip> a traves del túnel SSH

  • La opción -N indica que no se ejecutan comandos después de autenticarnos

Tunneling/Proxying

ssh <user>@<pivot_ip> -D <localhost>:<proxy_local_port> -N
  • -D <localhost>:<proxy_local_port>, para este caso, se puede omitir la IP del localhost. Indicamos que se se realizará un Dynamic Port Forwarding, usando el puerto especificado como proxy

  • -N no iniciar una shell

Metasploit/Meterpreter

Port Forwarding

Desde la sesión meterpreter, ejecutamos lo siguiente:

portfwd add -l 3300 -p 80 -r 192.168.2.30
  • -l puerto local a abrir

  • -p puerto del target

  • -r IP del target

Tunneling/Proxying

Fuera de la sesión meterpreter (salir usando el comando bg), usar los siguiente comandos:

use auxiliary/server/socks_proxy
set SRVPORT 9050
set SRVHOST 0.0.0.0
set version 4a
run
  • SRVPORT puerto que usaremos como proxy del tráfico

  • SRVHOST IP que estará a la escucha, si es 0.0.0.0, todas las interfaces estarán a la escucha

  • version indicamos la versión del protocolo SOCKS, que puede ser versión 4 (4a en mestasploit) o versión 5

Ahora, le decimos al módulo socks_proxy que reenvíe el tráfico a la sesión meterpreter usando el módulo post/multi/manage/autoroute, esto se puede lograr de las siguientes dos formas:

  • Fuera de la sesión meterpreter:

# Módulo AutoRoute
use post/multi/manage/autoroute
# Sesión meterpreter a la que le enviaremos el tráfico
set SESSION 1
# Segmento de red donde se encuentra la máquina de pivoting
set SUBNET 192.168.2.0
# Ejecutar el módulo
run
  • Dentro de la sesión meterpreter:

run autoroute -s 192.168.2.0/24

Socat

Podemos descargar socat desde los siguientes enlaces:

Comando:

./socat TCP4-LISTEN:8081,fork TCP4:192.168.2.30:8443 &
  • TCP4-LISTEN:8080 especificamos el puerto que se pondrá a la escucha

  • fork indicamos que socat puede aceptar más de una conexión

  • TCP4:192.168.2.30:8443 corresponde a la dirección IP y puerto hacia donde se redireccionará el tráfico recibido en el puerto especificado en la primera sección del comando

  • & dejamos el proceso en segundo plano

sshuttle

sudo apt update
sudo apt install sshuttle

Rpivot

git clone https://github.com/klsecservices/rpivot.git
sudo apt-get install python2.7

Netsh

Port Forwarding

netsh interface portproxy show v4tov4

Los registro de netsh son guardados en HKLM:\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp:

reg query HKLM\SYSTEM\CurrentControlSet\Services\PortProxy\v4tov4\tcp /s

Reglas de Firewall

  • Tráfico entrante:

netsh advfirewall firewall add rule name=<rule_name> protocol=TCP dir=in localport=<local_port> action=allow
  • Tráfico saliente:

netsh advfirewall firewall add rule name=<rule_name> protocol=TCP dir=out localport=<local_port> action=allow

Chisel

Tunneling/Proxying

  • Descargar del repositorio de chisel:

git clone https://github.com/jpillora/chisel.git
  • Compilación para Linux:

cd chisel
go build -ldflags "-s -w"
upx brute chisel
  • Compilación para Windows:

cd chisel
env GOOS=windows GOARCH=amd64 go build -o chisel.exe -ldflags "-s -w"
upx brute chisel.exe

Last updated