Universidad de Los Andes Departamento de Ingeniería de Sistemas y Computación Infraestructura Computacional ISIS 2203 (C1) Manual Herramientas de Evaluación de Seguridad en Host (Nessus – Nmap) Preparado por: Asistente Graduado Jorge Mario Becerra - Victor Guana Editado por: Asistente Graduado Victor Guana Objetivo: Utilizar las herramientas Nessus y Nmap para detectar vulnerabilidades en servidores Windows, examinando puertos abiertos y servicios disponibles. Lecturas Previas: Documentación en las páginas web de nessus y nmap: Guías de Usuario Introducción: Es un error común asumir que sólo el firewall hace más seguro un servidor o toda una topología de red. Cada sistema tiene diferentes necesidades de seguridad y toma tiempo realizar una configuración de seguridad que ofrezca la máxima seguridad y el mejor rendimiento. Estos son algunos de los errores más comunes: - Instalar paquetes que no se necesitan Habilitar servicios que no se utilizan Deshabilitar el firewall del servidor, porque ya está habilitado el firewall del perímetro de la red Permitir que un servidor suministre información que facilite posibles ataques a la red Conectar un servidor a una red inalámbrica Después de descartar estos posibles errores, se debe evaluar a qué tipos de ataque es vulnerable un servidor. Entonces, se debe determinar qué servicios se están ofreciendo hacia Internet y cuáles puertos están utilizando estos servicios. Existen dos herramientas que son usadas para determinar vulnerabilidades en un servidor: Nessus y Nmap. Nessus escanea la máquina y consulta los servicios que se están ejecutando, verificando los números de las versiones frente a una lista de vulnerabilidades y reporta problemas. Nmap escanea la máquina y reporta cuales puertos TCP/IP fueron encontrados abiertos. A continuación se documenta la instalación y configuración de Nessus. Las pruebas de Nessus se realizan sobre un servidor Web con dirección 192.168.3.6 Descripción de Herramientas: Nessus: Es una herramienta para escanear vulnerabilidades. Se caracteriza por tener alta velocidad de descubrimiento, auditoria en la configuración de aplicaciones, descubrimiento de datos sensibles y análisis de vulnerabilidades de la red. Nessus puede estar distribuido a lo largo de toda una empresa, incluyendo la DMZ (Zona Desmilitarizada) y demás redes físicamente separadas. Nessus soporta los siguientes tipos de auditorías de seguridad: o o o o Escanear puertos Escanear vulnerabilidades en la red Auditoria en la configuración de plataformas Windows y Unix Pruebas de vulnerabilidad sobre aplicaciones web embebidas Auditoria en la configuración de bases de datos SQL NMap: Nmap es una herramienta para exploración de red y auditoria de seguridad. Se diseñó para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales. Nmap determina qué equipos se encuentran disponibles en una red, qué servicios (nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están utilizando, etc. Aunque generalmente se utiliza Nmap en auditorias de seguridad, muchos administradores de redes y sistemas lo encuentran útil para realizar tareas rutinarias, como puede ser el inventariado de la red, la planificación de actualización de servicios y la monitorización del tiempo que los equipos o servicios se mantienen activos. La salida de Nmap es un listado de objetivos analizados, con información adicional para cada uno dependiente de las opciones utilizadas. La información más importante, es la tabla de puertos. Esta tabla lista el número de puerto y protocolo, el nombre más común del servicio y su estado. El estado puede ser open (abierto), filtered (filtrado), closed (cerrado), o unfiltered (no filtrado). Abierto significa que la aplicación en la máquina destino se encuentra esperando conexiones o paquetes en ese puerto. Filtrado indica que un firewall, filtro, u otro obstáculo en la red está bloqueando el acceso a ese puerto, por lo que Nmap no puede saber si se encuentra abierto o cerrado. Los puertos cerrados no tienen ninguna aplicación, aunque podrían abrirse en cualquier momento. Los clasificados como no filtrados son aquellos que responden a los sondeos de Nmap, pero no se puede determinar si se encuentran abiertos o cerrados. Nmap informa las combinaciones de estado open | filtered y closed | filtered cuando no puede determinar en cual de los dos estados está un puerto. La tabla de puertos también puede incluir detalles de la versión de la aplicación cuando se ha solicitado detección de versiones. Además de la tabla de puertos, Nmap puede dar información adicional sobre los equipos, incluyendo el nombre de DNS según la resolución inversa de la IP, un listado de sistemas operativos posibles, tipos de dispositivo y direcciones MAC. Nessus: Instalación Nessus: 1. Iniciar el Wizard de instalación. Hacer clic en Next Figura 1. Inicio del Wizard de instalación 2. Aceptar los términos de licenciamiento. Hacer clic en Next 3. Aceptar la carpeta de instalación por defecto. Hacer clic en Next Figura 2. Carpeta de instalación de Nessus 4. Seleccionar instalación completa. Hacer clic en Next Figura 3. Tipo de instalación a realizarse 5. Hacer clic en Install, para comenzar la instalación 6. Después de terminar la instalación, hacer clic en Finish Configuración Nessus: La interface Nessus Server Manager permite: - Ejecutar actualizaciones Administrar usuarios Configurar el inicio de Nessus con el arranque del Sistema Operativo Iniciar y parar el servidor Nessus 1. Abrir la consola Nessus Server Manager. Inicio Todos los Programas Tenable Network Security Nessus Nessus Server Manager. Obtener un código de activación para Nessus. Hacer clic en “Obtain an activation code”. Figura 4. Generación del código de activación de Nessus 2. En la página web de Nessus, seleccionar versión HomeFeed. Aceptar los términos de licenciamiento y solicitar el código de activación de Nessus. El código de activación es enviado al correo electrónico Figura 5. Selección de la versión de Nessus HomeFeed 3. Después de introducir el código de activación, el servicio de Nessus se inicia automáticamente. En la Figura 6, se observa la posibilidad de habilitar o deshabilitar la opción “Allow remote users to connect to this Nessus server”, para permitir conexiones remotas a el servidor Nessus. Figura 6. Ventana para iniciar o parar el servicio de Nessus 4. Creación y administración de cuentas de usuario. Hacer clic en el botón “Manage Users” de la Figura 6. Observar la Figura 7. Hacer clic en el botón “+” e introducir el User Name, el Password y seleccionar la opción “Administrator”. Hacer clic en Save. Observar la Figura 8. Figura 7. Ventana para administrar usuarios de Nessus Figura 8. Creación de un usuario con privilegios de administrador NOTA: El usuario “admin” sólo puede ser usado desde conexiones remotas. Nessus tiene una cuenta administrativa interna para uso local. 5. En el archivo nessusd.conf, ubicado en la carpeta D:\Archivos de programa\Tenable\Nessus\conf, se pueden verificar los puertos por defecto que utiliza Nessus. Las variables son listen_port y xmlrpc_listen_port. Así: # Port to listen to (old NTP protocol). Used for pre 4.2 NessusClient connections : listen_port = 1241 # Port for the Nessus Web Server to listen to (new XMLRPC protocol) : xmlrpc_listen_port = 8834 6. Abrir el puerto 8834 sobre el Firewall de Windows. Ingresar por Panel de Control Firewall de Windows Excepciones Agregar Puerto Nombre: Nessus, Número de Puerto: 8834, Seleccionar TCP. Hacer clic en Aceptar. Observar Figura 9 Figura 9. Habilitación del puerto TCP/8834 en el Firewall 7. Abrir el puerto 1241 sobre el Firewall de Windows. Ingresar por Panel de Control Firewall de Windows Excepciones Agregar Puerto Nombre: NessusServer, Número de Puerto: 1241, Seleccionar TCP. Hacer clic en Aceptar. Observar Figura 10 Figura 10. Habilitación del puerto TCP/1241 en el Firewall 8. Verificar que el demonio de Nessus está iniciado, haciendo clic en el icono “Nessus Server Manager” y si es necesario hacer clic en el botón “Strat Nessus Server”. Observar Figura 11 Figura 11. Verificación del estado del servicio de Nessus 9. Verificar que el demonio de Nessus está ejecutándose. Abrir un navegador y digitar la dirección https://localhost:8834. Aceptar el certificado autofirmado. Digitar el UserName y el password creados en el numeral 4. Observar las Figuras 12 y 13 Figura 12. Autenticación en la consola de configuración de Nessus Figura 13. Consola de configuración de Nessus 10. Verificar que el Servidor Nessus se está ejecutándo sobre el localhost y está escuchando por el puerto 1241. Ingresar por la línea de comandos y ejecutar el siguiente comando: C:\ > netstat -an | findstr 1241 TCP 0.0.0.0:1241 0.0.0.0:0 LISTENING 11. En la instalación de Nessus, se crean dos archivos: servercert.pem y serverkey.pem, que constituyen el certificado autofirmado. Estos archivos están ubicados en la carpeta C:\Archivos de programa\Tenable\Nessus \nessus\CA y pueden ser reemplazados por un certificado generado por una Autoridad de certificación o CA. 12. Adición de una cuenta de usuario por línea de comandos. Abrir una línea de comandos y ubicarse en la carpeta de instalación de Nessus, C:\Archivos de programa\Tenable\Nessus>, ejecutar el siguiente comando y aceptar la creación del usuario admin2 con privilegios de administrador: C:\Archivos de programa\Tenable\Nessus> nessus-adduser.exe Login : admin2 Login password : Login password (again) : Do you want this user to be a Nessus 'admin' user ? (can upload plugins, etc...) (y/n) [n]: y User rules ---------nessusd has a rules system which allows you to restrict the hosts that admin2 has the right to test. For instance, you may want him to be able to scan his own host only. Please see the nessus-adduser manual for the rules syntax Enter the rules for this user, and enter a BLANK LINE once you are done : (the user can have an empty rules set) Login Password : admin2 : *********** This user will have 'admin' privileges within the Nessus server Rules : Is that ok ? (y/n) [y] y User added Creación Políticas en Nessus Una política en Nessus consiste de opciones de configuración para ejecutar escaneo de vulnerabilidades. Estas opciones incluyen: - Parámetros de control de aspectos técnicos de escaneo tales como temporizadores, número de host y tipos de puertos para escanear, etc. Credenciales para escaneo del Sistema Operativo, Autenticación de Bases de Datos, Protocolos HTTP, SMTP, SNMP, FTP, POP, IMAP, autenticación basada en Kerberos, etc. Escaneo para detección de servicios 1. Abrir un navegador y digitar la dirección https://localhost:8834. Aceptar el certificado autofirmado. Digitar el UserName y el password de Administrador. Seleccionar “Policies” y “ + Add”, para crear una política. Observar la Figura 14 Figura 14. Consola para la creación de políticas. Tab General 2. Existen 4 tabs de configuración: General, Credentials, Plugins y Preferences. Cada una tiene una configuración básica por defecto, que debe modificarse dependiendo de las variables que se quieran examinar en la red. Observar la Figura 14. A continuación se hace un breve análisis de los aspectos más importantes de cada uno: 2.1 Tab General Se utiliza para dar un nombre a la política y configurar las operaciones relacionadas con el proceso de escaneo. Está compuesto por 6 grupos de opciones, que son: Basic, Scan, Network Congestion, Port Scanners, Port Scan Options y Performance Basic se utiliza para establecer el nombre, visibilidad y descripción de la política: - Name: politica1 Visibility: Private Description: Política para escanear el servidor de Streaming Scan define las opciones relacionadas con el comportamiento del proceso de escaneo. Marcar las siguientes opciones: - Safe Checks: Deshabilitar todos los plugins que pueden tener un efecto adverso en la máquina remota Silent Dependencies: No incluye la lista de dependencias en el reporte Log Scan Details to Server: Almacenar detalles adicionales del escaneo en el log del servidor, tales como: Plugins utilizados y hosts escaneados Stop Host Scan on Disconnect: Detener el proceso de escaneo, si el host es apagado o hay alta congestión en la red Network Congestion define opciones para mejorar el proceso de escaneo en la red destino. Marcar las siguientes opciones: - Reduce Parallel Connections on Congestion: Habilita a Nessus para detectar cuando está enviando muchos paquetes que están congestionando la red Port Scanners controla los métodos de escaneo de puertos que pueden ser habilitados: - TCP Scan : identifica puertos TCP abiertos (marcarla) Ping Host: Envía comandos ping sobre múltiples puertos para determinar cuáles están activos (marcarla) Port Scan Options establece la cantidad de puertos que se quieren escanear: - “default”: Escanea los 4605 puertos más comunes “all”: Escanea todos los 65535 puertos Definir los puertos de interés, separados por comas, así:23, 25, 80, 110, 143 Performance establece dos opciones que controlan cuántos escaneos pueden ser activados. Estas opciones alteran el tiempo de escaneo y la actividad de la red - Max Checks Per Host : por defecto 5 chequeos por host Max Hosts Per Scan: por defecto 80 hosts se escanean al mismo tiempo Network Receive Timeout (seconds) : por defecto 5 seg. Es el timepo que espera Nessus para recibir una respuesta desde un host que está siendo escaneado Max Simultaneous TCP Sessions Per Host: Máximo cantidad de sesiones TCP establecidas sobre un host Max Simultaneous TCP Sessions Per Scan: Número máximo de sesiones TCP establecidas durante todo el escaneo La figura 14 muestra los campos configurados 2.2 Tab Credentials Permite configurar a Nessus para usar credenciales de autenticación durante el escaneo. Esta característica permite obtener resultados más confiables. El menú “Credential Type” tiene las siguientes opciones: Windows Credentials, SSH Settings, Kerberos Configuration, ClearText Protocols Settings.Observar la Figura 15 Windows Credentials: Permite establecer parámetros que configuran el Protocolo SMB (Nombre Usuario, Password, Dominios). Estos parámetros ayudan a Nessus a encontrar información de host Windows remotos. SSH Settings: Permite escanear sistemas Unix, utilizando credenciales SSH. Las claves públicas y privadas de SSH, deben estar ubicadas en el servidor Nessus. Las claves debieron ser creadas por el usuario root del sistema Unix. Kerberos Configuration: Permite especificar credenciales, usando claves kerberos desde un sistema remoto. ClearText Protocols Settings: Permite realizar escaneos con protocolos inseguros, tales como: telnet, rsh, rexec. Por defecto, todos los passwords asociados con la política son encriptados. La política es almacenada en un archivo con extensión .nessus. Figura 15. Consola para la creación de políticas. Tab Credentials 2.2.1 Configuración de Windows Credentials Para que el proceso de escaneo de los sistemas Windows sea más eficiente, se deben configurar registros de seguridad locales en los servidores Windows y crear un grupo y un usuario para Nessus, así: Grupo: Nessus Test Accounts Usuario: nessustest Para Windows Server, el acceso remoto al registro es regulado por una clave, ubicada en: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg. Si no existe debe ser creada con el siguiente procedimiento: - Abrir el editor de registro (regedit) y ubicarse en la clave “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control” - Hacer clic derecho sobre la clave “Control” y seleccionar Nuevo Clave. En el nombre de la clave: “SecurePipeServers” y en el tipo: “REG_SZ” - Hacer clic derecho sobre la nueva clave “SecurePipeServers” y seleccionar Nuevo Clave. En el nombre de la clave: “winreg” y en el tipo: “REG_SZ” - Hacer clic derecho sobre la nueva clave “winreg” y seleccionar Nuevo Valor Alfanumérico. En el nombre: “Description”, en el tipo: “REG_SZ”, en Datos: “Registry Server”. Observar la Figura 16 Figura 16. Creación de la clave winreg en el editor de registros de Windows Server Ahora se deben modificar los permisos de la clave: - Hacer clic derecho sobre la nueva clave “winreg” y seleccionar Permisos. En la opción Seguridad, hacer clic en Agregar. Hacer clic en Avanzadas y clic en Buscar Ahora. En el resultado de la búsqueda, seleccionar el grupo: Nessus Test Accounts. Hacer clic en Aceptar. Observar la Figura 17 - En la Opción Seguridad, hacer clic en Opciones Avanzadas. Seleccionar Permisos y seleccionar el grupo: Nessus Test Accounts. Seleccionar Modificar. En la opción Objeto, en el campo “Aplicar en:”, seleccionar “Sólo esta clave”. Hacer clic en Aceptar, hasta cerrar todas las ventanas. Observar la Figura 18 Figura 17. Adición del grupo “Nessus Test Accounts” a la clave winreg Figura 18. Verificación de permisos al grupo “Nessus Test Account” En la Figura 18 se confirma que para el grupo “Nessus Test Accounts”, están permitidos “controles de lectura”. Configurar la cuenta SMB, con el usuario creado en el servidor. Seleccionar Windows Credentials en la consola de Nessus y establecer los siguientes valores: SMB Account: nessustest SMB password: ********** (password utilizado en el servidor) SMB domain: midominio.com (nombre de dominio al que pertenece el servidor) SMB password type: Password Never send SMB credentials in clear text (seleccionar) La Figura 15 muestra los campos configurados 2.3 Tab Plugins Habilita al usuario para configurar características de las políticas de escaneo, seleccionando tipos de plugins predefinidos para los diferentes servicios que se pueden escanear. Se debe seleccionar una familia de plugins, para que se desplieguen los plugins que la componen y marcar los que se quiere utilizar, de acuerdo a las políticas del escaneo. Seleccionar Plugins en la consola de Nessus. Seleccionar la Familia de Plugins en la columna Families y los tipos de plugins en la columna Plugins. También es posible seleccionar todos los plugins de una familia en particular, haciendo clic en el botón “Enable All”. Observar la Figura 19 Figura 19. Consola para creación de políticas. Tab Plugins 2.4 Tab Preferences Características de configuración avanzadas que son agrupadas por categorías. Están definidos los siguientes tipos: Database settings, Do not scan fragile devices, Global variable settings, HTTP cookies import, HTTP login page, Login configurations, Nessus SYN scanner, Nessus TCP scaner, News Server (NNTP) Information Disclosure, Oracle settings, Ping the remote host, Port scanner settings, SMB Registry: Start the Registry Service during the scan, SMTP settings, SNMP settings, Service Detection, Unix Compliance Checks, Web Application Tests Settings y Web Mirroring. Ping the remote host: Esta opción le permite a Nessus, enviar mensajes ping sobre la red, para descubrir los hosts que se van ha escanear. Esto puede realizarse con ping ARP, ping TCP, ping ICMP y ping UDP. Observar la Figura 20 Figura 20. Consola para la creación de políticas. Tab Preferences Finalmente, hacer clic en el botón “Submit”, para guardar la política creada. Observar la Figura 21 Figura 21. Listado de políticas creadas Escaneando con Nessus: 1. Seleccionar la opción “Scan” y “+ Add”, para crear un nuevo escaneo. Observar la Figura 22. Estos son los campos que se deben establecer: Name: escaneo1. Establece el nombre que identifica el escaneo Policy: politica1. Selecciona una de las políticas creadas Scan Targets: 192.168.3.6. Establece la dirección IP o el rango de direcciones IP de las máquinas donde se aplica la política del escaneo. Por ejemplo: 192.168.3.6, o un rango de direcciones IP, 192.168.3.10-192.168.3.20, o una subred 192.168.3.0/24 Targets File: Selecciona un archivo de texto con la lista de hosts que serán escaneados. El archivo se busca en el servidor, utilizando el botón “Browse…”. El archivo debe estar formateado en texto ASCII y solo debe escribirse un host por línea, sin espacio adicionales: Hosts individuales, así: 172.20.15.1 172.20.15.2 172.20.15.3 Rango de Hosts, así: 172.20.15.1-172.20.15.3 Bloque de Hosts CIDR, así: 172.20.15.1/24 Figura 22. Creación y configuración de un escaneo 2. Verificar que el servidor 192.168.3.6 está disponible en la red y hacer clic en “Launch Scan”, para guardar e iniciar el escaneo creado con la respectiva política. Observar la Figura 23. Cuando termina de ejecutarse el escaneo, éste desaparece del listado. Observar la Figura 24 Figura 23. Listado de escaneos creados Figura 24. Consola para identificar el estado de ejecución de un escaneo Analizando Reportes: 1. Seleccionar la opción “Reports” para listar el reporte generado. Observar la Figura 25. Figura 25. Consola con el Reporte de Escaneos Ejecutados 2. Hacer clic en el nombre del escaneo “escaneo1”, para abrir el reporte. El host tiene 52 puertos abiertos y 155 vulnerabilidades clasificadas así: 7 de nivel alto de severidad, 8 de nivel medio de severidad y 88 de nivel bajo de severidad. Las restantes vulnerabilidades no son consideradas de importancia. Observar la Figura 26. Figura 26. Listado de direcciones IP escaneadas 3. Hacer clic en la dirección IP del hosts, para analizar detalles de los puertos abiertos que fueron detectados en el proceso de escaneo. Observar la Figura 27 Figura 27. Listado de puertos abiertos que fueron detectados en el proceso de escaneo 4. Hacer clic para seleccionar un puerto y desplegar todas las vulnerabilidades encontradas asociadas con el puerto y el servicio. Por ejemplo para el puerto TCP/80 del protocolo HTTP, observar la Figura 28 y para el puerto TCP/389 del protocolo LDAP, observar la Figura 29 Figura 28. Listado de vulnerabilidades detectadas en el puerto TCP/80 para el protocolo HTTP Figura 29. Listado de vulnerabilidades detectadas en el puerto TCP/389 para el protocolo LDAP 5. El host con dirección IP: 192.168.3.6, tiene 5 vulnerabilidades de bajo nivel de severidad, asociadas con el puerto TCP/80. Observar el resumen de la Figura 28. Ahora, seleccionar la segunda vulnerabilidad detectada, es decir “HTTP Server type and versión” y analizar las recomendaciones realizadas por Nessus. Observar la Figura 30. Figura 30. Análisis de una vulnerabilidad de baja severidad en el puerto TCP/80 NMap: Instalación: 1. Iniciar el wizard de instalación y aceptar los términos de la licencia. Hacer clic en “I Agree”. 2. La selección de componentes es por defecto. Hacer clic en Next. Observar la Figura 31 Figura 31. Selección de componentes para la instalación 3. Seleccionar la carpeta por defecto para la instalación. Hacer clic en Install Figura 32. Selección de la carpeta de instalación 4. Aceptar nuevamente los términos de licencia. Hacer clic en “I Agree” y en Next 5. Permitir la instalación de WinPcap. Hacer clic en Next y clic en Finish. Observar la Figura 33 Figura 33. Permitir instalación de WinPcap 6. En la ventana de instalación completa hacer clic en Next. Observar la Figura 34 Figura 34. Realizar instalación completa de Nmap 7. Permitir la creación de iconos de escritorio. Hacer clic en Next y después hacer clic en Finish Comandos Cuando se ejecuta Nmap sin parámetros se muestra un resumen de opciones. Es posible encontrar siempre la última versión del resumen en la dirección: http://www.insecure.org/nmap/data/nmap.usage.txt. La sintaxis de los comandos, tiene la siguiente forma: nmap [Tipo de Análisis] [Opciones] {especificación de objetivo} - ESPECIFICACIÓN DE OBJETIVO: Se pueden indicar nombres de host, direcciones IP, etc. Ejemplos: scanme.nmap.org, 192.168.0.1; 10.0.0-255.1-254 -iL <archivo_entrada>: Lee una lista de hosts del archivo -iR <número de sistemas>: Selecciona objetivos al azar --exclude <sist1[,sist2][,sist3],...>: Excluye ciertos hosts o redes - DESCUBRIMIENTO DE HOSTS: -sL: Sondeo de lista - Simplemente lista los objetivos a analizar -sP: Sondeo Ping - Sólo determina si el objetivo está vivo -P0: Asume que todos los objetivos están vivos -PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de puertos indicados -PE/PP/PM: Solicita análisis ICMP de tipo echo, marca de fecha y máscara de red -n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces] --dns-servers <serv1[,serv2],...>: Especificar servidores DNS específicos --system-dns: Utilizar la resolución del sistema operativo - TÉCNICAS DE ANÁLISIS: -sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon -sN/sF/sX: Análisis TCP Null, FIN, y Xmas --scanflags <indicador>: Personalizar los indicadores TCP a utilizar -sO: Análisis de protocolo IP - ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS -p <rango de puertos>: Sólo sondear los puertos indicados Ejemplo: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 -F: Rápido - Analizar sólo los puertos listados en el archivo nmap-services -r: Analizar los puertos secuencialmente, no al azar. - DETECCIÓN DE SERVICIO / VERSIÓN -sV: Sondear puertos abiertos, para obtener información de servicio/versión --version-intensity <nivel>: Fijar de 0 (ligero) a 9 (probar todas las sondas) --version-light: Limitar a las sondas más probables (intensidad 2) --version-all: Utilizar todas las sondas (intensidad 9) - TEMPORIZADO Y RENDIMIENTO -T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos) --min-hostgroup/max-hostgroup <tamaño>: Paralelizar los sondeos --min-parallelism/max-parallelism <msegs>: Paralelización de sondeos --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <msegs>: Indica el tiempo de ida y vuelta de la sonda --max-retries <reintentos>: Limita el número máximo de retransmisiones de las sondas de análisis de puertos --host-timeout <msegs>: Abandonar un objetivo pasado este tiempo - EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS -f; --mtu <valor>: fragmentar paquetes (opcional con el MTU indicado) -S <Dirección_IP>: Falsificar la dirección IP origen -e <interfaz>: Utilizar la interfaz indicada -g/--source-port <numpuerto>: Utilizar el número de puerto dado --data-length <num>: Agregar datos al azar a los paquetes enviados --ttl <val>: Fijar el valor del campo time-to-live (TTL) de IP --spoofmac <dirección mac/prefijo/nombre de fabricante>: Falsificar la dirección MAC --badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa - MISCELÁNEO -6: Habilitar análisis IPv6 -A: Habilita la detección de SO y de versión --datadir <nombreDir>: Indicar la ubicación de los archivos de datos Nmap personalizados. --send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP "crudos" --privileged: Asumir que el usuario tiene todos los privilegios -V: Muestra el número de versión -v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto) EJEMPLOS: 1. nmap –v –sP 192.168.3.6 Determina si el host con dirección IP 192.168.3.6 está activo 2. nmap -v 192.168.3.6 Esta opción sondea todos los puertos TCP reservados en el servidor 192.168.3.6. La opción -v activa el modo detallado (también llamado verboso). 3. nmap -sS -O 192.168.3.6/24 Lanza un sondeo de tipo SYN sigiloso contra cada una de las 255 máquinas en la red clase C donde está el sistema. También intenta determinar cual es el sistema operativo que se ejecuta en cada máquina que esté encendida. Esto requiere permisos de root por la opción de sondeo SYN y por la de detección de sistema operativo. 4. nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127 Lanza una enumeración de equipos y un sondeo TCP a cada uno de la primera mitad de las 255 posibles subredes de 8 bit en la red de clase C 198.116. Esto probará si los sistemas están ejecutando sshd, DNS, pop3d, imapd o tienen un servidor en el puerto 4564. Para cualquier puerto que se encuentre abierto, se realizará una detección de versión para determinar qué aplicación se está ejecutando. 5. nmap -v -iR 100000 -P0 -p 80 Solicita a Nmap que elija 100.000 sistemas aleatoriamente y los sondee buscando servidores web (puerto 80). La enumeración de sistemas se deshabilita con -P0 ya que es un desperdicio enviar un par de pruebas para determinar si el sistema debe ser analizado cuando de todas maneras sólo se va a analizar un puerto. Analizando Puertos: Nmap comenzó como un analizador de puertos eficiente, aunque ha aumentado su funcionalidad a través de los años, aquella sigue siendo su función principal. La sencilla orden nmap <objetivo> analiza más de 1660 puertos TCP del equipo <objetivo>. Aunque muchos analizadores de puertos han agrupado tradicionalmente los puertos en dos estados: abierto o cerrado, Nmap es mucho más descriptivo. Se dividen a los puertos en seis estados distintos: abierto, cerrado, filtrado, no filtrado, abierto|filtrado, o cerrado|filtrado. Estos estados no son propiedades intrínsecas del puerto en sí, pero describen como los ve Nmap. Por ejemplo, un análisis con Nmap desde la misma red en la que se encuentra el objetivo puede mostrar el puerto 135/tcp como abierto, mientras que un análisis realizado al mismo tiempo y con las mismas opciones, pero desde Internet, puede presentarlo como filtrado. Estos son los seis estados de un puerto que establece Nmap: - abierto Una aplicación acepta conexiones TCP o paquetes UDP en este puerto. El encontrar esta clase de puertos es generalmente el objetivo primario de realizar un sondeo de puertos. Las personas orientadas a la seguridad saben que cada puerto abierto es un punto de ataque. Los atacantes y las personas que realizan pruebas de intrusión intentan aprovechar puertos abiertos, por lo que los administradores intentan cerrarlos, o protegerlos con cortafuegos, pero sin que los usuarios legítimos pierdan acceso al servicio. Los puertos abiertos también son interesantes en sondeos que no están relacionados con la seguridad porque indican qué servicios están disponibles para ser utilizados en una red. - cerrado Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él. Pueden ser útiles para determinar si un equipo está activo en cierta dirección IP (mediante descubrimiento de sistemas, o sondeo ping), y es parte del proceso de detección de sistema operativo. Como los puertos cerrados son alcanzables, o sea, no se encuentran filtrados, puede merecer la pena analizarlos pasado un tiempo, en caso de que alguno se abra. Los administradores pueden querer considerar bloquear estos puertos con un firewall. Si se bloquean aparecerían filtrados, como se discute a continuación. - filtrado Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto. El filtrado puede provenir de un dispositivo de cortafuegos dedicado, de las reglas de un enrutador, o por una aplicación de cortafuegos instalada en el propio equipo. Estos puertos suelen frustrar a los atacantes, porque proporcionan muy poca información. A veces responden con mensajes de error ICMP del tipo 3, código 13 (destino inalcanzable: comunicación prohibida por administradores), pero los filtros que sencillamente descartan las sondas sin responder son mucho más comunes. Esto fuerza a Nmap a reintentar varias veces, considerando que la sonda pueda haberse descartado por congestión en la red en vez de haberse filtrado. - no filtrado Este estado indica que el puerto es accesible, pero que Nmap no puede determinar si se encuentra abierto o cerrado. Solamente el sondeo ACK, utilizado para determinar las reglas de un firewall, clasifica a los puertos según este estado. El analizar puertos no filtrados con otros tipos de análisis, como el sondeo SYN o FIN, pueden ayudar a determinar si el puerto se encuentra abierto. - abierto|filtrado Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado. Esto ocurre para tipos de análisis donde no responden los puertos abiertos. La ausencia de respuesta puede también significar que un filtro de paquetes ha descartado la sonda, o que se elimina cualquier respuesta asociada. De esta forma, Nmap no puede saber con certeza si el puerto se encuentra abierto o filtrado. Los sondeos UDP, protocolo IP, FIN, Null y Xmas clasifican a los puertos de esta manera. - cerrado|filtrado Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer sólo durante un sondeo IPID pasivo. Analizando Servicios: Si le indica a Nmap que mire un sistema remoto le podrá decir que tiene abiertos los puertos 25/tcp, 80/tcp y 53/udp. Informará que esos puertos se corresponden habitualmente con un servidor de correo (SMTP), servidor de web (HTTP) o servidor de nombres (DNS), respectivamente, si utilizas su base de datos nmap-services con más de 2.200 puertos conocidos. Generalmente este informe es correcto, teniendo en cuenta que la gran mayoría de demonios que escuchan en el puerto 25/tcp, son servidores de correo. Pero esto puede ser modificado fácilmente por el administrador del servidor. Aún en el caso en que Nmap tenga razón y el servidor esté ejecutando servicios de SMTP, HTTP y DNS, ésto no dice mucho. Cuando haga un análisis de vulnerabilidades, lo que habitualmente también quiere saber es qué versión se está utilizando en el servidor DNS. Conocer el número de versión, puede ayudar mucho a la hora de determinar qué ataques pueden afectar a un servidor. La detección de versiones ayuda a obtener esta información. La detección de versiones pregunta para obtener más información de lo que realmente se está ejecutando una vez se han detectado los puertos TCP o UDP con alguno de los métodos de sondeo. La base de datos nmap-service-probes contiene sondas para consultar distintos servicios y reconocer y tratar distintas respuestas en base a una serie de expresiones. Nmap intenta determinar el protocolo del servicio, el nombre de la aplicación, un número de versión, un tipo de dispositivo, la familia de sistema operativo y algunas veces algunos detalles misceláneos como, por ejemplo, si un servidor X acepta una conexión externa. Por supuesto, la mayoría de los servicios no ofrecen toda esta información. Si se ha compilado Nmap con soporte OpenSSL se conectará también a servidores SSL para determinar qué servicio escucha detrás de la capa de cifrado. La opción -A de Nmap actualiza la detección de versiones. La detección de versiones se activa y controla con las siguientes opciones: -sV (Detección de versiones) Activa la detección de versiones como se ha descrito previamente. Puede utilizar la opción -A en su lugar para activar tanto la detección de versiones como la detección de sistema operativo. --allports (No excluir ningún puerto de la detección de versiones) La detección de versiones de Nmap omite el puerto TCP 9100 por omisión porque algunas impresoras imprimen cualquier cosa que reciben en este puerto, lo que da lugar a la impresión de múltiples páginas con solicitudes HTTP get, intentos de conexión de SSL, etc. --version-intensity <intensidad> (Fijar la intensidad de la detección de versiones) Nmap envía una serie de sondas cuando se activa la detección de versiones (-sV) con un nivel de rareza preasignado y variable de 1 a 9. Las sondas con un número bajo son efectivas contra un amplio número de servicios comunes, mientras que las de números más altos se utilizan rara vez. El nivel de intensidad indica que sondas deberían utilizarse. Cuanto más alto sea el número, mayor las probabilidades de identificar el servicio. Sin embargo, los sondeos de alta intensidad tardan más tiempo. El valor de intensidad puede variar de 0 a 9. El valor por omisión es 7. Se probará una sonda independientemente del nivel de intensidad cuando ésta se registra para el puerto objetivo a través de la directiva nmap-service-probes ports. De esta forma se asegura que las sondas de DNS se probarán contra cualquier puerto abierto 53, las sondas SSL contra el puerto 443, etc. --version-light (Activar modo ligero) Éste es un alias conveniente para --version-intensity 2. Este modo ligero hace que la detección de versiones sea más rápida pero también hace que sea menos probable identificar algunos servicios. 1. El siguiente comando consulta el estado de los puertos y los servicios que ofrecen. Observar la Figura 35 nmap -v 192.168.3.6 Figura 35. Resultado obtenido por la ejecución del comando Nmap 2. Aspectos más importantes del resultado obtenido en el comando anterior: Starting Nmap 5.21 ( http://nmap.org ) at 2010-04-28 10:34 Hora est. del Pacífico Initiating ARP Ping Scan at 10:34 Scanning 192.168.3.6 [1 port] Completed ARP Ping Scan at 10:34, 0.17s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 10:34 Scanning 192.168.3.6 [1000 ports] Discovered open port 53/tcp on 192.168.3.6 Discovered open port 445/tcp on 192.168.3.6 Discovered open port 135/tcp on 192.168.3.6 Discovered open port 139/tcp on 192.168.3.6 Discovered open port 1025/tcp on 192.168.3.6 Discovered open port 80/tcp on 192.168.3.6 Discovered open port 1046/tcp on 192.168.3.6 Discovered open port 389/tcp on 192.168.3.6 Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port Discovered open port 464/tcp on 192.168.3.6 1040/tcp on 192.168.3.6 636/tcp on 192.168.3.6 563/tcp on 192.168.3.6 119/tcp on 192.168.3.6 1037/tcp on 192.168.3.6 3268/tcp on 192.168.3.6 88/tcp on 192.168.3.6 1027/tcp on 192.168.3.6 1045/tcp on 192.168.3.6 3269/tcp on 192.168.3.6 593/tcp on 192.168.3.6 1078/tcp on 192.168.3.6 Completed SYN Stealth Scan at 10:34, 1.33s elapsed (1000 total ports) Nmap scan report for 192.168.3.6 Host is up (0.000027s latency). Not shown: 979 closed ports PORT 53/tcp 80/tcp 88/tcp 119/tcpopen 135/tcpopen 139/tcpopen 389/tcpopen 445/tcpopen 464/tcpopen 563/tcpopen 593/tcpopen 636/tcpopen 1025/tcp 1027/tcp 1037/tcp 1040/tcp 1045/tcp STATE SERVICE open domain open http open kerberos-sec nntp msrpc netbios-ssn ldap microsoft-ds kpasswd5 snews http-rpc-epmap ldapssl open NFS-or-IIS open IIS open unknown open netsaint open unknown 1046/tcp 1078/tcp 3268/tcp 3269/tcp open open open open unknown unknown globalcatLDAP globalcatLDAPssl MAC Address: 00:0C:29:C8:8E:6E (VMware) Nmap done: 1 IP address (1 host up) scanned in 14.77 seconds Raw packets sent: 1085 (47.738KB) | Rcvd: 1001 (40.126KB) Nmap informa que el servidor tiene 21 puertos abiertos y también informa cuales son los servicios ofrecidos. Se puede observar claramente que los servicios utilizan los puertos por defecto. 3. El siguiente comando consulta el tipo de Sistema Operativo y la versión de los servicios ofrecidos nmap -sV -O 192.168.3.6 4. Aspectos más importantes del resultado obtenido del comando anterior: Starting Nmap 5.21 ( http://nmap.org ) at 2010-04-28 10:58 Hora est. del Pacífico Nmap scan report for 192.168.3.6 Host is up (0.00s latency). Not shown: 979 closed ports PORT STATE SERVICE VERSION 53/tcp 80/tcp 88/tcp 119/tcp 135/tcp 139/tcp 389/tcp 445/tcp 464/tcp 563/tcp 593/tcp open open open open open open open open open open open Microsoft DNS Microsoft IIS webserver 6.0 Microsoft Windows kerberos-sec Microsoft NNTP Service 6.0.3790.1830 Microsoft Windows RPC domain http kerberos-sec nntp msrpc netbios-ssn ldap microsoft-ds kpasswd5? snews? ncacn_http Microsoft Windows 2003 or 2008 Microsoft Windows RPC over HTTP 1.0 636/tcp 1025/tcp 1027/tcp 1037/tcp 1040/tcp 1045/tcp 1046/tcp 1078/tcp 3268/tcp 3269/tcp open open open open open open open open open open tcpwrapped msrpc ncacn_http msrpc msrpc http ssl/http msrpc ldap tcpwrapped Microsoft Windows RPC Microsoft Windows RPC over HTTP 1.0 Microsoft Windows RPC Microsoft Windows RPC IBM Tivoli Monitoring http config IBM Tivoli Monitoring http config Microsoft Windows RPC MAC Address: 00:0C:29:C8:8E:6E (VMware) Device type: general purpose Running: Microsoft Windows 2003 OS details: Microsoft Windows Server 2003 SP1 or SP2 El comando muestra detalladamente las versiones de los servicios ofrecidos y el tipo de Sistema Operativo instalado en el servidor 5. El siguiente comando realiza un sondeo del estado de los puertos TCP y UDP, buscando puerto abiertos, cerrados, filtrados y no filtrados nmap -sT -sU 192.168.3.6 6. Aspectos más importantes del resultado obtenido con el comando anterior: Starting Nmap 5.21 ( http://nmap.org ) at 2010-04-28 11:30 Hora est. del Pacífico Nmap scan report for 192.168.3.6 Host is up (0.000039s latency). Not shown: 983 closed ports, 981 filtered ports PORT STATE SERVICE 21/tcp 53/tcp 80/tcp 119/tcp open open open open ftp domain http nntp 135/tcp 139/tcp 445/tcp 464/tcp 563/tcp 593/tcp 636/tcp 1025/tcp 1037/tcp 1040/tcp 1045/tcp 1046/tcp 1078/tcp 3268/tcp 3269/tcp open open open open open open open open open open open open open open open msrpc netbios-ssn microsoft-ds kpasswd5 snews http-rpc-epmap ldapssl NFS-or-IIS unknown netsaint unknown unknown unknown globalcatLDAP globalcatLDAPssl 53/udp 88/udp 123/udp 137/udp 138/udp 389/udp 445/udp 464/udp 500/udp 1029/udp 1036/udp 1038/udp 1048/udp 1054/udp 1072/udp 3456/udp 4500/udp open open|filtered open open open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered open|filtered domain kerberos-sec ntp netbios-ns netbios-dgm ldap microsoft-ds kpasswd5 isakmp unknown unknown unknown unknown unknown unknown IISrpc-or-vat nat-t-ike Hay 3 puertos UDP abiertos y 14 puertos UDP abiertos | filtrados. Esto indica que los 14 puertos probablemente están protegidos por un firewall o por un enrutador, que tal vez tenga configuradas Listas de control de Acceso (ACLs). Referencias: - Guia de usuario de Nessus 4.2: http://www.nessus.org/nessus/ Documentación Nmap: http://nmap.org/man/es/