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.

Solución CTF ICE s1-100 24

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

Solución CTF ICE s1-100 25

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.

Solución CTF ICE s1-100 26

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.

Solución CTF ICE s1-100 27

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.

Solución CTF ICE s1-100 28
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:

Solución CTF ICE s1-100 29

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 http://192.168.1.100 me topé con el sitio web de la máquina virtual.

Solución CTF ICE s1-100 30

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

http://192.168.1.100/level.php
Solución CTF ICE s1-100 31

http://192.168.1.100/copyright.txt

Solución CTF ICE s1-100 32

http://192.168.1.100/index2.php

Solución CTF ICE s1-100 33

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

Solución CTF ICE s1-100 34

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.

CTF

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.

Solución CTF ICE s1-100 35

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.

Solución CTF ICE s1-100 36

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

Solución CTF ICE s1-100 37

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

Solución CTF ICE s1-100 38

Por lo que intentaré loguearme como root colocando sudo su

Solución CTF ICE s1-100 39

Tampoco me deja entrar al /etc/shadow

Solución CTF ICE s1-100 40

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

(http://scrapmaker.com/data/wordlists/dictionaries/rockyou.txt)

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

Solución CTF ICE s1-100 41

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.

Solución CTF ICE s1-100 42

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

Solución CTF ICE s1-100 43

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.

Solución CTF ICE s1-100 44

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.

Solución CTF ICE s1-100 45

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:

Solución CTF ICE s1-100 46

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.

CTF

Espero que les guste y que visiten el resto de los post de este blog.

Autor: ANTRAX

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *