miércoles, 18 de julio de 2012

Solucionario LAMPSecurity CTF6

Bienvenidos una vez más a mi blog

La verdad me siento apenado por mis lectores pero en realidad he estado corto de tiempo, ustedes saben cómo es todo cuando se están finalizando los proyectos (reuniones, presentaciones, actas, etc). Pero bueno la idea no es aburrirlos sino compartir algo y que más que mi propuesta de solucionario a uno de los tantos retos que se han dejado en el sitio del proyecto sec-track

¿saben que es lo mejor de todo?
-> Que se está premiando con dinero el mejor solucionario así que si buscan un incentivo ahí lo tienen.

No siendo más manos a la obra, sin embargo vale la pena aclarar que por falta de tiempo este solucionario no va a ser tan detallado como los otros.

Como ya estamos acostumbrados lo ideal, en estos casos que el entorno tiene activada la configuración de dirección IP dinámica simplemente verificamos en nuestra maquina atacante cual es la configuración de red.

 
Con base en esta información podemos realizar el barrido de ping que siempre usamos con nmap, solo que en esta ocasión me incline por usar otra herramienta muy conocida para esta tarea llamada netdiscover


Con nuestro objetivo identificado, pasamos  a realizar el escaneo de puertos y la respectiva identificación de servicios


Como se puede apreciar tenemos 10 servicios en esta máquina, entre ellos el servidor web, que personalmente siempre lo tengo muy encuentra para la parte de recolección de información, en esta ocasión no hice uso de nikto ni de nuestra gran herramienta dirbuster que en múltiples ocasiones nos ha dado la mano, sino que de una me fui al navegador a ver que podía recolectar...


Como se puede ver se tiene una aplicación web que brinda bastante información entre ella información de posibles usuarios del sistema


De modo que desde este punto ya podemos ir creando nuestro diccionario de usuarios del sistema…

…pero bueno navegando a través de la aplicación encontramos diversas paginas como la principal que al dar click sobre cualquiera de los post nos lo presenta de forma completa, pero observando la URL a la que fuimos direccionados podemos apreciar ese parámetro id=4


De inmediato se me vino a la mente como a la mayoría de ustedes, ¿que pasaría si en lugar de ese 4 se fuera una ‘ (comilla) ?


 Y la respuesta de la aplicación fue como esperaba, no mostro error pero tampoco mostro información, así que por aquí ya tenemos algo interesante

Probemos con algunas cosas lógicas como and 1=1


Y a la vez con algo contrario and 1=0


pero no quise complicarme más, así que ordenando encontramos la cantidad de campos que se está consultando


y posteriormente construimos una consulta que nos de resultados visibles de la inyección sql



Con estos resultados ya podemos comenzar a sacar información de la base de datos…

…vamos con el usuario que se está usando para conectarse a la base de datos


…con la base de datos que se está usando


… la versión del motor


y veamos si existe o no una tabla users


…pero al parecer se llama es user
(espero y vean mas o menos como es la metodologia with nails jajaja)


bueno pero como el hecho es mostrar algunas cosas diferentes vamos a automatizar este proceso usando sqlmap



Haciendo uso del parámetro –dump


saca la información de las tablas de la base de datos (a ver si aquel personaje que me dijo en una ocasión “ahh pero solo es una inyección sql” sigue pensando lo mismo!!!)

¿Si ven lo chévere que de forma automática ataca los hash?, si no lo observó,  mire de nuevo la imagen anterior con mucha atención

Antes que nada veamos com quedaria la inyección en el navegador!!!


No siendo más nos vamos a la app web e iniciamos sesión con el usuario admin y creamos un evento nuevo


 Creamos un archivo php de prueba


 Lo intentamos subir…


vemos que se creó la noticia


 buscamos la ubicación de las imágenes


llamamos nuestra prueba.php


 de la misma forma subimos una webshell


 
y ejecutamos algunos comandos del sistema



 
 




Al final con la intensión de obtener una conexión mas interactiva usamos nuestro cargador de archivos :P para subir una Shell inversa en php


de modo que no preparamos para aceptar la conexión entrante!!!


Lograda la conexión simplemente vamos a explorar un poco el sistema!!!
(¿ven como la etapa de recolección de información esta presente en todo el proceso?)








Por ultimo y para finalizar el entorno probé con mis exploits favoritos pero como dijo Relis tuki


así que después de tanto probar y probar exploits 



no quedo de otra más que usar el que ya habían usado los demás en la solución de este entorno (fue el único que me funcionó)



una vez elevados los privilegios solo miramos el directorio de root del sistema y una que otra cosilla mas para terminar con el entorno



no siendo más espero que esta publicación haya sido de su agrado...

saludos a todos  y hasta una próxima entrada!!!

 
Carlos Andrés Rodallega Obando
@crodallega

No hay comentarios:

Publicar un comentario