Metasploit Framework puede soportar muchos pasos de su trabajo, desde el escaneo y el descubrimiento hasta la explotación, e incluso la post-explotación.
En Kali, basta con abrir el menú interactivo o escribir "msfconsole" en el terminal para iniciar la consola.
La consola es verbosa, por lo que sabrás rápidamente si el exploit ha tenido éxito. En mi experiencia, la interfaz proporciona capacidades avanzadas de carga útil y una forma estandarizada de utilizar módulos de hacking muy diferentes.
Ten en cuenta que no tienes que usar un framework, pero tendrás que combinar varios otros recursos preinstalados para conseguir resultados similares. Si no te gustan las configuraciones manuales (por ejemplo, para los oyentes) y otros procedimientos repetitivos, la consola es una gran opción.
Por supuesto, algunos casos pueden requerir otras herramientas.
Paso 1: Definición del alcance y los objetivos
Unos objetivos y un alcance claros son fundamentales para el éxito de su pentest. Usted y la organización definirán el alcance y las normas que se aplicarán durante la prueba, lo que garantiza que no haya malentendidos y que los objetivos estén claros.
Es probable que su cliente tenga que elegir entre tres enfoques comunes para la prueba:
- Caja negra: Se opera sin acceso previo ni información sobre el objetivo y suele centrarse en obtener el acceso inicial.
- Caja gris: Un enfoque intermedio en el que se le podrían dar algunas credenciales o información interna sólo para acelerar su progresión y permitir pruebas más profundas.
- Caja blanca: Estas pruebas suelen ser más largas y se centran en las fases posteriores, como la post-explotación o la persistencia, para poner a prueba el sistema y ver su resistencia frente a escaladas de privilegios, trabajos internos o movimientos laterales.
No todas las organizaciones necesitarán una prueba de caja blanca que requiera mucho tiempo y presupuesto, pero a veces es necesaria.
Durante este paso también debe discutir el calendario y otras condiciones legales. Es fundamental que sus clientes expliquen detalladamente lo que está permitido y lo que no en un documento que firmarán usted y ellos.
Los ataques salvajes pueden parecer más realistas para los principiantes, pero en la práctica, no es infrecuente poner en la lista blanca IP específicas que utilizarán los pentesters. Es necesario definir una metodología.
Paso 2: Reconocimiento y OSINT
El reconocimiento puede ser pasivo o activo.
Por ejemplo, OSINT (Open-source Intelligence) es una forma indirecta de recopilar información, mientras que Nmap implica un escaneado activo, ya que se envían sondas a la red objetivo.
Kali tiene potentes herramientas OSINT, como Maltego (la edición de la comunidad es de uso gratuito). Estos programas pueden ayudarte a organizar y automatizar tu investigación.
En cualquier caso, generalmente necesitarás tanto reconocimiento pasivo como activo durante tu pentest.
Paso 3: Escanear y descubrir
Digamos que tenemos una IP/URL para escanear. Podemos utilizar los comandos clásicos de Nmap para descubrir servicios y hosts potenciales para atacar, por ejemplo:
nmap -oN nmapscan.txt -v -A {IP/URL}
La opción -v es para "verbose" y -A significa "aggressive scan", que es más lento y envía más sondas al objetivo, pero no es problemático aquí, ya que no estamos en un caso real. La opción -oN es para exportar la salida a un archivo de texto con los resultados esenciales.
Si descubrimos que el servidor aloja un sistema de base de datos vulnerable, lo atacaremos.
Paso 4: Obtención de acceso no autorizado y explotación
Las inyecciones SQL en una base de datos vulnerable pueden conducir a una Ejecución Remota de Código (RCE).
Si conseguimos inyectar consultas SQL maliciosas en la base de datos objetivo con sqlmap, podemos explotar una vulnerabilidad típica que permite escribir archivos para pasar comandos arbitrarios al servidor.
Muchos exploits consisten en cargar una shell inversa, que es básicamente un canal de "conexión de vuelta" entre tu máquina y el servidor objetivo.
Si dicha shell puede abrirse como un usuario con privilegios (por ejemplo, administrador), ¡obtendremos los mismos privilegios para nuestra sesión!
La cuenta root otorga los mayores privilegios, permitiendo prácticamente cualquier operación sin ser detectado, lo que es perfecto para la post-explotación.
Paso 5: Explotación posterior
Después de explotar una vulnerabilidad y comprometer una red, puede que quieras mostrar lo que puedes hacer con ella a tus clientes para demostrar el impacto y los riesgos asociados a la brecha.
Metasploit tiene toneladas de módulos para este propósito, pero puedes abrir el menú interactivo de Kali Linux para obtener la lista completa de herramientas de post-explotación disponibles.
Si se trata de un entorno Windows/Active directory, Kali tiene varios paquetes para ello, como Mimikatz, una pequeña pero potente utilidad para Kerberoasting y volcado de contraseñas, o Impacket, un conjunto de scripts para atacar.
Dependiendo del resumen y del tamaño de la organización, puede que tengas que conseguir más accesos, y avanzar desde el sistema que acabas de comprometer a otro.
Esta técnica se denomina pivotar. Puede que tengas que demostrar que puedes mantener el acceso y profundizar en la infraestructura objetivo.
Paso 6: Limpiar el desorden
La red de destino debe restaurarse a su estado original antes de iniciar la operación, lo que significa eliminar todas las cuentas temporales, scripts y cualquier otra modificación que haya realizado en el sistema.
Esta fase suele omitirse durante un evento CTF (Capture The Flag) porque el objetivo es practicar técnicas de ataque, pero en condiciones reales, un pentester debe cubrir todas las huellas.
Paso 7: Informe y recomendaciones
Durante este paso, redactará un informe con las vulnerabilidades que acaba de explotar, los posibles datos robados y las recomendaciones para solucionar la situación, incluido el asesoramiento técnico.
El informe es el corazón de un pentest y un documento crítico que determina literalmente el valor de tu trabajo. Tiene que ser significativo y legible, para que la organización pueda tomar decisiones concretas para asegurar su red.
Puede contener los siguientes elementos:
- Técnicas utilizadas para recopilar información
- Técnicas utilizadas para obtener acceso no autorizado
- El modelo de amenaza y el nivel de riesgo
- El valor estimado de los datos y credenciales robados
Debe priorizar las medidas más relevantes. Vea este tutorial de Hackersploit para obtener más información.