Resolución del CTF MORTADELA
Escaneo de puertos
Realizamos un escaneo mediante nmap para descubrir los puertos abiertos de la máquina.

En este caso podemos ver que son los puertos activos
Los parámetros utilizados son:
- -p- : Escaneo de todos los puertos. (65535)
- -sS : Realiza un TCP SYN Scan para escanear de manera rápida que puertos están abiertos.
- -sC : Realiz una escaneo con los scripts basicos de reconocimiento
- -sV : Realiza un escaneo en buqueda de los servicios
- –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo, el parámetro anterior y este hacen que el escaneo se demore menos.
- -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario.
- -Pn: Deshabilitamos el descubrimiento de host mediante ping.
Le echamos un vistazo al puerto 80 y vemos que tiene apache por defecto así que vamos a fuzzear

Nos encontramos con un directorio wordpress;

Con Wpscan le hacemos un reconocimiento básico y vemos que tenemos un usuario llamado «Mortadela»
wpscan --url http://192.168.0.108/wordpress/ --enumerate u,vp
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __ ®
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.25
Sponsored by Automattic - https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[i] It seems like you have not updated the database for some time.
[?] Do you want to update now? [Y]es [N]o, default: [N]
[+] URL: http://192.168.0.108/wordpress/ [192.168.0.108]
[+] Started: Thu Apr 4 12:49:24 2024
Interesting Finding(s):
[+] Headers
| Interesting Entry: Server: Apache/2.4.57 (Debian)
| Found By: Headers (Passive Detection)
| Confidence: 100%
[+] XML-RPC seems to be enabled: http://192.168.0.108/wordpress/xmlrpc.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
| References:
| - http://codex.wordpress.org/XML-RPC_Pingback_API
| - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner/
| - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos/
| - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login/
| - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access/
[+] WordPress readme found: http://192.168.0.108/wordpress/readme.html
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
[+] Upload directory has listing enabled: http://192.168.0.108/wordpress/wp-content/uploads/
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
[+] The external WP-Cron seems to be enabled: http://192.168.0.108/wordpress/wp-cron.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 60%
| References:
| - https://www.iplocation.net/defend-wordpress-from-ddos
| - https://github.com/wpscanteam/wpscan/issues/1299
Fingerprinting the version - Time: 00:00:03 <=======================================================================================================================================================> (700 / 700) 100.00% Time: 00:00:03
[i] The WordPress version could not be detected.
[+] WordPress theme in use: twentytwentyfour
| Location: http://192.168.0.108/wordpress/wp-content/themes/twentytwentyfour/
| Readme: http://192.168.0.108/wordpress/wp-content/themes/twentytwentyfour/readme.txt
| [!] Directory listing is enabled
| Style URL: http://192.168.0.108/wordpress/wp-content/themes/twentytwentyfour/style.css
| Style Name: Twenty Twenty-Four
| Style URI: https://wordpress.org/themes/twentytwentyfour/
| Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collecti...
| Author: the WordPress team
| Author URI: https://wordpress.org
|
| Found By: Urls In Homepage (Passive Detection)
|
| Version: 1.0 (80% confidence)
| Found By: Style (Passive Detection)
| - http://192.168.0.108/wordpress/wp-content/themes/twentytwentyfour/style.css, Match: 'Version: 1.0'
[+] Enumerating Vulnerable Plugins (via Passive Methods)
[i] No plugins Found.
[+] Enumerating Users (via Passive and Aggressive Methods)
Brute Forcing Author IDs - Time: 00:00:00 <==========================================================================================================================================================> (10 / 10) 100.00% Time: 00:00:00
[i] User(s) Identified:
[+] mortadela
| Found By: Author Posts - Author Pattern (Passive Detection)
| Confirmed By:
| Rss Generator (Passive Detection)
| Wp Json Api (Aggressive Detection)
| - http://192.168.0.108/wordpress/index.php/wp-json/wp/v2/users/?per_page=100&page=1
| Author Id Brute Forcing - Author Pattern (Aggressive Detection)
[!] No WPScan API Token given, as a result vulnerability data has not been output.
[!] You can get a free API token with 25 daily requests by registering at https://wpscan.com/register
[+] Finished: Thu Apr 4 12:49:32 2024
[+] Requests Done: 1317
[+] Cached Requests: 12
[+] Data Sent: 385.06 KB
[+] Data Received: 28.838 MB
[+] Memory used: 245.062 MB
[+] Elapsed time: 00:00:07
Intentamos mirar si podemos obtener el fichero «xmlrpc.php» para una posible enumeración y fuerza bruta de usuarios y contraseña pero vemos que no;

No obstante lo intentamos sin exito

Además intentamos ver que podemos encontrar el el directorio «cgi-bin»(deshabilitado normalmente) para un posible ataque «ShellShock», os dejo mas información de este ataque en mi blog:

Explotación de ShellShock y vulnerabilidades

Puesto que tenemos la ultima versión de ssh y no podemos hacer fuerza bruta, lo haremos sobre mysql con el usuario «mortadela»(sin éxito) que teníamos y el usuario por defecto «root».

Visto que tenemos un usuario y contraseña vamos a investigar que nos encontramos en la base de datos;

En una de las tablas de la base de datos confidencial entramos un usuario y contraseña, así que probaremos a entrar por ssh;

Navegamos por directorio primeramente para un reconocimiento inicial

Y nos encontramos con una carpeta compirmidad muy curiosa;

Puesto que no tenemos Python nos mandaremos el archivo con «scp»

Es un archivo protegido con contraseña asi que sacaremos su hash para posteriormente hacerle fuerza bruta


Tenemos la contraseña y podemos acceder a ver dos archivos, dos archivos de keepass;

Para verlos necesitamos una clave maestra, así que con este exploit vamos a intentar averiguarla, ademas os dejo un video sobre mi compañero en el que se le acontece la misma vulnerabilidad;
https://youtube.com/watch?v=VFF8RgqY4Bg%3Ffeature%3Doembed

Conseguimos la clave maestra asi qu eabrimos KeePassXC para linux;

Obtenernos una contraseña de root, probemos si es para ssh

Y efectivamente hemo conseguido acceder a root y obtener las flags
