Solución CTF ICE s1-100

  • 0 Respuestas
  • 402 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5783
  • Actividad:
    100%
  • Country: ar
  • Reputación 42
  • ANTRAX
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email

Solución CTF ICE s1-100

  • en: Octubre 21, 2021, 04:36:49 pm

Hola a todos! En esta ocasión vamos a ver como solucionar el CTF ICE s1-100 desde cero y paso a paso.
Requesitos Previos a configurar en el CTF

Configuración del router

Al iniciar con el CTF, me topé con el problema, el cual me demandó mucho tiempo investigar. El mismo fue que la VM tenia una IP fija, la cual es 192.168.1.100 y mi router estaba configurado para asignar IPs con el rango 192.168.0.X, por lo que me tocó configurar previamente el router con el rango 192.168.1.X para que le asignara la IP correcta a la maquina virtual.


Encontrar la IP de la VM

Para poder encontrar la IP de la máquina virtual, utilicé NMAP y así poder mapear toda la red.

El parámetro que utilicé fue: nmap -sP 192.168.1.1-255


Como se puede ver en el screenshot, la IP de la maquina virtual es: 192.168.1.100
Fortalezas del sistema

ping

Una de las fortalezas de esta máquina virtual, es que no resuelve los ping que se hagan a la IP 192.168.1.100, lo cual permite despistar a los atacantes, e incluso detener algunos tipos de DoS del tipo ICMP que se hagan a la maquina virtual.


FTP

Otra fortaleza de la plataforma, es que a pesar de estar abierto el puerto 21 del FTP, este no es vulnerable, por lo cual no se puede acceder por ese medio ni explotarlo.


Usuarios

Los usuarios no tiene privilegios de root. Además genera un reporte con el incidente al intentar elevar privilegio con un usuario que no tiene permisos para ello.


Recolección de información - enumeración de puertos y servicios
El primer paso para resolver el CTF, fue recolectar información de los puertos abiertos, servicios corriendo en cada puerto y sus versiones. Para ello utilicé NMAP con los siguientes parámetros:

nmap -sV -O 192.168.1.100

Con el cual obtuve la siguiente información:


Vi puertos que se podrían explotar como el 21 de FTP, 22 con el SSH y vi que el puerto 80 estaba abierto, el cual me sirvió para saber si tiene página web.

Website

Al ingresar a You are not allowed to view links. Register or Login me topé con el sitio web de la máquina virtual.


Además noté que tiene algunas secciones más como las siguientes:

You are not allowed to view links. Register or Login


You are not allowed to view links. Register or Login


You are not allowed to view links. Register or Login


Esta última me llamó la atención ya que poseía varios mails y nombres de personas. En la mayoría de los casos, se pueden utilizar esos mismos nombres o mails como credenciales para ingresar al ssh o ftp en este caso, ya que los puertos de esos servicios estaban abiertos.
Pentesting

SSH

Al tener el puerto del SSH abierto, se puede intentar ingresar por ese medio


Solo resta averiguar usuarios y contraseñas. Para ello, crearé un diccionario con los nombres y correos electrónicos que aparecen en la página web y también combinaré sus nombres y apellidos intentando lograr credenciales válidas.


En total logré 71 combinaciones utilizando nombres, apellidos y mail. El paso siguiente es hacer un bruteforce usando esta lista para obtener el usuario y contraseña del SSH.

Para realizar el ataque, utilizare la herramienta ncrack, la cual es una tool desarrollada por la misma empresa que el NMAP.

ncrack -p 22 -U pass.txt -P pass.txt 192.168.1.100

En el archivo pass.txt tengo el listado o diccionario que cree con las combinaciones mencionadas anteriormente.


Después de unos minutos, la herramienta arrojó usuario y contraseña.

User: bbanter
Pass: bbanter


Al probarlo con el SSH de la maquina virtual, podemos ver que logramos ingresar.


Si volvemos a la maquina virtual y probamos las mismas credenciales, podremos ver que también podremos ingresar


Al intentar entrar a la carpeta FTP, me topé con que el usuario bbanter no tiene permisos


Por lo que intentaré loguearme como root colocando sudo su


Tampoco me deja entrar al /etc/shadow


Al no dejarme, voy a intentar romper alguno de los otros usuarios (aadams – ccoffee) para ver si alguno de ellos tiene mas privilegios.

Elevación de privilegios

Para ello volveré a usar ncrack, pero esta vez utilizando otro diccionario más extenso, ya que la última vez no salió. El diccionario que utilizaré será el famoso rockyou.txt

(You are not allowed to view links. Register or Login)

ncrack -p 22 –user ccoffee -P rockyou.txt 192.168.1.100
ncrack -p 22 –user aadams -P rockyou.txt 192.168.1.100



Como se puede ver en la captura, se pudo obtener la contraseña del usuario aadams. Nuevamente procederemos a probar si este usuario tiene privilegios en la plataforma.

Al probarla en el servidor, no tiene privilegios de root, pero si puede entrar al fichero /etc/shadow en donde se encontraba el usuario root con la contraseña hasheada.


root:$1$TOi0HE5n$j3obHaAlUdMbHQnJ4Y5Dq0:13553:0:::::

Romper pass de root

Utilizando John The Ripper y un diccionario, podemos probar si se puede obtener la password. Utilizaré el mismo diccionario rockyou.txt para hacer la prueba.

john.exe -wordlist:..\..\rockyou.txt ..\..\root.txt


Con esto hemos obtenido el user y pass de root

Usuario: root
Pass: tarot


Ahora si probaremos elevar privilegios. Para ello colocamos su nuevamente con el usuario aadams y ponemos la password que hemos obtenido.


Desencriptar CSV (CTF)

Al ingresar ahora a la carpeta /home/ftp me he topado con un archivo de salarios encriptado. Para poderlo descargar, simplemente puedo copiarlo al directorio del sitio web /var/www/htdocs y descargarlo con el navegador.


Una vez descargado, trataremos de romper el cifrado. Existen muchos tipos de cifrado, y tras probar con varios, logré dar con el correcto, el cual es aes128.

En una consola tecleamos openssl y dentro colocamos lo siguiente

enc -d -aes128 -in salary_dec2003.csv.enc -pass pass:tarot -out salario.txt

Esto generará un archivo llamado salario.txt con toda la información de ese CSV. Ahora solo resta abrirlo con exel para ver la información obtenida:


Como se puede ver en la imagen, se han obtenido los salarios de varias personas a pesar de haber estado encriptado.

Website

Además de esto, la página web también puede ser editada o eliminada.


Espero que les guste y les sirva para practicar!
ANTRAX