Solución reto null byte

8
Hola de nuevo. Hoy os dejo la solución al reto de VulnHub “NullBite”. Según su autor , va de nivel principiante a intermedio y nos dice que debemos usar el pensamiento lateral y quizá tengamos que escribir algo de código. Es por eso que me decido a coger este reto, a ver si soy capaz de realizarlo. Para variar, voy a empezar con un escaneo con nmap xD. De momento me vale con este escaneo, luego si creo necesario ampliarlo lo haré hacia todos los puertos. Bueno, ya vemos que tenemos abierto el puerto 80, así que vamos a ver que hay. “Si buscar las leyes de la harmonía, encontrarás el conocimiento”. Bonita frase. Haciendo una búsqueda rápida, parece ser que es un proverbio Egipcio. Revisando el código no encuentro nada, lo único que veo que me llama la atención, es que pone que es el nivel 1, lo cual me hace pensar que puede que haya más niveles jeje. Por si acaso me guardo la imagen y la paso en un momento por exiftool a ver si saca algo.

Transcript of Solución reto null byte

Page 1: Solución reto null byte

Hola de nuevo. Hoy os dejo la solución al reto de VulnHub “NullBite”. Según su autor, va de nivel principiante a intermedio y nos dice que debemos usar el pensamiento lateral y quizá tengamos que escribir algo de código. Es por eso que me decido a coger este reto, a ver si soy capaz de realizarlo. Para variar, voy a empezar con un escaneo con nmap xD.

De momento me vale con este escaneo, luego si creo necesario ampliarlo lo haré hacia todos los puertos. Bueno, ya vemos que tenemos abierto el puerto 80, así que vamos a ver que hay.

“Si buscar las leyes de la harmonía, encontrarás el conocimiento”. Bonita frase. Haciendo una búsqueda rápida, parece ser que es un proverbio Egipcio. Revisando el código no encuentro nada, lo único que veo que me llama la atención, es que pone que es el nivel 1, lo cual me hace pensar que puede que haya más niveles jeje.

Por si acaso me guardo la imagen y la paso en un momento por exiftool a ver si saca algo.

Page 2: Solución reto null byte

Pues mira por donde sí que había algo, he obtenido kzMb5nVYJw que a bote pronto tiene pinta de contraseña. Vamos a tirarle un poco con dirbuster a ver si sale algo.

He encontrado un directorio de subidas, veamos que hay.

Pues mi gozo en un pozo xD. Dandole un poco a la cabeza, y recordando otro de los retos, quizá lo que pienso que es una contraeña en realidad no lo es. Voy a probar a ver si fuese un directorio.

Estaba en lo cierto, es un directorio y nos pide una key, ¿será el mismo valor que el directorio?

Pues no ha habido suerte. Pero revisando la respuesta de Burp, me encuentro con esto.

Nos dice que el formulario no está conectado a Mysql y que la contraseña no es tan complicada.

Page 3: Solución reto null byte

Recuerdo que una de las pruebas de Mutillidae o de DVWA (no recuerdo cual) era saltarse un “formulario” como el que me encuentro ahora. Voy a probar con hydra a ver si lo saco. Después de un rato mirando la ayuda y de probar varias formas consigo encontrarlo.

Hydra nos dice que la key es elite vamos a ver si es cierto.

Nos dice que ha cogido los datos de forma exitosa, pero no veo nada más. Lo que sí que encuentro, tras revisar de nuevo Dirbuster, es que ha encontrado un panel de phpMyAdmin.

No consigo acceder como root/elite y mirando Burp veo que en la petición va un token, pero este nunca cambia. Vamos a tirarle con el intruder a ver si sacamos algo, mientras continúo investigando. Mira tu por donde, jugando con el parámetro de la URL donde nos pedía una key, me percato que tiene una SQLi.

Page 4: Solución reto null byte

Vamos a profundizar algo más con SQLmap como vimos en esta entrada del blog. sqlmap ­u http://192.168.1.142/kzMb5nVYJw/420search.php?usrtosearch=culo ­­dbs Lo que me devuelve este resultado.

Ahora le paso sqlmap ­u http://192.168.1.142/kzMb5nVYJw/420search.php?usrtosearch=culo ­D seth,phpmyadmin ­­tables

Continuo con sqlmap ­u http://192.168.1.142/kzMb5nVYJw/420search.php?usrtosearch=culo ­D seth ­T users ­­columns

Y por último, le pido el id, users y pass. sqlmap ­u http://192.168.1.142/kzMb5nVYJw/420search.php?usrtosearch=culo ­D seth ­T users ­C id,users,pass ­­dump

Page 5: Solución reto null byte

Bien, ya tenemos al menos el hash de la password del usuario ramses: YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE Si pasamos de Base64 a texto el anterior hash obtenemos c6d6bd7ebf806f43c76acc3681703b81 Pensaba que sería un código en hexadecimal, pero no me devuelve ningún resultado, así que se lo pasaré a hashcat (como en esta entrada) a ver si saca algo. Mientras sigo mirando con SQLmap la parte de phpMyAdmin a ver si saco algo.

Pues ya lo tenemos, como he dicho siempre, gran herramienta el hashcat este xD. c6d6bd7ebf806f43c76acc3681703b81:omega Hora de volver a lanzar nmap a todos los puertos a ver que encuentro.

Pues parece que hay un ssh en el puerto 777 que la primera vez nmap no nos dijo.

Page 6: Solución reto null byte

Ya estamos dentro de la máquina con el usuario ramses. Lo primero es ver que tiene este usuario.

Veamos el bash_history por si nos da alguna pista.

Parece que el usuario previamente ejecutó un binario llamado procwatch situado en el directorio /var/www/backup. Vamos a ver que pasa con él.

Encuentro un fichero .txt que dice “tengo que arreglar este lío”. El binario es propiedad de root y esto me suena bastante del reto del otro día. Me voy a copiar el binario a mi Kali y voy a ver que saco.

Igual que en el reto de “The Wall” que hice anteriormente, decido ir por el camino rápido.

Page 7: Solución reto null byte

La primera vez que ejecutas el binario nos devuelve lo que vemos en la imagen anterior; procwatch genera una shell que llama a ps y como pasaba en el reto que mencionaba hace unas líneas, la llamada se hace con system y sin una ruta explícita, y ahí está la vulnerabilidad. Solo tengo que modificar mi path para que cuando ejecute de nuevo procwatch llame a ps y eleve privilegios.

Pues ahí está el flag, hemos terminado, pero no se porque me da la sensación de que algo me dejo en el camino, así que me vuelvo a la parte del SQLmap a ver si saco la pass del phpMyAdmin.

Pues parece ser que no hay nada, pero no me voy a dar por vencido, tengo que poder acceder si o si xD. Veamos, tengo el usuario root y la petición que hago pasada por Burp, así que, vamos a por ello.

Page 8: Solución reto null byte

Ahora también tengo el error que da con un login erróneo. A darle caña con el intruder.

Ahí está, la password del phpMyAdmin es sunnyvale .

Sabía yo que se tenía que poder acceder jeje. Pues después de subir una shell y probar varias cosas, al final llego al mismo punto y obtengo el mismo flag, así que, o no hay más, o no lo veo. Agradecimientos: Al creador de la máquina @ly0nx por dedicar su tiempo en este reto. Recursos utilizados: Burp Dirbuster

Solución realizada por Roberto García Amoriz (@1GbDeInfo).