jueves, 30 de mayo de 2019

Writeup - VulnHub - unknowndevice64: 2





Hoy os traigo el solucionario del reto "unknowndevice64: 2" del cual me ha parecido muy interesante, ya que trata de vulnerar un dispositivo Android.


Aunque el reto no era muy complicado, no he visto publicado ningún Writeup, por lo que me he puesto en contacto con el autor de la máquina y me ha dado su "bendición" (Gracias de nuevo Ajay Verma).


Manos a la obra

Escaneamos la red con Netdiscover, remarco con un rectángulo en rojo la máquina que vamos a atacar.


Hacemos un "nmap" y vemos los servicios que tiene disponible:


Encontramos dos servicios, uno es el Freeciv y otro es el Netbus (o al menos, usa el mismo puerto...). Me puede la curiosidad y lo ejecuto en el navegador y nos lleva hasta una web donde nos pide credenciales.


Si nos fijamos en la información que nos soltó nmap, nos da información de sus cabeceras, de que el login utiliza unas credenciales en MD5. Intento reversar el MD5 de la cabecera sin éxito.

Tomo el camino al otro servicio con puerto 5555. A través de este, intentaremos hacer una conexión al dispositivo Android con ayuda de "adb".


Bien, ya tenemos algo, hemos conseguido una shell y estamos conectado al interior del dispositivo. Si accedemos a la carpeta "System" podemos ver el archivo "flag.txt".


Ahora es el momento que hacemos "cat" y nos bailamos una Polka :D, pero no señor, no nos lo van a poner tan fácil.


OMG! Hay que encontrar alguna manera de escalar privilegios y leer el archivo.... Y por increíble que parezca, fue de lo mas sencillo :D


Y así acaba el reto..... Como se me hizo corto, dije ¿Y si logro quitarle el patrón/pin de acceso al dispositivo?


Accedemos a la ruta "/data/system" y allí normalmente se almacena un archivo llamado "locksettings.db" donde guarda la configuración de acceso.

Solo tenemos que eliminar el archivo "locksettings.db" y reiniciar el dispositivo.


Y si todo ha ido bien, el dispositivo iniciará sin pedirnos patrón o PIN.


Ahora si, esto si que es un "2x1" y no lo del Telepizza xD


sábado, 18 de mayo de 2019

Write-up - Reto "Desactiva la bomba" SHSkdi19



Los chic@s de @IESAlbertiCadiz nos traen un reto la mar de divertido! Antes de comenzar, por favor lean las recomendaciones:

Recomendaciones:

- Kali o Parrot "a punto".
- Café bien cargadito en vaso gigante.
- Tenga la caja de Paracetamol bien cerca.


Manos a la obra!

Nos descargamos el .pcap del enlace, si lo abrimos con Wireshark y filtramos por HTTP y método POST encontraremos un login y password interesante. Aunque de manera “sucia” puedes hacerlo a así:

Utilizando el comando strings


Evidencia desde Wireshark

Si lo decodeamos a ASCII, vemos que es una URL que nos lleva a una sistema de desactivación de una bomba
 

Revisamos el código fuente, encontramos una pista:


Tras mucho mirar sin tener clara la solución... Lanzan una pista por el canal de Telegram:
K0n3st, [15.05.19 22:09]
Pista: En la página web hay un comentario que dice que la flag se encuentra en la web, habéis comprobado algún parámetro?
Si le pasamos “https://iesrafaelalberti.es/Reto_shskdi19/index.php?flag=1” nos aparece un “gatete”.

Después de tirarle todas las tools de stego que conozco (que no son pocas xD) me da por probar flag=2 y veo que me abre un 2.html con una imagen de otro gato (gracioso, verdad? No.... No me refiero al gatito....xD)

Visto que si sigo la secuencia cada vez aparece otro gato, voy a ejecutar un script (yo no me compliqué y lo hice con ZAP, pero puedes hacerlo con Bash o Python) con varias peticiones para ver si cazo algo que no sea un gato.

Script Payload con ZAP

Pues si, en el 999.html me encuentro con una evidencia, parecen urls ofuscada en algún tipo de cifrado.

Tiramos de Multisolver y sacamos las evidencias:


En cada .html encontramos una foto (no, no son gatitos xD), vamos haciendo strings a cada una de ellas y nos topamos con algo curioso con la foto "cornear.jpg".


Vemos que la foto esconde un archivo comprimido (.rar) y que dentro de este hay al menos dos archivos mas, una hoja de cálculo y otro rar que contiene una pista.

Utilizamos Binwalk para extraer el archivo .rar de la imagen, lo descomprimimos y nos pide que insertemos la contraseña. (Tranquilos, aún nos queda medio café, frío, pero medio café...)

Extraemos sus hash con la ayuda de rar2john y lo pasamos por John The Ripper con el diccionario Rockyou.


La contraseña del archivo es "qwerty", la utilizamos y conseguimos los dos ficheros que mencionamos anteriormente.

Vemos un listado de proveedores con nombres, apellidos y teléfono, por lo que no hay duda que se trata de un reto de OSINT, de todas formas, ya que nos dan una pista "gratis" vamos a utilizarla.

Pero claro.... "Si algo es gratis, es que....." La pista tiene password!!! Estaba claro que no nos lo iban a poner fácil. 
Utilizaremos el mismo método que anteriormente (rar2crack, JTR con Rockyou):
Una vez con la clave (monkey) descomprimimos el archivo y leemos la pista.
Pues a "stalkear"! Tras buscar por varias redes y entre muchos perfiles (algunos muy curiosos xD) damos con el perfil del cibercriminal en Instagram y con el código de desactivación.
Bien!!! hemos encontrado el código de desactivación....Probamos y....Plaf!! En toda la frente!!! No funciona!!!! Si lo decodeamos en b64, tampoco...... 
Tras mucho pensar y probar, y probar, y probar.... Pruebo el código de la cuenta de ”bitcoins” aunque está cifrada o codificada, tras las horas que son y sin Paracetamol para mi pobre cabeza, le paso el trabajo a “CyberChef” y nos ayuda a resolverlo, bueno... Solo tenemos que ir probando código a muerte!! :D

 
Está en base58, introducimos el código y ahora si!!!! Reto finalizado!!!

Me he divertido muchísimo con el reto, gracias por complicarnos tanto la vida (va con cariño xD). Enhorabuena por el evento SHSdki19 y a los creadores del reto!