En mi búsqueda de algún reto de Hacking básico, he encontrado los HackLabs de GF0S que decía que eran para los que recién iniciamos en Seguridad Informática y pues soy uno de ellos así que decidí probar a ver que tal me iba.
En este caso, se trata del HackLab #1 - Comprometer un servidor FTP, pueden encontrar los demás retos aqui.
http://labs.gf0s.com/ |
Objetivo:
- Intentar obtener el diseño del prototipo del dron.
- Dejar una evidencia (subir un archivo .txt)
Reglas:
- Cuando logres acceder al sistema, deberás dejar una evidencia. Dicha evidencia deberá ser exclusivamente un archivo .txt con el nick del usuario.
- El contenido del archivo puede ser lo que tú quieras. Recomiendan poner un ascii art.
- El servidor estará activo durante 1 semana. Por favor, no publicar durante este tiempo la manera en la que accediste. ( El reto es del 2015, así que ya paso tiempo).
Recolectando información
La información que nos brindan es:
-Nombre del administrador: Alejandro Quero
-Facebook del administrador: https://www.facebook.com/profile.php?id=100010301916909
Revisando el perfil del administrador, logre encontrar la siguiente información:
- Fecha de nacimiento del administrador: 11/08/1980
- Falta limpiar los metadatos a sus archivos
- El servidor ftp al que se conecta: 52.10.103.130
- El usuario que utiliza para acceder al servidor ftp: aquero
- Otro posible usuario: Pedro
- 2 archivos .pdf 'Diagrama de red WAN' y 'Diagrama de red LAN' (enlace aqui)
Ademas información muy importante sobre las contraseñas:
- Para contraseñas que se utilizan para acceder vía red ( telnet, ftp o red de windows) , se utilizan contraseñas de solo dígitos y son solamente de 7 dígitos.
- Para contraseñas locales ( como documentos .pdf .doc o .zip ), se utilizan contraseñas con unicamente letras minúsculas y números, ademas deberán ser de 6 dígitos.
Accediendo al servidor ftp
Según la información que hemos obtenido, ya tenemos el nombre del usuario, que es aquero, luego probé algunas claves utilizadas frecuentemente y al no dar resultado, pues cree un diccionario para luego acceder con fuerza bruta.
Generando diccionario:
La opción menos viable pero que resultaría era generar un diccionario un diccionario con todas las posibles opciones que podía haber, para ello utilice la herramienta Crunch, que tiene el siguiente formato:
- $ crunch <min> <max> <texto> -o <archivo_de_salida>Donde:
min: mínimo de caracteres
max: máximo de caracteres
texto: contiene los caracteres posibles
archivo_de_salida: nombre del archivo de salida
Ahora ejecutamos el siguiente comando:
- $ crunch 7 7 0123456789 -o pwd.txt
Pero esto me iba a demorar mucho, así que antes de ir por todo a lo bruto, decidí hacer un diccionario algo mas especial, ya que tenemos su fecha de nacimiento, pues utilicemos eso:
- $ crunch 7 7 1980 -o pwd.txt
*Nota: ponemos minimo(7) y maximo(7) por la informacion que obtuvimos previamente.
*Nota 2: nuestro texto es 1980, pues de la cadena 11/08/1980, sin repetir digitos es 1,0,8,9.
*Nota 2: nuestro texto es 1980, pues de la cadena 11/08/1980, sin repetir digitos es 1,0,8,9.
Utilizando fuerza bruta para obtener la contraseña:
Ahora para acceder al servidor ftp, utilizaremos la herramienta Hydra:
- $ hydra -l aquero -P pwd.txt ftp://52.10.103.130Donde los siguientes parametros son para:
-l: usuario para acceder al servidor ftp
-P: archivo que contiene el diccionario
*Nota: Con este diccionario que creamos anteriormente, demore menos tiempo en encontrar la clave.
Después de unos minutos, he logrado conseguir la clave con el diccionario anteriormente generado. La clave es: 0019808
Entonces ahora ya podemos acceder al servidor ftp:
Usuario: aquero
Contraseña: 0019808
Conectándonos al servidor ftp:
Ahora para conectarnos al servidor ftp, utilizamos lo siguiente:
- $ ftp 52.10.103.130
Uno de los objetivos es subir una evidencia, en mi caso es un archivo .txt (paoloprogrammer.txt). Ejecutamos lo siguiente ahí mismo:
- ftp> send paoloprogrammer.txt paoloprogrammer.txt
Si todo ha salido correcto, visualizamos nuestro archivo subido y los de otros que ya han dejado su evidencia tambien:
- ftp> ls -a
En donde podemos visualizar nuestro archivo subido (paoloprogrammer.txt) y ademas un directo llamado privado. Para la siguiente parte accederemos desde la web.
Obteniendo el diseño del prototipo del dron
Bueno aun nos falta encontrar el diseño del drone, así que accediendo desde web podemos ver también la carpeta privado y en donde encontramos un archivo .zip (PrototipoPrivado6.zip) .
Una vez descargado el archivo, vemos que contiene una imagen, pero esta protegido por contraseña. Para esto utilicé una herramienta para obtener la clave, pues de la información obtenida anteriormente nos dice que los archivos .pdf .doc o .zip sus claves son caracteres y números, ademas tiene una longitud de 6 dígitos, veamos.
Obteniendo clave para el archivo .zip :
Utilice la herramienta fcrackzip, la cual tambien esta en Kali, ejecutamos lo siguiente:
- $ fcrackzip -b -c a1 -l 6-6 -v -u PrototipoPrivado6.zip
Donde:
-b: utiliza el algoritmo para fuerza bruta
-c: indicamos caracteres alfanuméricos (a1)
-l: longitud mínima - longitud máxima (6-6)
Después de unos minutos, ha encontrado la clave:
Y pues ahora solo nos queda, descomprimir y obtener la imagen del prototipo:
Y listo, hemos completado el reto, es un reto ya de mas de 2 años, pero fue entretenido, la imagen obtenida es la siguiente:
Bueno eso ha sido todo, si desean ver el archivo .txt que deje como muestra, pueden verlo aquí:
http://labs.gf0s.com/website/paoloprogrammer.txt
Buen dia, Me gustaria por favor conocer como intuir la primera contraseña, ya que en el reto pues se supone que es para personas que estan iniciando y no tienen como intentar hacer un ataque de diccionario. muchas gracias
ResponderBorrarConseguiste saberlo???
Borrar