Cómo hackear un sitio web de WordPress – Tutorial de Hacking Ético

¡Bienvenidos de nuevo compañeros entusiastas de la seguridad! Hoy les mostraré cómo hackear un sitio web de WordPress usando el CTF de Mr. Robot como ejemplo. Acabo de trabajar a través de este excelente CTF yo mismo y aprendí una tonelada en el proceso. Quería subir el nivel de mi juego de Análisis de Vulnerabilidad Web una muesca y empecé con este CTF.

Si realmente quieres aprender Ciberseguridad, recomiendo encarecidamente leer mi enorme guía para principiantes Getting started with Cybersecurity in 2019, donde te enseño cómo empezar, ¡completamente gratis! También merece la pena echar un vistazo al artículo Los mejores libros de Hacking en 2019.

DISCLAIMER: Este «cómo hackear una web de WordPress» es un tutorial de Hacking Ético y está orientado a Profesionales de la Seguridad. No, repito, no utilices estas técnicas sin el consentimiento por escrito de la parte receptora. Si usas este tutorial en un contexto ilegal, te pueden esperar cargos legales y/o tiempo en prisión. Sólo utilice esas técnicas en un entorno cerrado de laboratorio.

Un CTF es un juego llamado Capture the Flag, donde su objetivo es recoger un cierto número de banderas (o llaves, para el caso). Los CTF se utilizan para practicar tus habilidades de hacking en un entorno seguro y legal. Puedo recomendar Vulnhub como un recurso para una selección de un excelente CTF’s.

Ok, vamos a empezar.

Paso 1 – Evaluar si un sitio web está utilizando WordPress

Si usted no sabe si un sitio web está utilizando WordPress o no, en su mayoría hay una manera muy fácil de averiguarlo.

Simplemente puede teclear: www.addressofthewebsite.com/wp-admin

Lo que en la mayoría de los casos mostrará una guía de acceso a wp-admin, excepto si el administrador la ha deshabilitado.

Otra gran manera de comprobar si un sitio web está ejecutando WordPress es utilizando wpscan. Wpscan viene preinstalado tanto en Kali como en ParrotSec.

wpscan -u www.addressofyourtarget.com

En mi caso, el escaneo de la VM de Mr. Robot revela lo siguiente.

Cómo hackear wordpress
Un fragmento de los resultados

Como puedes ver, indica claramente que el sitio está usando WordPress. Además, te presenta 46 vulnerabilidades identificadas. Ahora, la mayoría de los hosters y las versiones recientes de WordPress bloquearán un escaneo como este por defecto. Así que lo más probable es que esto sólo vaya a funcionar con versiones de WordPress obsoletas sin ninguna protección de un hoster.

Ok, hasta aquí todo bien. Ahora podemos verificar que al comprobar si la página de inicio de sesión existe navegando a la URL del sitio web + /wp-admin así:

Cómo hackear wordpress
Inicio de sesión de WordPress

Y seguro que aparece la máscara de inicio de sesión.

Paso 2 – Agarrar el código con Burpsuite

Ahora viene la parte difícil, averiguar el nombre de usuario. Podrías empezar con admin, pero WordPress suele generar un nombre de usuario aleatorio, por lo que podría ser difícil de averiguar y puede que tengas que investigar un poco más sobre el objetivo.

En el ejemplo de Mr. Robot, sé que el nombre de usuario es Elliot (no es muy difícil de adivinar). También podría tratar de ejecutar hydra contra un par de listas de nombres de usuario, pero primero, tenemos que utilizar burpsuite para agarrar un poco de código de la página de inicio de sesión.

Iniciar burpsuite escribiendo

sudo burpsuite

Crear un nuevo proyecto temporal utilizando los valores predeterminados de Burp.

Navegue hasta el objetivo -> Pestaña de alcance y haga clic en Agregar para incluir la página wp-login al alcance. Seleccione Sí en el diálogo emergente.

Cómo hackear WordPress
Añadir el sitio al ámbito

A continuación, vaya al Menú de Preferencias de Firefox y desplácese hasta abajo hasta encontrar Proxy de red. Haz clic en Configuración.

Selecciona Configuración manual del proxy e introduce la IP 127.0.0.1 y el puerto 8080. Marca «Usar este servidor proxy para todos los protocolos». Haga clic en Aceptar.

Cómo hackear WordPress
Añadir un Proxy

Vuelva a Burpsuite. Abre la pestaña de Proxy. Ahora vuelve a la página de WP-Login. Introduzca cualquier nombre de usuario y contraseña al azar y haga clic en Iniciar sesión. Asegúrate de que Privacy Badger, uBlock Origins y NoScript están desactivados para el sitio.

Una vez que hayas hecho clic en iniciar sesión, vuelve a Burpsuite y mira la salida.

Cómo hackear WordPress
Código de captura

log=root&pwd=1234&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.1.109%2Fwp-admin%2F&testcookie=1

Ahora tenemos algo que podemos alimentar a Hydra.

Paso 3 – Encontrar el nombre de usuario correcto

Vamos a divertirnos un poco para darnos una idea de cómo podríamos encontrar un nombre de usuario para nuestro objetivo. El VM que estamos utilizando para este ejemplo, como se mencionó anteriormente, es de temática Mr. Robot. Así que es muy probable que el nombre de usuario se encuentre en algún trivial que tenga que ver con Mr. Robot.

Primero vuelve a tu Burpsuite y ciérralo. Ya no lo necesitamos en este momento. También vuelva a su configuración de Proxy y desactive el Proxy de nuevo.

Ahora me dirijo a la página de Wikipedia de Mr. Robot: https://en.wikipedia.org/wiki/Mr._Robot

Y voy a crear una lista de nombres de usuario de esta página exacta utilizando CeWL.

Abre una nueva ventana de terminal y escribe

sudo cewl -w usernames.txt -d1 -m4 https://en.wikipedia.org/wiki/Mr._Robot

Vamos a desglosar esto.

  • -w usernames.txt – debería estar bastante claro, este es el nombre de la lista de palabras que se creará
  • -d1 – Define la profundidad en la que CeWL rastreará el sitio web. El 1 indica que se quedará exactamente en este sitio y no abrirá ningún enlace en él.
  • -m4 – Define la longitud mínima de la palabra que se pondrá en la lista
  • https://en.wikipedia.org/wiki/Mr._Robot – obviamente el sitio web que vamos a rastrear.

Así que como ves, podrías aplicar esta técnica a cualquier sitio web relevante para el objetivo.

Ejecutando un rápido

ls

Nos muestra, que nuestro usernames.txt fue creado.

Cómo hackear WordPress
Comprobando la salida de CeWL

En algunos casos tienes suerte usando wpscan para enumerar el nombre de usuario, así que siempre prueba esto también:

wpscan --url http://www.targetwebsite.com --enumerate u

Ahora vamos a usar Hydra para Bruteforce esta lista contra la página wp-login.

Paso 4 – Bruteforcing Usernames with Hydra

Muy bien, es hora de alimentar los nombres de usuario a nuestra Hydra. Encontré este método particular en uno de los muchos Walkthroughs de Vulnhub, aunque no recuerdo exactamente cuál era, pero doy crédito a quien lo merece. Abra una nueva ventana de terminal y escriba:

hydra -V -L usernames.txt -p whatever 192.168.1.109 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:F=Invalid username'

Vayamos a desglosar esto.

  • -V – Verbose
  • -L – Nuestros nombres de usuario.txt list
  • -p whatever – La contraseña, no nos importa, porque queremos averiguar el nombre de usuario
    • http-post-form – El tipo de ataque de Fuerza Bruta que queremos ejecutar
    • /wp-login.php – La ruta al formulario de login
    • log = ^USER^&pwd=^PASS^&wp-submit=Log+In – Los valores que se enviarán al formulario, donde ^USER^ y ^PASS^ son marcadores de posición para nuestras opciones -L y -p
    • F=Nombre de usuario inválido – Indica a hydra que el intento ha fallado si devuelve Nombre de usuario inválido

Muy bien, vamos a ejecutar ese comando, ¿de acuerdo?

Cómo hackear WordPress
Resultados de Hydra

Y efectivamente, nos devuelve que el inicio de sesión con el nombre de usuario elliot fue exitoso (Lo cual no fue así, sólo confirmó que el formulario web no devolvió nombre de usuario inválido).

Así que todavía tenemos que averiguar la contraseña. Pero al menos tenemos un nombre de usuario.

Paso 5 – Forzar la contraseña

Ahora también podríamos usar Hydra para forzar la contraseña del usuario, pero prefiero usar wpscan ya que la sintaxis es más fácil.

wpscan --url http://192.168.1.109/wp-login.php --passwords /usr/share/wordlists/rockyou.txt.gz --usernames elliot --wp-content-dir http://192.168.1.109/wp-login.php

rockyou.txt.gz es sólo un ejemplo, reemplaza con cualquier lista de contraseñas que quieras usar.

Y voilá, tenemos el nombre de usuario y la contraseña.

Capturando la contraseña

Paso 6 – Implementar el código malicioso en WordPress

Muy bien, ahora que tenemos el acceso de administrador a WordPress, hay un par de maneras que podemos ir desde aquí. Os mostraré una de las más fáciles.

En vuestro ordenador atacante id a Lugares -> Sistema de archivos -> usr -> share -> webshells -> php y abrid php-reverse-shell.php

Copia todo su contenido:

Cómo hackear wordpress
Copia el texto

Ahora en WordPress, navega a Apariencia -> Editor y selecciona la Plantilla 404.php. Esto es sólo un ejemplo, puedes implementar el código de muchas maneras diferentes.

Ahora pega tu código aquí para que se vea algo así:

Cómo hackear WordPress
Edita las líneas marcadas en amarillo

Edita las líneas marcadas en amarillo para que la IP apunte a tu ordenador atacante y elige un puerto.

Paso 7 – Iniciar un Netcat listener

Ahora de vuelta en el ordenador atacante, iniciamos un Netcat listener:

nc -lvp 443

Entonces vas a abrir la página 404 como simplemente yendo al enlace: www.yourtargetwebsite.com/404

Cómo hackear WordPress
Conexión establecida

¡Y ya estamos! No sólo hemos hackeado la cuenta de administración de WordPress, también hemos conseguido acceder al propio servidor. A partir de aquí tienes que utilizar tus habilidades para obtener un acceso elevado, pero eso ya no debería ser demasiado difícil.

Ya ves, los CTF son una gran manera de aprender cosas nuevas.

Hasta la próxima vez, ¡sigue hackeando!

*Todas las técnicas proporcionadas en los tutoriales de ceos3c.com están destinadas únicamente a fines educativos.
Todas las técnicas que se enseñan aquí están pensadas únicamente para ser utilizadas en un entorno cerrado de laboratorio o con el consentimiento de una segunda parte.
Si utiliza alguna de esas técnicas con fines ilegales, Ceos3c no se hace responsable de las posibles consecuencias legales.

¡Por favor, comparta!

Como cargar…

Deja una respuesta

Tu dirección de correo electrónico no será publicada.