Nessus – Nmap - Universidad de los Andes

Anuncio
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/
Descargar