Nmap es una herramienta de código abierto para exploración de red y auditoría de seguridad. Se diseñó para analizar rápidamente grandes redes, aunque funciona muy bien contra equipos individuales. Nmap utiliza paquetes IP "crudos" («raw», N. del T.) en formas originales para determinar 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 así como docenas de otras características. Aunque generalmente se utiliza Nmap en auditorías 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 mantiene activos. scan ¿Donde lo consigo? Nmap está incluido by default en distros enfocadas a pentest como Backtrack, pero normalmente se encuentra en los repositorios de la mayoría de distros, y para otros sistemas como Solaris,Windows, Mac OS X, FreeBSD, NetBSD y OpenBSD pueden descargar los binarios o el source code para compilarlo en: http://nmap.org/download.html spoofing Cómo se usa? Nmap se usa generalmente desde la linea de comandos, aunque también está disponible Zenmap, que es una interfaz gráfica para Nmap. La sintaxis de nmap es muy sencilla y es la siguiente: #nmap [tipos de análisis] [Opciones] [especificación de objetivos] noten el símbolo "#" delante de nmap, esto significa que se debe ejecutar como root para poder usar ciertas funciones como el OS fingerprinting. nmap Resumen de Opciones ESPECIFICACIÓN DE OBJETIVO: Se pueden indicar nombres de sistema, direcciones IP, redes, etc. Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL Lee una lista de sistemas/redes del archivo. -iR : Selecciona objetivos al azar --exclude Excluye ciertos sistemas o redes --excludefile Excluye los sistemas indicados en el fichero 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 los puertos indicados -PE/PP/PM: Solicita un análisis ICMP del 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 : 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 : Personalizar los indicadores TCP a utilizar -sI : Análisis pasivo («Idle», N. del T.) -sO: Análisis de protocolo IP -b : Análisis por rebote FTP ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS: -p : Sólo sondear los puertos indicados Ej: -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 : 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) --version-trace: Presentar actividad detallada del análisis (para depurar) DETECCIÓN DE SISTEMA OPERATIVO -O: Activar la detección de sistema operativo (SO) --osscan-limit: Limitar la detección de SO a objetivos prometedores --osscan-guess: Adivinar el SO de la forma más agresiva TEMPORIZADO Y RENDIMIENTO: -T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos) --min-hostgroup/max-hostgroup : Paralelizar los sondeos --min-parallelism/max-parallelism : Paralelización de sondeos --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : Indica el tiempo de ida y vuelta de la sonda --max-retries : Limita el número máximo de retransmisiones de las sondas de análisis de puertos --host-timeout : Abandonar un objetivo pasado este tiempo --scan-delay/--max-scan-delay : Ajusta el retraso entre sondas EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS: (no hace magia, pero es muy util) -f; --mtu : fragmentar paquetes (opc. con el MTU indicado) -D : Disimular el análisis con señuelos N. del T.: «ME» es «YO» mismo. -S : Falsificar la dirección IP origen -e : Utilizar la interfaz indicada -g/--source-port : Utilizar el número de puerto dado --data-length : Agregar datos al azar a los paquetes enviados --ttl : Fijar el valor del campo time-to-live (TTL) de IP --spoof-mac : Falsificar la dirección MAC --badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa SALIDA: -oN/-oX/-oS/-oG : Guardar el sondeo en formato normal, XML, s|: Guardar en los tres formatos principales al mismo tiempo -v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto) -d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9) --packet-trace: Mostrar todos los paquetes enviados y recibidos --iflist: Mostrar interfaces y rutas (para depurar) --append-output: Agregar, en vez de sobreescribir, a los archivos indicados con -o. --resume : Retomar un análisis abortado/detenido --stylesheet : Convertir la salida XML a HTML según la hoja de estilo XSL indicada --webxml: Referenciar a la hoja de estilo de Insecure.Org para tener un XML más portable --no_stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL MISCELÁNEO: -6: Habilitar análisis IPv6 -A: Habilita la detección de SO y de versión --datadir : 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 -h: Muestra esta página resumen de la ayuda. Nmap: escaneo de redes y hosts Ejemplos: Escaneo Convencional nmap -sP 192.168.1.0/24 Esto escaneará las 255 direcciones de la red 192.168.1.0 Envia un ping (ICMP echo request) y un paquete TCP ACK al puerto 80. Si el destino contesta con otro ping o con un paquete TCP RST significa que está operativo. Escaneo en función de los paquetes sólo el ping: nmap -PE 192.168.1.0/24 sólo el paquete ACK dirigiéndolo a un puerto determinado, p. ej. el 20 nmap -PA20 192.168.1.0/24 paquetes SYN al puerto 20 nmap -PS20 192.168.1.0/24 paquetes UDP al puerto 20 nmap -PU20 192.168.1.0/24 paquetes timestamp nmap -PP 192.168.1.0/24 paquetes netmask request nmap -PM 192.168.1.0/24 paquetes null nmap -sN 192.168.1.100 paquetes Xmas nmap -sX 192.168.1.100 host Detección de versiones de Servicios y Sistema Operativo: Detectar el sistema operativo: nmap -O 192.168.1.100 Detectar el SO y las versiones de software que estan escuchando en los puertos especificados nmap -sV -O -p 22,25,3306 192.168.1.100 Detectar el SO y las versiones de los servicios corriendo, pero con escaneo sigiloso: nmap -sS -P0 -sV -O 192.158.1.100 scan Maneras interesantes de usar nmap: Listar servidores con un puerto especifico abierto nmap -sT -p 80 -oG – 192.168.1.* | grep open Encontrar IP’s no usadas en una subnet nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp Escanear red en busca de AP falsos nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8 usar direcciónes IP como carnada mientras se escanea para no ser detectado (la victima creerá que esta siendo escaneada por varias máquinas) nmap -sS 192.168.1.100 -D 192.168.1.55,192.168.1.54,192.168.1.34 (lo que está después de la -D son las IP's a usar como carnada, que por cierto, deben estar activas) Suplantar una dirección IP durante el escaneo: nmap -e -S -PN (la IP a suplantar debe estar activa) Listar los registros DNS inversos de una subred nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==”not”)print”(“$2″) no PTR”;else print$3″ is “$2}’ | grep ‘(‘ Este comando hace un reverse DNS lookup en una subred, se crea una lista con las direcciones IP de los registros PTR en la subred indicada. Se puede insertar la subred en notación CDIR (ejemplo: /24 para la Clase C). Puedes agregar “-dns-servers x.x.x.x” después del parámetro “-sL” si quieres realizar el listado sobre un servidor DNS especifico. spoofing Usando Nmap junto con Metasploit Se puede usar Nmap junto con Metasploit framework para realizar un ataque automatizado conocido como autopwn: =[ metasploit v3.7.0-release [core:3.7 api:1.0] + -- --=[ 684 exploits - 355 auxiliary + -- --=[ 217 payloads - 27 encoders - 8 nops msf > db_create [*] Creating a new database instance... [*] Successfully connected to the database [*] File: /home/jorgepastor66/.msf3/sqlite3.db msf > db_connect [*] Successfully connected to the database [*] File: /home/jorgepastor66/.msf3/sqlite3.db msf > db_nmap -p 445 -sS 10.12.1-2.0-255 con esto guarda los resultados en una base de datos y luego se usa el siguiente comando: msf> db_autopwn -p -e -b entonces se iniciará la función autopwn, que lanza todos los exploits disponibles a los puertos de los hosts escaneados en nmap hasta que consigue vulnerarlos. nmap Referencias: http://nmap.org/man/es/man-briefoptions.html http://foro.elhacker.net/hacking_basico/nmap_metasploit_pasar_resultado_de_escaneo_de_nmap_al_msf-t279852.0.html http://www.thewilfamily.com/hacking/nmap-a-fondo-escaneo-de-redes-y-hosts http://foro.elhacker.net/hacking_basico/maneras_interesantes_de_usar_nmap-t314304.0.html;new