1. 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
2. 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 Escanear puertos
o Escanear vulnerabilidades en la red
o Auditoria en la configuración de plataformas Windows y Unix
o 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.
3. 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. 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”.
5. 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.
6. 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
7. 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
programaTenableNessusconf, 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
8. 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
9. 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
10. 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 programaTenableNessus nessusCA 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
programaTenableNessus>, ejecutar el siguiente comando y aceptar la creación del
usuario admin2 con privilegios de administrador:
C:Archivos de programaTenableNessus> 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 : admin2
Password : ***********
This user will have 'admin' privileges within the Nessus server Rules :
Is that ok ? (y/n) [y] y
User added
11. 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:
12. 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
13. 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.
14. 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_MACHINESYSTEMCurrentControlSetControlSecurePipeServerswinreg. Si no
existe debe ser creada con el siguiente procedimiento:
- Abrir el editor de registro (regedit) y ubicarse en la clave
“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl”
- 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”
15. - 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
16. Figura 17. Adición del grupo “Nessus Test Accounts” a la clave winreg
Figura 18. Verificación de permisos al grupo “Nessus Test Account”
17. 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
18. 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
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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.
29. - 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
--spoof-
mac <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)
30. 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.
31. 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
32. 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)
33. 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.
34. 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
35. Discovered open port 464/tcp on 192.168.3.6
Discovered open port 1040/tcp on 192.168.3.6
Discovered open port 636/tcp on 192.168.3.6
Discovered open port 563/tcp on 192.168.3.6
Discovered open port 119/tcp on 192.168.3.6
Discovered open port 1037/tcp on 192.168.3.6
Discovered open port 3268/tcp on 192.168.3.6
Discovered open port 88/tcp on 192.168.3.6
Discovered open port 1027/tcp on 192.168.3.6
Discovered open port 1045/tcp on 192.168.3.6
Discovered open port 3269/tcp on 192.168.3.6
Discovered open port 593/tcp on 192.168.3.6
Discovered open port 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 STATE SERVICE
53/tcp open domain
80/tcp open http
88/tcp open kerberos-sec
119/tcpopen nntp
135/tcpopen msrpc
139/tcpopen netbios-ssn
389/tcpopen ldap
445/tcpopen microsoft-ds
464/tcpopen kpasswd5
563/tcpopen snews
593/tcpopen http-rpc-epmap
636/tcpopen ldapssl
1025/tcp open NFS-or-IIS
1027/tcp open IIS
1037/tcp open unknown
1040/tcp open netsaint
1045/tcp open unknown
36. 1046/tcp open unknown
1078/tcp open unknown
3268/tcp open globalcatLDAP
3269/tcp open 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 open domain Microsoft DNS
80/tcp open http Microsoft IIS webserver 6.0
88/tcp open kerberos-sec Microsoft Windows kerberos-sec
119/tcp open nntp Microsoft NNTP Service 6.0.3790.1830
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
389/tcp open ldap
445/tcp open microsoft-ds Microsoft Windows 2003 or 2008
464/tcp open kpasswd5?
563/tcp open snews?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
37. 636/tcp open tcpwrapped
1025/tcp open msrpc Microsoft Windows RPC
1027/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
1037/tcp open msrpc Microsoft Windows RPC
1040/tcp open msrpc Microsoft Windows RPC
1045/tcp open http IBM Tivoli Monitoring http config
1046/tcp open ssl/http IBM Tivoli Monitoring http config
1078/tcp open msrpc Microsoft Windows RPC
3268/tcp open ldap
3269/tcp open tcpwrapped
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 open ftp
53/tcp open domain
80/tcp open http
119/tcp open nntp
38. 135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
464/tcp open kpasswd5
563/tcp open snews
593/tcp open http-rpc-epmap
636/tcp open ldapssl
1025/tcp open NFS-or-IIS
1037/tcp open unknown
1040/tcp open netsaint
1045/tcp open unknown
1046/tcp open unknown
1078/tcp open unknown
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
53/udp open domain
88/udp open|filtered kerberos-sec
123/udp open ntp
137/udp open netbios-ns
138/udp open|filtered netbios-dgm
389/udp open|filtered ldap
445/udp open|filtered microsoft-ds
464/udp open|filtered kpasswd5
500/udp open|filtered isakmp
1029/udp open|filtered unknown
1036/udp open|filtered unknown
1038/udp open|filtered unknown
1048/udp open|filtered unknown
1054/udp open|filtered unknown
1072/udp open|filtered unknown
3456/udp open|filtered IISrpc-or-vat
4500/udp open|filtered 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).
39. Referencias:
- Guia de usuario de Nessus 4.2: http://www.nessus.org/nessus/
- Documentación Nmap: http://nmap.org/man/es/