NMAP, whatweb y otras herramientas de reconocimiento
NMAP
Nmap (Network Mapper) es una herramienta de código abierto utilizada para explorar redes y realizar auditorías de seguridad. Es comúnmente empleada por administradores de sistemas y profesionales de la seguridad para identificar dispositivos, servicios y posibles vulnerabilidades en una red.
¿Para qué se utiliza?
- Escaneo de redes: Detecta dispositivos conectados y sus direcciones IP.
- Identificación de puertos abiertos: Revela qué puertos están en uso.
- Detección de servicios y versiones: Permite saber qué servicios corren en los puertos abiertos y sus versiones.
- Auditoría de vulnerabilidades: Identifica configuraciones inseguras o puntos débiles en la red.
Comandos y parámetros más habituales:
Aquí tienes algunos de los más comunes, con ejemplos prácticos:
- Escaneo básico:bash
nmap <dirección_IP>
Esto realiza un escaneo básico de los puertos predeterminados en la IP especificada. - Escaneo de todos los puertos:bash
nmap -p 1-65535 <dirección_IP>
Escanea todos los puertos disponibles (1-65535). - Detección de versiones de servicios:bash
nmap -sV <dirección_IP>
Proporciona detalles sobre las versiones de los servicios activos. - Escaneo rápido:bash
nmap -T4 <dirección_IP>
Aumenta la velocidad del escaneo (útil para redes grandes). - Escaneo de sistema operativo:bash
nmap -O <dirección_IP>
Identifica el sistema operativo del dispositivo remoto. - Escaneo de red completa:bash
nmap <rango_IP>
Por ejemplo:bashnmap 192.168.1.0/24
Escanea todos los dispositivos en una subred. - Escaneo sigiloso (para evitar detección):bash
nmap -sS <dirección_IP>
Realiza un escaneo de puertos usando SYN para ser menos detectable.
Opciones adicionales útiles:
- Guardar resultados:bash
nmap -oN resultados.txt <dirección_IP>
Almacena los resultados del escaneo en un archivo de texto. - Escaneo con scripts de Nmap:bash
nmap --script=<nombre_script> <dirección_IP>
Nmap incluye una biblioteca de scripts para realizar tareas específicas, como pruebas de vulnerabilidades.
Nmap ofrece varias opciones para exportar los resultados de un escaneo, cada una adecuada para diferentes necesidades. Aquí te explico las más comunes y su utilidad:
1. Exportar a un archivo de texto normal (-oN
):
bash
nmap -oN archivo.txt <dirección_IP>
- Significado: Guarda los resultados en un archivo legible para los humanos.
- Usos: Ideal para revisar los resultados directamente o compartirlos con otras personas sin herramientas adicionales.
2. Exportar a un archivo grepeable (-oG
):
bash
nmap -oG archivo_grepeable.txt <dirección_IP>
- Significado: Guarda los resultados en un formato que facilita la búsqueda con comandos como
grep
. - Estructura del archivo: Cada línea contiene información organizada de forma que es fácil de filtrar y procesar.
- Ejemplo práctico: Si quieres filtrar puertos abiertos con el comando
grep
, puedes usar:bashgrep "Ports: .*open" archivo_grepeable.txt
Esto extraerá solo las líneas relevantes a puertos abiertos.
3. Exportar a un archivo XML (-oX
):
bash
nmap -oX archivo.xml <dirección_IP>
- Significado: Guarda los resultados en formato XML (legible por máquinas).
- Usos: Ideal para integraciones con otras herramientas o scripts, ya que XML es un formato estructurado estándar.
- Ejemplo: Puedes usarlo con herramientas como
xsltproc
para transformar los resultados en un archivo HTML:bashxsltproc archivo.xml -o archivo.html
4. Exportar simultáneamente en todos los formatos (-oA
):
bash
nmap -oA archivo_base <dirección_IP>
- Significado: Genera archivos con el mismo nombre base en tres formatos: texto (
.nmap
), grepeable (.gnmap
) y XML (.xml
). - Usos: Muy útil para proyectos donde puedes necesitar analizar los datos de diferentes formas.
Comparativa rápida de opciones de exportación:
Opción | Formato | Legible para humanos | Procesable por scripts |
---|---|---|---|
-oN | Texto normal | Sí | No |
-oG | Grepeable | Parcialmente | Sí |
-oX | XML | No | Sí |
-oA | Todos (N, G, X) | Ambos | Ambos |
Estas opciones son muy útiles dependiendo del escenario. Si trabajas con herramientas automáticas o procesas resultados a gran escala, los formatos grepeable o XML son más prácticos. En cambio, para un análisis rápido, el texto es más cómodo.
- bloquean los pings ICMP o cuando no se recibe respuesta de ping por otras razones.
- Ejemplo:bash
nmap -Pn <dirección_IP>
Resumen rápido:
Parámetro | Función |
---|---|
-sV | Detecta versiones de servicios. |
-p- | Escanea todos los puertos (1-65535). |
-v , -vv , -vvv | Controlan el nivel de detalle (verborosidad). |
-n | Evita resolución DNS para agilizar el escaneo. |
--min-rate | Especifica una tasa mínima de envío de paquetes. |
-Pn | Omite el ping y asume que el host está activo. |
Estos parámetros combinados pueden personalizar mucho un escaneo según tus necesidades.
El parámetro -sCV combina dos funcionalidades muy útiles en Nmap:-sC (Script Scan):Activa los scripts predeterminados de Nmap para realizar tareas específicas, como pruebas de seguridad, detección de vulnerabilidades y obtención de información adicional. Los scripts predeterminados están dentro de la biblioteca NSE (Nmap Scripting Engine).-sV (Version Detection):Detecta las versiones de los servicios ejecutándose en los puertos abiertos, proporcionando información detallada de los servicios activos.Juntos: -sCVCuando usas -sCV, estás diciendo a Nmap que combine las capacidades de detección de versiones (-sV) y la ejecución de scripts predeterminados (-sC) en un único escaneo. Este comando es especialmente útil para auditorías básicas de seguridad y detección de vulnerabilidades.Ejemplo práctico:bashnmap -sCV <dirección_IP>¿Qué obtendrás?Información sobre los puertos abiertos y los servicios que se ejecutan.Detalles de las versiones de esos servicios.Resultados de los scripts predeterminados (como información sobre SSL, configuración del sistema, etc.).Es una opción muy común para un análisis exhaustivo pero no demasiado intrusivo.
whatweb
WhatWeb es una herramienta de análisis de sitios web diseñada para identificar tecnologías y características en uso en un sitio. Es particularmente útil para profesionales de la seguridad, administradores de sistemas y desarrolladores que necesitan obtener información sobre la infraestructura de un sitio web de manera rápida.
¿Para qué sirve?
- Identificación de tecnologías: Detecta frameworks, sistemas de gestión de contenido (CMS), servidores web, bibliotecas JavaScript, lenguajes de programación y más.
- Recolección de información de seguridad: Busca versiones de software, posibles vulnerabilidades y configuraciones inseguras.
- Auditorías de sitios web: Útil para análisis forense, pruebas de penetración o evaluaciones de seguridad.
- Automatización: Puede analizar múltiples sitios simultáneamente.
Ejemplo básico de uso:
bash
whatweb <URL>
Esto escaneará la URL proporcionada y te devolverá un resumen de las tecnologías detectadas.
Parámetros más útiles:
Parámetro | Función |
---|---|
--color | Activa el uso de colores en la salida para facilitar la lectura. |
--quiet | Reduce la cantidad de información mostrada, dejando solo lo esencial. |
--aggression | Cambia el nivel de agresividad (ejemplo: --aggression=3 para más detalles). |
--log | Guarda los resultados en un archivo. |
--proxy | Usa un proxy para el análisis. |
--help | Muestra la ayuda completa de comandos. |
Ejemplo avanzado:
- Escaneo agresivo de un sitio web:bash
whatweb --aggression 3 <URL>
- Guardar resultados en un archivo:bash
whatweb --log resultados.txt <URL>
WhatWeb es muy versátil, y su nivel de agresividad ajustable permite realizar tanto análisis rápidos como auditorías más profundas.
Otras herramientas
Hay varias herramientas, además de WhatWeb, que sirven para identificar tecnologías y características de sitios web. Wappalyzer es una de las más populares, y aquí te explico todo sobre ella:
¿Qué es Wappalyzer?
- Tipo de herramienta: Es una extensión para navegadores (Chrome, Firefox, Edge, etc.) y también una herramienta de línea de comandos.
- Función principal: Detecta automáticamente las tecnologías que utiliza un sitio web mientras lo estás navegando.
- ¿Qué detecta?:
- Frameworks web (como Angular, React, Vue.js).
- CMS (sistemas de gestión de contenido) como WordPress, Joomla o Drupal.
- Librerías JavaScript.
- Lenguajes de programación.
- Servidores web (como Apache o Nginx).
- Bases de datos.
- Herramientas de análisis y seguimiento (como Google Analytics).
¿Cómo funciona?
Si instalas la extensión en tu navegador, basta con visitar un sitio web y hacer clic en el ícono de Wappalyzer. Te mostrará una lista con las tecnologías utilizadas, junto con detalles como versiones o características relevantes.
¿Por qué usar Wappalyzer?
- Rápido: No necesitas ejecutar comandos; basta con visitar el sitio.
- Sencillo: Es muy intuitivo para quienes no tienen experiencia técnica.
- Práctico: Ideal para un análisis preliminar cuando no requieres escaneos más complejos como los de Nmap o WhatWeb.
Alternativas a WhatWeb y Wappalyzer:
- BuiltWith: Similar a Wappalyzer, pero enfocado en análisis más detallados de tecnologías y tendencias del sitio.
- Netcraft: Proporciona información sobre servidores web y certificaciones de seguridad.
- CMS Detector: Específico para detectar sistemas de gestión de contenido como WordPress.
- WebSpot: Escanea tecnologías en uso y da detalles adicionales sobre la estructura del sitio.
Cada herramienta tiene su fuerte dependiendo del nivel de análisis que necesites. Por ejemplo, Wappalyzer es excelente para un análisis rápido y visual, mientras que WhatWeb o Nmap son más potentes para auditorías de seguridad.