Inyección SQL Remota (xmlrpc) en WordPress

  • Posted on: 2 August 2015
  • By: ReYDeS

WordPress es un software web el cual puede ser utilizado para crear sitios webs o blogs. El cual es al mismo tiempo libre y sin costo. El núcleo del software está construido por cientos de voluntarios de la comunidad. WordPress y sus componentes asociados; como los plugins; tienen un extenso registro de vulnerabilidades de seguridad, los cuales son identificados y parcheados constantemente.

Para la siguientes demostración se utiliza la versión de WordPress incluida en la Máquina Virtual OBWAP. La identificación de vulnerabilidades se puede realizar utilizando una herramienta automática o realizando pruebas manuales.

Una vulnerabilidad de Inyección SQL en xmlrpc (xmlrpc.php) en Wordpress 2.1.2 y probablemente versiones anteriores, permite a los usuarios autenticados la ejecución de comandos arbitrarios SQL mediante un valor de parámetro cadena en una llamada al método XML RPC mt.setPosrCategories, relacionada a la variable de nombre “post_id”. El usuario debe pertenecer al rol de “contribuyente” o cualquier rol superior.

Descargado el código del exploit; el cual es un script en Perl; se procede a ejecutarlo.

Se definen las opciones pertinentes. El host, un nombre de usuario y contraseña válidas, y un “post_id” válido el cual pueda ser editado por el usuario. Se inicia la explotación.

$ perl 3656.pl http: //192.168.0.X/wordpress/ user user 5

El exploit finaliza su ejecución obteniendo los hash de las contraseñas pertenecientes a los diversos usuarios encontrados de WordPress.

Utilizando comandos shell en Linux, se filtran las contraseñas hacia un archivo de nombre “hashs”.

$ grep -i ^is: wphashs | cut -d " " -f 2 > /tmp/hashs

Obtenidos los hashs, es factible utilizar la herramienta de nombre HashCat para tratar de averiguar las contraseñas en texto plano. La opción “--remove” permite remover los hashs una vez “crackeados" u obtenidos. Adicionalmente se utiliza una lista de palabras de nombre “10kpasswords.txt”

$ sudo hashcat-cli32.bin --remove /tmp/hashs ~/Wordlists/10kpasswords.txt

Culminado el proceso, la herramienta muestra la obtención de dos contraseñas correspondientes a los usuarios “admin” y “user”.

Fuentes:

https://www.exploit-db.com/exploits/3656/
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1897
http://osvdb.org/show/osvdb/34351
http://sourceforge.net/p/owaspbwa/tickets/7/
http://hashcat.net/wiki/doku.php?id=hashcat

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: https://www.reydes.com/d/?q=node/1