Estos retos te dan un objetivo, que en materias de seguridad suele ser ganar acceso de root (o administrador) de sistema dentro de una máquina virtual, aunque puede ser otro objetivo, como el robo de información conseguir un flag o bandera, por poner ejemplos. En el caso que nos ocupa, es un reto de seguridad cuyo objetivo es conseguir dicho flag.
Un flag o bandera es normalmente un fichero, dentro de la propia máquina (más o menos escondido), que podemos conseguir cumpliendo los objetivos y consiguiendo acceso a cierta parte del sistema de archivos de la misma. Este flag es la prueba de que hemos conseguido dichos objetivos; por decirlo de alguna forma, hemos superado la prueba.
La máquina que trataremos es Bobby. Bobby es un pobre sujeto que ha decidido comenzar un blog personal alojado en su misma máquina, publicando algunos datos personales sin prestar demasiada atención a la seguridad de la misma antes de ponerla al alcance de cualquiera en Internet.
La fuente de dicha máquina puede encontrarse aquí. Para instalar la máquina necesitaremos un software de virtualización (yo utilizo VMware Workstation, otra opción es Virtual Box). En la página encontraremos un fichero ejecutable, que al ejecutarse abrirá una utilidad para generar una imagen de Windows XP Professional SP3 vulnerable, tomando como entrada una imagen normal de dicho sistema operativo.
Este método suele utilizarse en páginas como VulnHub; modifica un sistema operativo para asegurarse que al instalarse sea vulnerable de una u otra manera (abriendo puertos, instalando servicios de red, creando usuarios, etc.) sin tener que modificar nada en la máquina posteriormente.
Una vez instalada la máquina, tenemos un equipo XP vulnerable. En mi caso, suelo configurar todas las máquinas de prueba en modo de red NAT para que no sean accesibles desde el exterior, pero sí entre ellas.
Máquina XP de Bobby funcionando en Vmware Workstation |
Primero tenemos que conocer la dirección IP de la máquina objetivo. Aunque normalmente podemos conocerla mediante un barrido IP con nmap o Zenmap, en la página donde conseguimos la máquina podemos ver que está configurada con la IP 192.168.1.11. Por ahorrarnos problemas de direccionamiento, estableceremos nuestra red NAT dentro de la misma subred (192.168.10/24).
Conociendo ya a priori la dirección IP del objetivo, ejecutamos un escaneo IP intenso con Zenmap. Puede hacerse de forma similar en nmap, pero así tenemos resultados más visuales.
Reporte de Zenmap |
El blog de Bobby |
Comentario en el código fuente |
Podemos seguir explorando un poco el servicio web. Para ello podemos contar con herramientas como Nikto o WhatWeb, que realizan una serie de comprobaciones automáticas sobre el servidor web y nos arrojan datos muy valiosos acerca del mismo. Ambas herramientas se encuentran dentro de Kali Linux, pero son descargables para otras distribuciones.
Salida de Nikto sobre el servicio web |
Salida de WhatWeb sobre el servicio web |
Tras una breve exploración al servicio web, comprobamos que podemos conectarnos al servicio FTP mediante una simple sesión de consola. Pero, ¿cual es el usuario y la contraseña? En este punto es interesante probar un ataque de fuerza bruta mediante diccionario sobre el servicio FTP.
Para ello, necesitamos dos diccionarios: uno para los nombres de usuario, dado que no conocemos ninguno, y otro para las contraseñas. Para el primero, podemos intentar con uno bastante simple hecho a mano, contando con los posibles nombres de Bobby: Bobby, Bob y Robert.
Lista/diccionario corto de usuarios |
Para el diccionario de contraseñas, utilizaremos la herramienta cewl, incluida dentro de Kali Linux. Dicha herramienta lee una página web y crea un diccionario simple a partir de las palabras que encuentra en ella. Aunque no distingue mayúsculas y minúsculas, siendo el resultado un diccionario muy simple y algo inexacto, suele ser un buen punto sobre el que empezar.
Diccionario de contraseñas generado por cewl |
El resultado aparece enseguida; hemos tenido suerte. El usuario es bob, la contraseña es Matrix. ¡Hay que proteger más los servicios, hombre!
Resultado del bruteforce |
Tachán, acceso al FTP via consola |
Comprobamos que tenemos permisos de escritura |
Pequeña pista para la explotación |
El backdoor deberá ser activado mediante el servicio web; para ello, tendrá que tener un formato de página web. Sabemos que el servidor es un Microsoft IIS con tecnología ASP, así que tendrá que ser un código ejecutable en dicho entorno.
Metasploit Framework, que podemos encontrar también en Kali Linux, nos proporciona herramientas para crear backdoors de estas características. Utilizaremos la herramienta msfvenom que nos proporciona Metasploit para esta tarea.
En este caso, msfvenom creará una página tipo ASP que, al ser accedida, realizará una conexión a nuestro equipo (lo que se conoce como conexión inversa, dado que es la víctima la que se conecta a nosotros) y ejecutará el payload Meterpreter, proporcionándonos una interfaz de acceso completa e interactiva con la víctima en forma de comandos.
El primer paso será crear el propio backdoor. Puede hacerse de manera muy sencilla con msfvenom en una consola de Kali Linux. Hay que prestar especial atención a las opciones que le indicamos, que deberán proporcionar información sobre el equipo víctima a la herramienta, como la arquitectura (x86), familia del sistema operativo (Windows) y sobre nuestro equipo, indicando la IP y el puerto a la escucha al que se conectará el backdoor.
Creación del backdoor |
Handler para la conexión |
Por último, subiremos al equipo víctima el archivo ASP que ejecutará el backdoor, haciendo uso de nuestra conexión FTP. La transferencia se realiza con éxito.
Subida del backdoor a la víctima |
Sesión de Meterpreter abierta |
Flag o secreto de la máquina |
Un saludo!
hartek
Bien explicado...
ResponderEliminar¡Muchas gracias! ¡Pronto más y mejor!
Eliminar