Informe de Pentesting - VulnHub Machine
”DC1”
Febrero 2025
Contents
1 Introducción 2
2 Alcance 2
3 Reconocimiento 2
3.1 Descubrimiento de la Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 Escaneo de Puertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
4 Enumeración y Explotación 4
4.1 Explotación y Obtención de Root . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 Conclusiones y Mitigaciones 12
1
Pentesting 2024/25 DC-1
1 Introducción
DC-1 es un laboratorio vulnerable construido a propósito con el objetivo de adquirir experiencia
en el mundo de las pruebas de penetración. Esta máquina pertenece a la página VulnHub.
Hay múltiples maneras de obtener acceso, sin embargo, se han incluido algunas banderas que
contienen pistas para principiantes. Hay cinco banderas en total, pero el objetivo final es
encontrar y leer la bandera en el directorio casero de root.
2 Alcance
En esta máquina se utilian todo tipo de herramientas, además que ha medida que se buscan
las banderas estas te ayudan a conseguir los objetivos
3 Reconocimiento
3.1 Descubrimiento de la Red
Para comenzar, se ha iniciado la máquina virtual a través de VirtualBox, configurando el
adaptador de red como adaptador de solo anfitrión. Mediante un escaneo con arp-scan, se
puede determinar la IP de la máquina DC-1:
sudo arp - scan -- interface =" vboxnet0 " -- localnet
Figure 1: Escaneo con arp-scan
Seguido, se realiza un escaneo rápido para determinar los puertos abiertos de la máquina
con IP ”[Link]”:
nmap -p - -- open - vvv - T4 [Link]
Figure 2: Escaneo rápido
Se determinan que los puertos abiertos son 22, 80, 111 y 52605. Continuando, se realiza un
escaneo más profundo sobre los puertos abiertos.
3.2 Escaneo de Puertos
nmap -p 22 ,80 ,111 ,52605 - sVC - Pn -n [Link]
Con este escaneo se pueden determinar las versiones de los servicios corriendo en los puertos:
2
Pentesting 2024/25 DC-1
Figure 3: Escaneo profundo
1. Puerto 22: OpenSSH 6.0p1
2. Puerto 80: Apache httpd 2.2.22
3. Puerto 111: rpcbind 2-4
4. Puerto 52605: no se puede determinar
Observaciones: Se puede determinar que hay un servidor web que utiliza Drupal 7.
3
Pentesting 2024/25 DC-1
4 Enumeración y Explotación
• La primera forma de explotarla es mediante el puerto 80. Conociendo la versión de
Drupal, se puede buscar un exploit:
Figure 4: Búsqueda de exploits para Drupal
– Existen exploits para Drupal 7.
– Ahora, mediante la herramienta Metasploit, se puede atacar la vulnerabilidad dru-
palgeddon:
4
Pentesting 2024/25 DC-1
Figure 5: Búsqueda en Metasploit
– Se configura el exploit:
Figure 6: Configuración del exploit
– Lanzar el exploit:
Figure 7: Lanzamiento del exploit
– Ya estamos dentro con una sesión de Meterpreter.
• Buscamos la primera bandera:
5
Pentesting 2024/25 DC-1
Figure 8: Primera bandera
– La salida de la bandera hace referencia a que se necesita un archivo de configuración.
– Se pueden buscar este archivo con el comando ‘find‘, buscando algo como ‘settings.*‘.
– Esto no se puede hacer de primeras, por lo que primero hay que ejecutar el comando
shell de Meterpreter y abrir un channel:
Figure 9: Shell de Meterpreter
– Ahora sı́ se ejecuta el comando ‘find‘, mostrando como salida que se encuentra en el
directorio ‘./sites/default/[Link]‘:
6
Pentesting 2024/25 DC-1
Figure 10: Resultado del comando find
– Se hace un ‘cat‘:
Figure 11: Contenido del archivo [Link]
– Ya tenemos la segunda bandera, la cual nos dice que no necesitamos la fuerza bruta
para acceder. Si miramos un poco más abajo, se pueden ver las credenciales de la
base de datos:
Figure 12: Credenciales de la base de datos
– Para que sea más fácil y se pueda ver mejor todo, se ejecuta el comando:
python -c ’ import pty ; pty . spawn ("/ bin / bash ") ’
para obtener el prompt y se inicia MySQL con las credenciales encontradas:
7
Pentesting 2024/25 DC-1
Figure 13: Iniciando MySQL
– Con MySQL iniciado, se puede hacer un ‘SELECT‘ de los usuarios. Primero hago
un ‘SELECT *‘ para ver toda la tabla y luego un ‘SELECT‘ de ‘name‘ y ‘pass‘ para
ver solo los usuarios y contraseñas:
Figure 14: Consulta de usuarios en MySQL
– Anteriormente, con la búsqueda de Drupal 7, se pudo observar que habı́a un exploit
para crear una cuenta admin dentro de Drupal 7, por lo que se va a explotar esa
idea, además que con los hash de las contraseñas de los anteriores usuarios se podrı́a
sacar la contraseña en texto plano:
Figure 15: Búsqueda de exploit para crear cuenta admin
– Se lanza el exploit:
8
Pentesting 2024/25 DC-1
Figure 16: Creando cuenta admin
– Ahora se puede entrar con las credenciales creadas dentro del servidor:
Figure 17: Accediendo como admin
9
Pentesting 2024/25 DC-1
– En la esquina superior derecha se encuentra un apartado que pone ”Content”. Si
pinchamos, se puede ver la tercera bandera:
Figure 18: Tercera bandera
– En este punto ya se tiene la tercera bandera, la ayuda de esta bandera dice que
se pueden obtener permisos especiales con el comando ‘find‘, haciendo referencia al
comando ‘-exec‘ y al archivo ‘/etc/shadow‘:
Figure 19: Referencia a permisos especiales
– Si se observa el comando ‘find‘, se puede ver que este se ejecuta como root:
Figure 20: Comando find ejecutándose como root
10
Pentesting 2024/25 DC-1
– Con esto no se puede hacer mucho, por lo que si se sigue con las pistas de la flag 3,
haciendo un ‘cat‘ de ‘/etc/passwd‘, se puede ver que hay un directorio ‘/home/flag4‘:
Figure 21: Contenido de /etc/passwd
– Con esto ya se tiene la cuarta bandera, la cual nos dice si se puede acceder a la
bandera en root:
Figure 22: Cuarta bandera
4.1 Explotación y Obtención de Root
• Como sabemos que ‘find‘ se ejecuta como root, se puede abrir un bash con este comando
y con el ‘exec‘.
• Si se ejecuta el comando dentro de este directorio de la flag 4, se puede ver que estamos
ahora como root:
Figure 23: Accediendo como root
11
Pentesting 2024/25 DC-1
• Ahora que somos root, con la pista de la flag 4, se puede encontrar la última bandera de
forma fácil. Para ello, nos movemos en los directorios y entramos en el de root:
Figure 24: Última bandera
• Y ya estarı́a, con un simple ‘cat‘ del txt habrı́amos completado todo:
Figure 25: Finalizando el proceso
5 Conclusiones y Mitigaciones
En el laboratorio DC-1, se han identificado varias vulnerabilidades, junto con recomendaciones
para mitigarlas:
• Puertos abiertos: Los puertos 22 (SSH), 80 (HTTP), 111 (rpcbind) y 52605 están
expuestos.
– Recomendación: Implementar un firewall para restringir el acceso a puertos no
utilizados y aplicar polı́ticas de seguridad adecuadas.
• Vulnerabilidades en Drupal 7: Se han encontrado exploits conocidos para la versión
de Drupal utilizada.
– Recomendación: Actualizar Drupal a la última versión y aplicar parches de se-
guridad.
• Acceso a archivos sensibles: Se puede acceder a archivos de configuración que con-
tienen credenciales.
– Recomendación: Asegurar los permisos de archivos y directorios, y utilizar con-
figuraciones de seguridad para proteger información sensible.
• Ejecución de comandos como root: Se puede abusar del comando find para ejecutar
acciones con privilegios elevados.
12
Pentesting 2024/25 DC-1
– Recomendación: Revisar y restringir los permisos de ejecución de comandos crı́ticos
y aplicar el principio de menor privilegio.
• Falta de monitoreo y detección: No se mencionan medidas de monitoreo para detectar
accesos no autorizados.
– Recomendación: Implementar sistemas de detección de intrusos (IDS) y monitoreo
de logs para identificar actividades sospechosas.
• Configuración de seguridad inadecuada: La configuración del servidor web puede
no estar optimizada.
– Recomendación: Realizar una revisión de la configuración del servidor web y
aplicar las mejores prácticas de seguridad.
• Falta de copias de seguridad: No se menciona un plan de copias de seguridad.
– Recomendación: Establecer un plan de copias de seguridad regular para asegurar
la recuperación de datos en caso de un incidente.
13