Automatización de procesos de pentesting
Tiempo de lectura estimado: 11 minutos
Esta conferencia magistral pertenece al Módulo 4 "Lenguajes de programación orientados a ciberseguridad" de C1b3rWall Academy 2021. El objetivo de la misma es aproximar a la audiencia al pentesting, las fases que requiere y cómo los auditores utilizan ciertas herramientas para automatizar los procesos.
¿Qué es el pentesting?
Se trata de un tipo de auditoría de ciberseguridad que consiste en realizar un conjunto de ataques simulados dirigidos a un sistema informático con la finalidad de detectar debilidades o vulnerabilidades para que sean corregidas y no puedan ser explotadas. Las pruebas de penetración estándar se centran en la evaluación de redes, sistemas, aplicaciones web, dispositivos móviles, etc. Como objetivos principales se pueden destacar:
- Detectar si el sistema informático es vulnerable o no.
- Evaluar si las defensas con las que cuenta son suficientes y eficaces.
- Elaborar un informe técnico y ejecutivo que permita entender la repercusión de los fallos de seguridad que se detecten.
Hay que tener en cuenta una serie de consideraciones a la hora de hablar de pentesting:
- Existen diferentes metodologías (PTES, OSSTM, OWASP) y enfoques para realizar los test de penetración (caja negra, caja gris, caja blanca).
- Se han de realizar siempre bajo el amparo de un contrato legal redactado por profesionales.
- Es diferente de un Red Team y de un análisis de vulnerabilidades.
Fases en la realización de un test de penetración
En función de la metodología o del enfoque se pueden ver diferentes fases en la realización de un test de penetración, pero las vamos a generalizar de la siguiente forma:
- Fase de recolección de información. También conocida como la fase de reconocimiento. Para realizar una auditoría completa debemos recopilar información sobre el sistema que vamos a atacar; lo ideal es identificar todo lo que podamos debido a que, cuanta más información tengamos, más fáciles se nos harán los pasos posteriores.
- Fase de búsqueda de vulnerabilidades. También conocida como la fase de análisis de vulnerabilidades. Básicamente, esta fase es la encargada de analizar toda la información recolectada anteriormente, donde tendremos que identificar vulnerabilidades o posibles vectores de ataque de los sistemas y, a partir de dicho análisis, concluir cuál sería el ataque más efectivo.
- Fase de explotación de vulnerabilidades. A partir de los resultados de todo el trabajo realizado anteriormente, en esta etapa es donde se consigue acceso a los sistemas de la organización. Lo usual en esta fase es ejecutar exploits contra las vulnerabilidades identificadas o simplemente utilizar credenciales obtenidas para ganar acceso a los sistemas.
- Fase de posexplotación. En esta etapa se intenta llegar más lejos dentro del sistema vulnerado, es decir, conseguir credenciales o permisos de administrador o incluso vulnerar otros sistemas con más importancia dentro de la organización por medio de técnicas de movimiento lateral, entre otras.
- Fase de informe. Después de finalizar todas las etapas mencionadas previamente, es el momento de documentar todo lo realizado en un informe que especifique el proceso realizado en el test de intrusión, como herramientas y técnicas utilizadas y vulnerabilidades descubiertas.
Herramientas del auditor de ciberseguridad
Una vez conocemos las fases que tiene un pentest, vamos a describir algunas de las herramientas que deben estar en el día a día de un auditor de ciberseguridad.
- Nmap. Se trata de una herramienta open source de escaneo de redes que permite identificar qué servicios se están ejecutando en un dispositivo remoto, así como la identificación de equipos activos, sistemas operativos en el equipo remoto y existencia de filtros o firewalls, entre otros. Se utiliza en la fase de reconocimiento como escaneo activo.
- Shodan. Es un motor de búsqueda que permite buscar equipos (router, servidores, etc.) conectados a internet a través de una gran variedad de filtros. Se puede utilizar para la fase de reconocimiento como análisis pasivo.
- Ffuff y Gobuster. El término fuzzing consiste en el envío de datos aleatorios, inválidos o secuenciales para, posteriormente, evaluar las respuestas. En este caso, las herramientas están pensadas para analizar servicios web en busca de rutas, parámetros, dominios y aplicaciones, entre otros. Se utilizan en la fase de reconocimiento o en la fase de búsqueda de vulnerabilidades.
- WPScan. Es un escáner de seguridad para el famoso CMS WordPress. Se utilizaría en la fase de búsqueda de vulnerabilidades. Proporciona información como:
-
- La versión de WordPress instalada y cualquier vulnerabilidad asociada.
- Qué plugins están instalados y cualquier vulnerabilidad asociada.
- Qué temas están instalados y cualquier vulnerabilidad asociada.
- Enumeración de nombres de usuario.
- Usuarios con contraseñas débiles a través de la fuerza bruta de contraseñas.
- Archivos wp-config.php con copia de seguridad y de acceso público.
- Burp Suite. Se trata de una herramienta utilizada principalmente para las auditorías de seguridad en aplicaciones web, que permite combinar pruebas tanto automáticas como manuales y que dispone de un gran número de funcionalidades. Se utilizaría en la fase de búsqueda y explotación de vulnerabilidades.
- Nessus. Es un programa de escaneo de vulnerabilidades. Consiste en un servicio que realiza el escaneo en el sistema objetivo y un cliente gráfico que muestra el avance e informa sobre el estado de los escaneos. Desde consola, Nessus puede ser programado para hacer, a su vez, escaneos programados.
Exploit en la fase de explotación
Se han tratado algunas herramientas de las fases de reconocimiento y búsqueda de vulnerabilidades, pero... ¿y la fase de explotación?
Aquí entra el término exploit. Un exploit es la automatización de los procesos de explotación de una vulnerabilidad para provocar un comportamiento no previsto como la toma del control del sistema. Concretamente, existe un tipo de exploit muy famoso llamado Zero-day exploit que representa las brechas de seguridad en el software desconocidas hasta el momento del ataque. Este tipo de exploits son los empleados en ataques como WannaCry.
Como herramienta de automatización relacionada con los exploits hay que mencionar Metasploit. Es una herramienta de explotación que contiene exploits preparados y cuenta con módulos que permiten ejecutarlos y asistir al analista durante la explotación.
Existen bases de datos de exploits públicos que indican el correspondiente software vulnerable, una de ellas es ExploitDB desarrollada para ser utilizada por los auditores de seguridad y los investigadores de vulnerabilidades. Su objetivo es servir como la colección más completa de exploits, shellcode y documentos.
¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras 30.000 personas desde este enlace.
Si te interesa este tema, puedes consultar la información y cursar el Máster en Ciberseguridad o ver la oferta de másteres desde aquí.
Ponente: Pablo Plaza Martínez
Pablo es analista de ciberseguridad en el Grupo de Investigación BISITE, miembro de la selección española de ciberseguridad y participante en competiciones CTF a nivel nacional e internacional. Además, es cofundador del blog ironhackers.es.
¿Cuál es tu reacción?