Download - Solución al reto Hackademic.RTB2
![Page 1: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/1.jpg)
Solución al reto Hackademic.RTB2
![Page 2: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/2.jpg)
Averiguo la ip de la máquina objetivo
![Page 3: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/3.jpg)
En el escaneo de puertos veo que el puerto 80 está abierto y es un servicio web y el 666 está filtrado.
![Page 4: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/4.jpg)
Realizo un escaneo de directorios y ficheros, además del index.php parece ser que también tenemos un phpmyadmin
![Page 5: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/5.jpg)
Realizo un escaneo con dirbuster, se descubre el directorio index y check y otros directorios pertenecientes a phpmyadmin
![Page 6: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/6.jpg)
Al acceder al servicio web aparece un formulario de acceso
![Page 7: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/7.jpg)
Intento sin éxito obtener las credenciales por fuerza bruta. Tampoco es vulnerable a inyección SQL. No obtengo nada interesante de los directorios index y check.
![Page 8: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/8.jpg)
No consigo explotar ninguna de las vulnerabilidades que tiene esta versión. Tampoco consigo las credenciales de phpmyadmin por fuerza bruta.
Averiguo la versión de phpmyadmin consultando el fichero changelog.php.
![Page 9: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/9.jpg)
Para acceder al directorio setup de phpmyadmin es necesario autenticación. Intento sin éxito conseguir el acceso por fuerza bruta.
![Page 10: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/10.jpg)
Escaneo de nuevo los puertos con distintas opciones, en uno de los escaneos el puerto 666 aparece abierto, después de hacer distintas pruebas me doy cuenta de que al realizar varias veces un escaneo se abre ese puerto. Al final veremos por qué.
![Page 11: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/11.jpg)
Repito el escaneo con más opciones para sacar más información sobre ese puerto. Es un servicio web lo que tenemos a la escucha.
Ha encontrado el fichero robots.txt.
![Page 12: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/12.jpg)
Realizo un escaneo de directorios.
![Page 13: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/13.jpg)
Esto es lo que aparece cuando accedo al servicio web. Se trata del cms Joomla versión 1.5 como se puede ver en la vista y en el código fuente.
![Page 14: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/14.jpg)
![Page 15: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/15.jpg)
Después de dar vueltas por las distintas opciones que presenta, intento sin éxito acceder al directorio administrator.
![Page 16: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/16.jpg)
El directorio tmp está vacío y el resto de directorios no tiene nada interesante o no tengo acceso.
![Page 17: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/17.jpg)
Intento sacar provecho de alguna de las múltiples vulnerabilidades que tiene Joomla 1.5. Después de no conseguir explotar ninguna de ellas, llego a esta opción, el listado de contenidos.
![Page 18: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/18.jpg)
Guardo en el fichero (request.txt) la petición al servidor para luego procesarla con sqlmap y comprobar si es vulnerable a SQLi
![Page 19: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/19.jpg)
El parámetro letter es vulnerable a SQLi. Obtengo las bases de datos.
![Page 20: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/20.jpg)
Obtengo el hash de los usuarios de mysql.users. Intento crackearlos sin éxito.
![Page 21: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/21.jpg)
Realizo un volcado de joomla.jos_users.
![Page 22: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/22.jpg)
Necesito saber cómo genera el hash Joomla para después crackearlo con hashcat.
![Page 23: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/23.jpg)
Se han crackeado dos de los tres hashes. Usuario Password JSmith matrix Btallor victim
![Page 24: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/24.jpg)
Me logueo con uno y otro usuario. No consigo encontrar ninguna vulnerabilidad.
![Page 25: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/25.jpg)
Intento a través de SQLi ejecutar el comando id. Indico que el backdoor de sqlmap lo suba a /var/www (por defecto) o como alternativa al directorio tmp que se descubrió anteriormente. Sin resultado positivo.
![Page 26: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/26.jpg)
Sin embargo, si consulto el directorio sí veo que se ha creado el backdoor aunque sin contenido.
![Page 27: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/27.jpg)
Ejecuto de nuevo sqlmap pero ahora conectado a burpsuite para ver qué pasa.
Quizás la SQLi no esté dando resultados y a lo mejor por eso crea el fichero pero no el contenido.
![Page 28: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/28.jpg)
Repito la petición pero introduciendo un error en la query, a LIMIT le he quitado la M. Obtengo un error que me muestra la sql sobre la que se está ejecutando la SQLi.
![Page 29: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/29.jpg)
Según la sql: SELECT id, title FROM jos_content WHERE state=1 AND UPPER(title) LIKE ‘List of content items…’ LIMIT 1…
La condición state=1 AND UPPER(title) LIKE ‘List of content items…’ no se está cumpliendo. Consulto el contenido de jos_content y veo que hay un registro con title=‘Welcome’ y state=1
![Page 30: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/30.jpg)
Cambio la cadena a buscar por WELCOME en mayúsculas que es como se va a comparar. Lanzo de nuevo la petición y el resultado es que el fichero que se intenta grabar como backdoor ya existe.
![Page 31: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/31.jpg)
Cambio el nombre del backdoor a mibackdoor.php
![Page 32: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/32.jpg)
Ahora sí se ha subido bien.
![Page 33: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/33.jpg)
A través del backdoor subo el webshell r577.php
![Page 34: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/34.jpg)
Echo un vistazo a los directorios, servicios en ejecución, etc, etc…
![Page 35: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/35.jpg)
Desde la webshell hago una conexión a mi sistema para tener una sesión de terminal (me muevo más rápido aquí que en la webshell). Después de algunas vueltas, descubro que la versión del kernel es vulnerable. CVE-2010-2959: Integer overflow in the Controller Area Network (CAN) subsystem when setting up frame content and filtering certain messages. An attacker could send specially crafted CAN traffic to crash the system or gain root privileges.
![Page 36: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/36.jpg)
Para explotar la vulnerabilidad he encontrado el exploit 14814.c de exploit-db.
Subo el fichero desde mi sistema, compilo, ejecuto y… r00t!
![Page 37: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/37.jpg)
Vuelco el contenido del fichero Key.txt, objetivo del reto y me encuentro con que está codificado, al parecer en base 64.
![Page 38: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/38.jpg)
Copio el archivo al directorio raiz del servicio web, para poder bajarlo por web.
Lo descargo en mi sistema.
![Page 39: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/39.jpg)
Decodifico el contenido y veo que se trata de una imagen PNG.
![Page 40: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/40.jpg)
Hago un pequeño script para que lea Key.txt y cree key.png
![Page 41: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/41.jpg)
Abro la imagen, y aquí tengo el contenido del fichero objetivo del reto.
![Page 42: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/42.jpg)
Y ahora queda resolver la incógnita de por qué el puerto 666 inicialmente aparece filtrado y después de varios escaneos de puerto, se muestra entonces abierto. Si se analizan las reglas en iptables, lo que se ha hecho es crear un port knocking. La conexión a los puertos 1001, 1101, 1011 y 1001 otra vez y en este orden abre el puerto 666.
![Page 43: Solución al reto Hackademic.RTB2](https://reader033.vdocuments.site/reader033/viewer/2022052311/557212b5497959fc0b90c4e8/html5/thumbnails/43.jpg)