¡Hola! Vamos a resolver de la máquina BlackMarket
de dificultad “Fácil” de la plataforma VulnHub.
Técnicas Vistas:
- Web Enumeration
- Creating our own dictionary with cewl
- FTP Brute Force - HYDRA
- SQLI (SQL Injection) - Error Based (Manual)
- Cracking Hashes
- Gaining access to squirrelmail
- Playing with quipquip - Deciphering a message
- Steganography challenge
- Abusing a backdoor previously created by an attacker [RCE]
- Information Leakage (User Pivoting)
- Abusing sudoers privilege [Privilege Escalation]
Preparación Entorno
Antes de iniciar la fase de enumeración y reconocimiento procederemos a crear un directorio de trabajo con el nombre BlackMarket
. Una vez creado accedemos al directorio y con la ayuda de la función que tenemos definida en la zshrc mkt
crearemos cuatro directorios de trabajo nmap, content, exploits y scripts
donde almacenaremos de una manera ordenada toda la información que vayamos recopilando de la máquina en función de su naturaleza.
1
2
3
function mkt(){
mkdir {nmap,content,exploits,scripts}
}
Reconocimiento
Primero de todo necesitamos saber la IP de la máquina víctima que se encuentra funcionando dentro de nuestra red local. Procedemos a escanear todos los equipos de nuestra red local
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
❯ arp-scan -I ens33 --localnet
Interface: ens33, type: EN10MB, MAC: 00:0c:29:0b:0e:02, IPv4: 192.168.1.145
Starting arp-scan 1.9.7 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.1.1 e4:ca:12:8c:78:a5 zte corporation
192.168.1.128 2c:f0:5d:0a:0a:f1 (Unknown)
192.168.1.134 9c:20:7b:b1:3e:47 Apple, Inc.
192.168.1.137 d0:c2:4e:53:17:09 (Unknown)
192.168.1.141 b8:bc:5b:e8:00:67 Samsung Electronics Co.,Ltd
192.168.1.143 00:0c:29:18:4a:e3 VMware, Inc.
192.168.1.138 00:55:da:56:56:66 IEEE Registration Authority
192.168.1.130 ac:67:84:98:f6:07 (Unknown)
192.168.1.132 d8:a3:5c:73:eb:02 (Unknown)
192.168.1.131 f4:34:f0:50:7e:76 (Unknown)
10 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9.7: 256 hosts scanned in 1.935 seconds (132.30 hosts/sec). 10 responded
Tras analizar la respuesta del escaneo observamos por el OUI (Organizationally unique identifier) 00:0c:29 que corresponde a VMWare Inc ya que la máquina víctima funciona bajo un entorno de virtualización VMWare por lo que su IP es 192.168.1.143
Accedemos al directorio de trabajo nmap
e iniciamos nuestra fase de reconocimiento realizando un ping
a la IP de la máquina para comprobar que esté activa y detectamos su sistema operativo basándonos en el ttl
de una traza ICMP.
1
2
3
4
5
6
7
❯ ping -c 1 192.168.1.143
PING 192.168.1.143 (192.168.1.143) 56(84) bytes of data.
64 bytes from 192.168.1.140: icmp_seq=1 ttl=64 time=42.3 ms
--- 192.168.1.143 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 42.314/42.314/42.314/0.000 ms
Identificamos que es una maquina Linux debido a su ttl (time to live) correspondiente a 64.
- TTL => 64 Linux
- TTL => 128 Windows
Continuamos con la enumeración de los 65535 puertos en la máquina.
Luego de identificar los puertos abiertos OPEN
, se procede a escanear servicios y versiones que puedan estar corriendo en los puertos abiertos detectados.
Reconocimiento Web
Accedemos al servicio HTTP por el puerto 80 y observamos un panel de login al servicio BlackMarket. Probamos a ver si es vulnerable a SQLi pero no tenemos éxito
Con la herramienta gobuster procedemos a enumear posibles directorios
Localizamos varios. nos llama la atención /squirrelmail
. Accedemos y nos econtramos ante otro panel de login. Probamos a ver si es vulnerable a SQLi pero no tenemos éxito
Volviendo al panel de login de BlackMarket examinamos su código fuente y localizamos la primera flag
Aplicamos decode y encontramos una pista
Buscando en Google a ver de qué trata la Operación Treadstone y la primera página que encontramos es de la película Operation Treadstone. En la misma encontramos la lista del Staff de la película de la cual extraemos un diccionario de usuarios richard, ward, alexander, albert, neil, nicky y daniel. Utilizamos la misma web para generar un diccionario de posibles contraseñas con la herramienta cewl de la siguiente forma -> cewl https://bourne.fandom.com/wiki/Operation_Treadstone -w dict.txt -d 0
Enumeración FTP
Para poder enumerar este servicio aplicamos fuerza bruta con hydra
con los diccionarios que hemos generado en el apartado anterior
Con las credenciales obtenidas nos conectamos al servicio FTP y localizamos archivo IMP.txt
. Nos lo descargamos para examinarlo al detalle
El archivo contiene la segunda flag y una nueva pista
SQL Injection
La pista nos comenta sobre un Vehical workshop
. Aplicando un poco de guessing probamos varias rutas posibles en el servicio web hasta que localizamos la correcta /vworkshop
Enumerando la web observamos que la sección Spare Parts
es vulnerable a SQL Injection tras comprobar que la web tarda 5 segundos en responder tras aplicar inyección http://192.168.1.143/vworkshop/sparepartsstoremore.php?sparepartid=1' and sleep(5)-- -
. Mediante orber by
se determina que hay 7 columnas, a partir de aquí podemos ir extrayendo información de bases de datos, tablas, columnas y su contenido.
En primer lugar enumeramos las bases de datos existentes
Seguimos enumerando las tablas de la base de datos BlackMarket
Observamos una tabla flag
. Enumeramos sus columnas para ver que datos contienen
Seguidamente dumpeamos la infromación de las columnas name
e information
. Nos econtramos ante otra pista.
Tras la pista seguimos enumerando las columnas de la tbala user
Finalmente dumpeamos la información que se encuentra en username
y password
Crack de Hashes
Obtenemos unos hashes que por longitud parecen estar encriptados en md5
. Procedemos a desencriptarlos con la ayuda de la web hashes.com
Obtenemos las contraseñas en texto claro de los usuarios admin, user y supplier. Podemos acceder a través del panel de login al servicio BackMarket
inicialmente encontrado con las credenciales de admin
. Nada más introducir credenciales obersvamos una ventana emergente con la cuarta flag y una nueva pista
Aplicamos decode a la cuarta flag pero no sacamos información relevante
Acceso SquirrelMail
Con la pista obtenida anteriormente logramos acceder a la cuenta de correo de SquirrelMail de Jason Bourne con las crendenciales jbourne:?????
. Encontramos un mensaje con información encriptada y la quinta flag en base64 como las anteriores
Decodificamos quinta flag
Desencriptado y esteganografía
Desencriptamos el anterior mensaje con la ayuda de la web quipquip y obtenemos el mensaje descifrado. Descubrimos un nuevo directorio \kgbbackdoor
y una imagen PassPass.jpg
que debe tener algo ‘escondido’. Accedemos al recurso y localizamos imagen
Aplicamos fuzzing con gobuster sobre el directgorio \kgbbackdoor
y encotramos recurso backdoor.php
que parece estar protegido con contraseña
Con la utilidad strings
lsitamos las cadenas de caracteres de más de 10 líneas que pueda tener la imagen PassPass.jpg
y obtenemos una contraseña
La cadena está en decimal y hay que pasarla a hexadecimal y posteriormente a texto. Obtenemos la contraseña en texto claro
Abusando Backdoor
Con la contraseña obtenida podemos acceder al backdoor
. Observamos que tenemos acceso a varias herramientas para listar archivos, ejecutar comandos, etc.
Verificamos que podemos ejecutar comandos enviándonos una traza ICMP a nuestro equipo. Nos ponemos en escucha con tcpdump
y ejecutamos pìng desde el panel del backdoor
Sabiendo que podemos ejecutar comandos nos ponemos en escucha con netcat
y ejecutamos onliner para entablar una reverse shell. Ganamos acceso a la máquina vícitma con el usuario www-data
Movimiento Lateral
Listando el contenido de /var/www/html/vworkshop/kgbbackdoor
localizamos la sexta flag
Enumerando el directorio home
lozalizamos un directorio oculto .Mylife
y un archivo .Secret
En el contenido del archivo parace que nos revelan la contraseña de dimitri
. Incialmente no funciona pero cambiamos y
por i
de DimitryHateApple y logramos migrar al usuario dimitri
Escalada de Privilegios
Listando grupos a los que pertenece el usuario dimitri
vemos que está en el grupo sudo
y como tenemos su contraseña podemos elevar privilegios y convertirnos en root
La última flag la tenemos en el directorio /root
Hemos completado la máquina BlackMarket de VulnHub!! Happy Hacking!!