De-ICE: S1.100

Primera máquina vulnerable de las series De-ICE, en esta ocasión nos dice que el flag final es un fichero confidencial el cual contiene salarios de los empleados y que está ubicado en el servicio FTP el cual se encuentra fuera de servicio.

Captura.PNG

Recursos y software utilizado:

Kali Linux 2018

Nmap

Hydra

Johnny

Virtual Box

De-ICE S1-100 ISO

Guía de explotación:

En primer lugar realizaremos con Nmap un escaneo con sus opciones -sV (servicios), -sC (scripts) y veremos la información que nos muestra por pantalla:

Nmap

Vemos en la imagen superior que tiene un servicio FTP el cual esta offline, un servidor SSH operativo al igual que los servicios de email y  un servidor web el cual vamos a ver que nos arroja cuando conectamos:

usuariosweb.png

El siguiente paso después de estar navegando por la web y haber hecho un listado de directorios con Dirbuster sin encontrar nada para explotar, será utilizar CEWL para hacer una recolecta de palabras de la página web y utilizarla para intentar extraer las contraseñas de los usuarios que vemos en la imagen superior.

diccionarioCeWL.png

Las opciones que utilizamos son :

  • -d : longitud mínima de la palabra
  • -m : longitud máxima de la palabra
  • -w : archivo dónde queremos que se guarden los resultados

webwordsCreado-1.png

Para ser más eficaces agregamos manualmente los usuarios que nos muestra en la página web y utilizamos este script para obtener más variaciones de los usernames así cómo más vectores de ataque para ejecutar la fuerza bruta, y lo guardamos todo en el archivo names.txt.

usuarios.pngmascombinacionesconusuariosScriptpythonalefecto.png

Una vez con el archivo creado nos ponemos manos a la obra con la fuerza bruta y la “grandiosa” herramienta HyDrA :

hydrabruteforce.png

Utilizamos estas opciones:

  • -e nsr : “n” password vacío, “s” login igual que password, “r” login al revés
  • -L : archivo a con muchos usuarios para probar
  • -t : número de conexiones en paralelo

Como vemos la cosa ha funcionado tenemos al usuario:bbanter pasword:bbanter para conectar mediante SSH y así tener acceso al sistema. Conectamos mediante SSH:

sshbbanter.png

Pruebo con sudo -l para ver si puedo escalar privilegios con este usuario y la respuesta es que no pertenece al grupo sudoers, por lo cual voy a ver la información que contiene el fichero /etc/passwd y /etc/groups.

cat etc passwd.png

Tres usuarios interesantes (sin contar de momento con el root) aadams que pertenece al grupo 10 (este nos interesa), bbanter y ccoffee al grupo 100 que es el de usuarios normales con permisos muy restringidos. Nos dirigimos a ver los grupos del sistema:

catetcgroups.png

Como vemos el grupo wheel de aadams el número 10 tiene permisos de root, por lo cual nos permitirá escalar privilegios. Buscamos más info en google acerca del grupo wheel en UNIX/Linux.

Modern Unix systems generally use user groups as a security protocol to control access privileges. The wheel group is a special user group used on some Unix systems to control access to the sudo command, which allows a user to masquerade as another user (usually the super user).

Perfecto, con aadams podremos utilizar el comando sudo y abusar de el para escalar privilegios.

Nos ponemos manos a la obra para conseguir el password de este usuario. Tras un tiempo navegando por el sistema subiendo script de privilege escalation con el comando SCP y viendo los posibles vectores para realizar la escalada de privilegios:

LinEnumSCP.pngLIneumpasadoaTXTysalidaporVI.png

No encontramos nada importante salvo un par de errores en el Kernel que no nos serviría para nuestro fin y un archivo sospechoso en la carpeta /var/mail/spool/root, que con el comando file nos devuelve que es un fichero que no se puede leer por lo cual de momento lo dejaremos estar.

Volviendo a nuestro usuario aadams nos queda como siempre la última opción que es la fuerza bruta con HydrA, usamos la lista de palabras rockyou.txt ya que es la que más se usa en entornos CTF y intentamos obtener las credenciales del protocolo SSH:

hydrabruteforceaadamsrockyoutxt.png

Las opciones que antes no hemos utilizado son:

  • -l : un solo usuario, en este caso aadams
  • -P : lista de passwords a utilizar, ponemos la ruta completa

Alej0p!, después de unos 15 minutos, obtenemos lo que queríamos y logamos con el usuario:aadams password:nostradamus por SSH. Una vez logados utilizamos el comando sudo -l para ver si podemos abusar del comando sudo para escalar privilegios:

sudo-lejecutarCAT.png

Como podemos observar tenemos permisos sudo para utilizar el comando cat por lo cual que haremos ahora, pues rápido y corriendo usar dicho comando para imprimir por pantalla el archivo /etc/shadow que es dónde se encuentran los hashes de todos los usuarios del sistema 😀

catetcshadow-1-410161738-1518344807523.png

B0ooooo0P, los tenemos!, copiamos y pegamos en un archivo llamado hashes.txt:

hashes.png

Nos dirigimos a la interfaz gráfica de John The Ripper, llamada Johnny y utilizamos la wordlist de rockyou.txt contra el fichero hashes.txt:

johnnycrackpasswd.png

Como vemos hemos obtenido todos los passwords de los usuarios, volvemos a la terminal que tenemos abierta con el usuario aadams y con el comando su y el usuario:root password:tarot logamos como root:

suroot.png

Una vez logados como root ya solamente falta encontrar el tedioso fichero de salario encriptado. Para ello hacemos un recorrido de las distintas carpetas tanto /root/ como home y nos devuelve esta valiosa info:

lsalhrhomearchivoencriptado.png

Como veis con el comando ls -ahlR y la carpeta /home/ encontramos el fichero salary encriptado que estamos buscando como flag final.

Os describo las opciones del comando ls:

  • -a : todos los archivos incluso los que empiezan por (.)
  • -h: tamaño de cada archivo
  • -l : listado en formato detallado
  • -R: lista recursivalos subdirectorios

Una vez encontrado nos dirigimos a la carpeta /home/ftp/incoming/ y con el comando vi o tambien podemos utilizar strings vemos lo que contiene en el interior:

visaltedn.png

Lo único que podemos leer es algo de Salted_N que no tenía ni idea del tipo de encriptado que era por lo cual nos dirigimos a “San GooGle”, concretamente a esta página y vemos que se trata de un archivo encriptado mediante el OpenSSL salted format. Procedemos a desenciptarlo como nos dice en la página:

decryptSSLsalary.png

Guardamos los resultados en el archivo salary.txt y como paso final un simple cat o vi salary.txt nos devolverá la información confidencial que es la FLAG final del CTF 😀

SAalaryFLAG.txt.png

Estos días haré la segunda entrega, espero que os sirva de gran ayuda, un saludo a tod@s!

TRY HARDER

 

 

Anuncios

Deja un comentario