Actualmente existen diversas herramientas para realizar una auditoría en busca de vulnerabilidades también denominada prueba de penetración o pentesting. El pentesting consiste en atacar un sistema informático para identificar fallos y vulnerabilidades para así poder prevenir los ataques externos.
Nmap es una herramienta que no puede faltar a la hora de realizar una prueba de penetración aunque Kali Linux cuenta con Metasploit Framework el cual integra Nmap como parte de su paquete de herramientas de penetración.
Para este análisis de prueba de penetración en primer lugar veremos el uso de Nmap y luego Metasploit Framework.
Las pruebas de penetración se pueden dividir en varias etapas: tenemos que conocer la ip del servidor, computadora o sitio Web al que deseamos auditar, buscar vulnerabilidades e intentar acceder.
Es muy probable que en la red del servidor que deseamos auditar exista un firewall o políticas de control de acceso (ACL) en su router o SO (Sistema Operativo) que impidan realizar una prueba de ping para traducir su dirección IP.
Supongamos que deseamos conocer la dirección IP de ww.mixxxsoft.com para ello abrimos la terminal y realizamos una prueba de ping.
ping www.mixxxsoft.com
Excelente ahora sabemos que su dirección IP es 40.113.200.201
Para analizar un escaneo de vulnerabilidades con Nmap deberíamos ejecutar en la terminal el siguiente script:
nmap -f -sS -sV -Pn --script auth 40.113.200.201
Auth: Este script realizará una búsqueda para saber si existen servicios con usuarios con contraseñas vacías.
-Pn: es para forzar la prueba en el caso de existir un firewall o política de seguridad para impedir la respuesta de ping.
-v : verbose
-sV : Con esto obtenemos la versión del servicio que esta corriendo bajo un puerto determinado.
Como resultado Nmap mostrará los puertos, estado del servicio y su versión como se muestra en la siguiente imagen.
En este caso podemos ver que microsoft utiliza fingerprint para las peticiones entrantes. fingerprint es una excelente solución para asignar a cada usuario o visitante Web un identificador único (ID). fingerprint también es muy utilizado en las entidades bancarias a fin de evitar fraudes. En este link https://github.com/fingerprintjs/fingerprintjs2 encontrarás toda la información para poder implementar fingerprint.
fingerprint toma en cuenta los datos del visitante para generar su ID, es un hash que se genera tomando en cuenta los siguientes datos del usuario o visitante (del lado del cliente): el sistema operativo, el tipo y versión de navegador, resolución de pantalla, movimiento del mouse, dirección de red, tiempo de conexión, ubicación geográfica y otros datos que deseen agregar.
Vuln: Nmap cuenta con este script para buscar las vulnerabilidades más conocidas.
Para realizar una búsqueda de las vulnerabilidades más conocidas ejecuta
nmap -f --script vuln {idrección-ip}
Explotando una vulnerabilidad con Metasploit Framework
Para comenzar la prueba de penetración con Metasploit Framework debemos de iniciar su consola con el siguiente comando desde la terminal
> msfconsole
Desde la consola de Metasploit podemos realizar consultas para comenzar a recopilar información con Nmap. Para utilizar Nmap desde Metasploit debemos anteponer la consulta de nmap con db_nmap
db_nmap {dirección ip} -p 1-65535
En el caso en que se ha encontrado información de un servicio en especial es posible determinar si el mismo es vulnerable. Desde la consola,se realiza una búsqueda de un exploit en para ese servicio y luego se ejecutará la explotación sobre este servicio.
Para realizar la búsqueda del exploit para el servicio potencialmente vulnerable se debe realizar la consulta desde la consola:
search cve:{código CVE}
Supongamos que encontramos el código de vulnerabilidad 279
Buscamos el código para ver los exploits que podemos utilizar
search cve: 279
Para utilizar el exploit se introduce el comando use seguido de la ruta del exploit seleccionado. En este caso el comando sería el siguiente:
use exploit/multi/http/phpmyadmin_preg_relpace
Luego podemos ver las opciones de este exploit con el comando show options.
Para ejecutar las opciones que presenta cada exploit introducimos el comando set {opción}
Luego debemos de seleccionar el Payload adecuado una vez que se haya explotado con éxito la vulnerabilidad
Mediante el comando “show payloads” se pueden ver cuáles son compatibles con la arquitectura seleccionada.
De igual manera podemos consultar las opciones con en el comando show options
Luego de configurar cada opción del payload debemos ejecutar el exploit con el comando exploit y Metasploit realizará todo el trabajo.
De resultar todo bien Metasploit mostrará un mensaje en la consola y así ya puedes ejecutar comandos en el servidor atacado.
Metasploit se divide básicamente en los siguientes grupos
Exploits: Todos los exploits disponibles que podemos utilizar. Estan dividos por SO y categorías. Por ejemplos todos los exploits para el navegador de Windows en: exploits/windows/browser/
Payloads: Acciones que se van a realizar si se logra explotar la vulnerabilidad que seleccionamos.
windows/shell/reverse_tcp para obtener la shell inversa de Windows.
Auxiliary: son scripts con funciones de scan. Por ejemplo para escanear los puertos TCP/IP y sus servicios utilizamos auxiliary/scanner/portscan/tcp
Enconders: Algoritmos de codificación para evadir antivirus.
help: Lista todos los comandos disponibles
show: Lista exploits, payloads, auxiliary encoders y nops. Si deseamos realizar una consulta para un tipo de categorá en especial podemos ejecutar por ejemplo show exploits
search Buscar por cualquier palabra clave. Ejemplo: search ssh
About the author