¿Sabes cómo buscar vulnerabilidades manualmente en un proceso de pentesting?
El hacking ético es una rama de la informática que se basa en replicar las técnicas de un ciberataque y, dentro de esta disciplina, un test de intrusión o pentest consiste en poner a prueba la seguridad de un sistema por medio de dichas técnicas.
Una test de seguridad informática, al igual que un ciberataque real, es un proceso con diferentes etapas que requiere distintas herramientas para cada una de ellas. En este post, hablaremos sobre cómo se ejecuta una fase del pentesting, conocida como escaneo o búsqueda de vulnerabilidades. Específicamente, nos centraremos en explicar el método manual para hacerlo.
¿Cómo buscar vulnerabilidades manualmente?
Antes de aprender cómo buscar vulnerabilidades manualmente, es necesario tener claro en qué consiste y para qué sirve la búsqueda automática. De lo contrario, no será fácil discernir y saber qué método escoger, ya que ambos se complementan.
Escaneo automático de vulnerabilidades
Un escáner de vulnerabilidades es un software que utiliza un enorme banco de pruebas automatizadas, para analizar un sistema en búsqueda de vulnerabilidades. Las ventajas de usar estos programas son:
- Sirven para saber como encontrar vulnerabilidades en una página web y actualizan sus bancos de pruebas periódicamente.
- Algunos de ellos son de código abierto y altamente potentes.
- Son eficientes en términos de tiempo y recursos.
Por estos motivos, es necesario incluir uno o varios escáneres de vulnerabilidades en nuestro set de herramientas para pruebas de penetración, para poder encontrar vulnerabilidades en paginas web. Algunos de los escáneres más utilizados en ciberseguridad son:
- Nessus.
- OpenVAS.
- Nmap.
- Metasploit.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaNo obstante, el escaneo automático tiene sus limitaciones y, por lo tanto, es necesario saber cómo buscar vulnerabilidades manualmente. Las principales desventajas de la automatización de este proceso son:
- Falsos positivos.
- Falta de control sobre las pruebas.
- No detecta errores de configuración.
- No detecta vulnerabilidades de día cero.
Búsqueda manual de vulnerabilidades
Dado lo anterior, se puede inferir que la búsqueda manual de vulnerabilidades se utiliza principalmente para detectar fallos que los escáneres automáticos pasan por alto. Por ejemplo, las vulnerabilidades de día cero o los errores de configuración. En efecto, estos son casos en los que se recurre a los métodos manuales de detección de fallos. Otro posible motivo para usar esta técnica es estar en la búsqueda de un fallo específico.
A continuación, veremos cómo buscar vulnerabilidades manualmente, por medio de un ejercicio de laboratorio. Sin embargo, esto puede ejecutarse de muchas formas diferentes. Recuerda que las técnicas que describiremos a continuación solo deben practicarse con autorización del dueño del sistema. Para no poner bajo compromiso un sistema real, te recomendamos practicar con juegos CTF o programas de Bug Bounty.
Paso a paso
Para buscar vulnerabilidades web debemos:
- Crea una máquina virtual con tu software de virtualización de preferencia y elige el sistema operativo de Microsoft Windows 7. Para este laboratorio, procura escoger una versión antigua.
- Crea otra máquina virtual y, esta vez, elige el sistema operativo para pentesting Kali Linux.
- Verifica que tus máquinas se encuentren conectadas a la red en modo NAT para que tengan acceso a internet por medio de una subred.
- Averigua la dirección IP de la máquina Windows 7 con el comando “ipconfig” desde la consola.
- Ejecuta un escaneo de la IP de la máquina Windows 7 desde Kali Linux. Para ello, solo tienes que abrir una terminal en cualquier directorio y ejecutar el comando “nmap”, seguido por un espacio y la dirección IP del objetivo.
- Verifica qué puertos de la máquina están abiertos y qué servicios los utilizan. Así, conocerás los softwares que usa la máquina virtual.
- Busca en Google el software y la versión que encuentres usando cada uno de los puertos abiertos, seguido por el término vulnerabilidad o exploit.
- Revisa si existen vulnerabilidades o exploits conocidos para el software. Es posible que encuentres información en sitios como Exploit-DB o en repositorios de GitHub.
- De existir algún exploit, puedes descargarlo e instalarlo por medio de páginas como las anteriores.
- Si no existe ningún exploit o quieres poner en práctica tus habilidades como programador, puedes averiguar información sobre la vulnerabilidad, entender cómo funciona y desarrollar tu propio programa para explotarla.