Explora redes, determina el nombre del nodo y escanea puertos. Se debe usar en modo root
Su sintaxis es de la forma:
nmap [Tipos(s)de escaneo] [Opciones]
Algunos de sus Tipos(s)de escaneo son:
-sTllamada de sistema connect() se usa para establecer una conexión con todos los puertos.
-sSno se abre una conexión TCP completa. Se envía un paquete SYN, si llega un SYN | ACK se envía una RTS para cerrar la conexión.
-sPSi únicamente se necesita saber que nodos se encuentran activos.
-sUSe usa para saber que puertos UDP están abiertos.
-PIICMP echo: Este es el ping de toda la vida. ICMP echo request e ICMP echo reply.
-PTTCP ACK: Envío de paquetes TCP ACK. Si se obtiene respuesta RST, el host está activo.
-PSTCP SYN: Envío de paquetes TCP SYN. Si se obtiene respuesta RST o SYN/ACK, el host está activo.
-PBTCP ACK e ICMP echo en paralelo
-PRbusca hosts vivos a través de pings arp
Alguna de sus opciones son:
-Odetección del fingerprint (detecta el SO) no es muy bueno (nmap -vv -P0 -O).
-P0ó -Pn No realizar ping, no realiza la etapa de descubrimiento.
-Testablecemos el retardo entre unos paquetes y otros (-T4 espera 4 segundos entre uno y otro).
-nno resolver nombre del host.
-Rresolver el nombre del host.
-sVSondear puertos abiertos, para obtener información de servicio/versión.
-sLtipo de descubrimiento que tan solo lista los nodo, sin enviar paquetes de ningún tipo a los objetivos.
--iflistimprime la lista de interfaz y el enrutamiento por defecto de cada interfaz.
-vactiva el modo de información ampliada (admite más de una v).
Rango de puertos
Por defecto solo se escanean los puertos comprendidos entre el 1 y el 1024 así como los que figuran en /etc/services
nmap -P0 -vv -sS -p 80 192.168.1.8 solo el puerto 80
nmap -P0 -vv -sS -p 0-65535 192.168.1.8 para un rango (1-1024).
nmap -p 21,22,23,25,80,110,135,139,443,445 192.168.1.129 especifico los puertos TCP.
nmap -P0 -vv -sS -p U:53,111,137,T:21-25,80,139,8080 especifico los puertos TCP y UDP.
Ejemplos de uso
nmap -sT -n -p- -P0 172.25.214.209 analizando con sondeo TCP los 65535 puertos, sin enviar ping previo (por que pueden estar bloqueados los ping) y sin búsqueda inversa DNS, esto hace que este escaneo sea muy rápido.
nmap -T5 -F -O -iL entrada.txt realiza un escaneo muy rápido de los nodos listados (uno por línea) en entrada.txt.
nmap -sV -n -P0 172.25.214.110 -p 22 detectar que servicio corre en el puerto 22 del nodo 172.25.214.110 y su versión.
nmap -vv -P0 -sF 192.168.1.8 FIN escan, pasan desapercibidos en la gran mayoría de los firewalls (NO windows).
nmap -vv -PT 192.168.1.8 ACK scan para determinar qué puertos están abiertos y cuáles silenciosos (se usa luego del FIN escan)- Si Windows
nmap -vv -P0 -sN 192.168.1.8 Null scan, es similar al escaneo FIN, pero más indetectables (NO windows).
nmap -vv -P0 -sX 192.168.1.8 Xmas scan, otra alternativa del Null scan (NO windows).
nmap -vv -P0 -sT -I 192.168.1.8 reverse Ident, si vien la opcion -I no anda su resultado es EXELENTE en windows.
nmap -vv -P0 -sS -f 192.168.1.8 Fragmentación TCP, es el más INDETECTABLE y es muy bueno (rapido en Win).
nmap -P0 -vv -sS -F 192.168.1.8 El más rápido solo escalea los servicios listados en /etc/services. (bueno acompañarlo con la opción -O).
namp -A -v 192.168.1.8 para ver los puertos abiertos y especificaciones del servidor..
host -l servidor.com | cut -d " " -f 4 | ./nmap -v -iL - hace una transferencia de DNS de zona para descubrir los servidores en servidor.com y luego pasar las direcciones IP a nmap.
======================================================================
Tipos de escaneo en función de los paquetes
Si no queremos usar la técnica del ping y el paquete ACK para comprobar el equipo o la red hay varias opciones diferentes:
solo 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
Latencia en la red
Si la red a escanear es lenta, tiene mucho tráfico o somos nosotros los que generamos gran cantidad de tráfico, el tiempo de respuesta aumentará. Para mitigar estos inconvenientes podemos ajustar el tiempo de búsqueda que emplea nmap. La opción -T indica la política de tiempo a usar. Existen 6 niveles con números entre 0-5, cuanto más alto más rápido. Si no se especifica se usa -T3
$ nmap -T5 192.168.1.0/24
Escanearía la red 192.168.1.0 en modo Insane, muy rápido…
Más opciones de escaneo serian:
–max-hostgroup 150 (enviar 150 peticiones simultaneas de escaneo)
–scan-delay2s (retardo entre escaneo de 2 segundos)
-host-timeout500m (tiempo empleado para escanear cada host de 500 milisegundos)
Descubriendo servicios en un host
Nmap por defecto escanea los puertos menores de 1024 más los que aparecen en el fichero nmap-services y que son mayores de 1024. Para solo escanear un determinado nº de puertos usaremos la opción -p
$ nmap -p 25,80,1000-4000 192.168.1.1
Con esto escaneamos el puerto 25,80 y del 1000 al 4000 del host 192.168.1.1
Hay varios estados posibles para un puerto. Si hay algún servicio escuchando en él, el estado es OPEN. Si no hay servicios en ese puerto puede respnder con un mensaje ICMP o simplemente con nada. En Linux estas respuestas vienen dadas por las reglas de IPTABLES REJECT (rechazar el paquete enviando un mensaje ICMP informando que el puerto esta cerrado) o DROP (tirar o ignorar el tráfico). En caso de que la petición sea ignorada Nmap mostrará el puerto como filtered, ya que no puede determinar si hay algún servicio o no en ese puerto.
También es posible que el equipo a sondear tenga los puertos abiertos pero tenga la política de no responder al ping ni al TCP ACK que usa Nmap para saber si el equipo está levantado. En ese caso el parámetro -P0 escaneará el objetivo asumiendo que el equipo está activo.
Sondeos sigilosos
SYN: Se trata en enviar un paquete TCP SYN al puerto a comprobar, y si hay algún servicio activo, el sistema escaneado continuará con la sequencia de conexión enviando un paqueteTCP/SYN. En este punto Nmap tendría que proseguir enviando el ACK, pero no continúa con la secuencia de conexión y al no consumarse la conexión no queda registrado en los logs.
$ nmap -PS20 192.168.1.0/24
Una técnica parecida es enviar una secuencia incorrecta de paquetes TCP con la intención de valerse de los mensajes recogidos para obtener información. Por ejemplo, enviar un paquete TCP FIN que corresponde al final de una conexión o enviar paquetes sin ningún flag activado. Las respuestas pueden servir para identificar los puertos abiertos o el sistema operativo.
Fingerprinting
Nmap puede averiguar el sistema operativo del objetivo usando las pequeñas diferencias en la implementación de los protocolos. Aunque siguen el mismo estándard al programar los sistemas, existen algunas disimilitudes que usa Nmap para determinar el sistema operativo para ver como responde a ciertas secuencias TCP/IP. El atributo es -O
$ sudo nmap -O 192.168.1.33
Interesting ports on 192.168.1.33:
Not shown: 1676 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1110/tcp open nfsd-status
MAC Address: 00:18:DE:A0:B2:C9 (Unknown)
Device type: general purpose
Running: Microsoft Windows 2003/.NET|NT/2K/XP
OS details: Microsoft Windows 2003 Server or XP SP2
Nmap finished: 1 IP address (1 host up) scanned in 3.451 seconds
La otra técnica de Fingerprinting se usa para comprovar las versiones del software que escucha en los puertos, es decir el servidor ftp, la versión de apache, etc… El parámetro es -sV
$ sudo nmap -sV -O -p 22,25,3306 localhost
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-06-27 18:43 CEST
Warning: OS detection will be MUCH less reliable because we did not find at least 1 open and 1 closed TCP port
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0)
25/tcp open smtp Exim smtpd 4.63
3306/tcp open mysql MySQL 5.0.32-Debian_7etch1-log
Device type: general purpose|printer|broadband router|telecom-misc
Running (JUST GUESSING) : Linux 2.4.X|2.5.X|2.6.X|2.3.X (95%), Lexmark embedded (93%), D-Link embedded (93%), Wooksung embedded (93%)
Aggressive OS guesses: Linux 2.4.0 - 2.5.20 (95%), Linux 2.4.18 (95%), Linux 2.4.18 - 2.4.20 (x86) (95%), Linux 2.4.20 (X86, Redhat 7.3) (95%), Linux 2.4.21 (x86, RedHat) (95%), Linux 2.4.22 (SPARC) (95%), Linux 2.4.30 (95%), Linux 2.4.7 - 2.6.11 (95%), Linux 2.5.25 - 2.6.8 or Gentoo 1.2 Linux 2.4.19 rc1-rc7 (95%), Linux 2.6.0-test10 (x86) (95%)
No exact OS matches for host (test conditions non-ideal).
Service Info: Host: xxxxx.xxxxxxxx; OS: Linux
Nmap finished: 1 IP address (1 host up) scanned in 10.892 seconds
Esto nos muestra información bastante valiosa sobre las versiones de SSH, Exim y MySQL así com el nombre y el dominio. También ha intentado determinar la versión del sistema operativo, pero no concreta la distribución usada (95% Gentoo) ni la versión del kernel. En la anterior prueba contra un Windows XP, si que es capaz de obtener información referente al sistema operativo, y en menos tiempo.
Uso de señuelos
nmap -P0 -vv -sS -Dsñ1.sñ1.sñ1.sñ1,sñ2.sñ2.sñ2.sñ2,[...],MI_IP,[...],sñn.sñn.sñn.sñn xxx.xxx.xxx.xxx
nmap -P0 -vv -sS -D192.168.1.1,192.168.1.3,192.168.1.10,192.168.1.9 192.168.1.8
Software con interfaz grafica : apt-get install zenmap
Hacer un traceroute a google
nmap -sn --traceroute google.com
===============================================
Nmap es software libre. Y basicamente existe una version para cada sistema operativo que conozcas: MacOSX, Microsoft Windows, GNU/Linux, OpenBSD, Solaris, etc. Funcionamiento de Nmap Es capaz se utilizar diferentes técnicas de evasión de detección como escaneo sealth. Soporta escaneos sobre ciertos puertos específicos, entre rangos IP específicos, uso se paquetes Null, FIN, Xmas y ACK, además SYN que es el paquete por defecto. Esto significa que se mandan cierto tipo de paquetes a cada puerto y estos responderán con alguna señal que permitirá a scanner encontrar versiones y servicios. Conceptos importantes ¿Que es un puerto?: Un puerto es una zona en la que dos ordenadores (hosts) intercambian información. ¿Que es un servicio?: Un servicio es el tipo de información que se intercambia con una utilidad determinada como ssh o telnet. ¿Que es un Firewall?: Un firewall acepta o no el trafico entrante o saliente de un ordenador. ¿Que son paquetes SYN?: Así por encima, pueden ser paquetes que abren un intento de establecer una conexión TCP. Debemos tener en cuenta que para Nmap un puerto puede estar de tres maneras: open: el puerto es accesible y hay un demonio escuchando. closed: el puerto es accesible pero no hay un demonio escuchando. filterd: el puerto no es accesible, un firewall filtra el puerto. Instalacion en Linux Siempre que este basado en Debian o Ubuntu se instala con un simple comando: sudo apt-get install nmap Si usas otra distro podes buscarlo en los repositorios de tu distro y 100% seguro que esta. Y si usas algun otro sistema operativo click AQUÌ y bajalo. Como usar Nmap La forma mas basica de usarlo es escribir en una consola algo como: nmap 192.168.1.1 Es decir el comando nmap seguido de una ip o dominio. Este uso tan basico solo nos devuelve que puertos estan abiertos tras un scan simple. Dependiendo de la seguridad de la ip que se escanee puede que nos bloquee el escaneo si lo hacemos de esa manera. Una forma mas discreta de hacerlo que no deja registros en el sistema es asi: nmap –sS 192.168.1.1 Cabe resaltar que existen varios tipos de modificadores de scan lo mas importante es lograr identificar la combinación mas apropiada, los modificadores que se pueden utilizar para realizar el scan son los siguientes: sT se intenta hacer un barrido de puertos por TCP la ventaja de esta técnica es que no requiere usuarios privilegiados, opuesto a sS sU se intenta hacer un barrido de puertos por UDP, es útil cuando se intentan descubrir puertos de nivel superior que pueden estar detrás de un firewall, lenta pero permite hacer auditorias mas exactas. sA se usan mensajes de ACK para lograr que sistema responda y así dterminar si el puerto esta abierto algunos Firewall no filtran estos Mensajes y por ello puede ser efectivo en algunos casos. sX puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red sN puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red sF puede pasar algunos Firewall con malas configuraciones y detectar servicios prestándose dentro de la red sP este modificador ayuda a identificar que sistemas están arriba en la red (en funcionamiento) para luego poder hacer pruebas mas especificas, similar a Ping. sV intenta identificar los servicios por los puertos abiertos en el sistema esto permite evaluar cada servicio de forma individual para intentar ubicar vulnerabilidades en los mismos. sO con esta opción se identifica que protocolos de nivel superior a capa tres (Red o Network) responden en el sistema, de esta manera es mas fácil saber las características de la red o el sistema que se intenta evaluar. Adicionalmente a las opciones de scan se pueden especificar opciones que permiten explotar mas aun la herramienta, dentro de las opciones que mas frecuentemente se usan están las de evitar el Ping o mostrar todos los resultados en pantalla al máximo detalle, veamos cuales son estas opciones: b Para determinar si la victima es vulnerable al “bounce attack” n no hace conversiones DNS para hacer el -sP mas rapido vv hacer la salida de la herramienta detallada en pantalla f habilita la fracmentacion de esta forma es mucho mas complejo para un un firewall u otro tipo de sistema lograr hacer el rastreo. oN redirige la salida a un archivo oX redirige la salida a un archivo XML –stylesheet con esta opción se usa una hoja de estilo que hace mas fácil la lectura de la salida en XML PO indica que no se debe hacer ping a los sistemas objetivo antes de iniciar el análisis útil para evitar el bloque en algunos Firewall p se usa para especificar puertos de análisis o rango de puertos. T se usa para especificar la velocidad general del scan de esta forma se puede pasar inadvertido en algunos sistemas que detectan la velocidad de los paquetes entrantes. Bien! Ya sin mas preámbulos comenzamos: 1- Obtener información de un host remoto y detección del SO: nmap -sS -P0 -sV -O [dirección] -sS =escaneo TCP SYN (o escaneo sigiloso) -P0 =no se envían pings ICMP -sV =detecta las versiones -O =se intenta identificar el Sistema Operativo Otras opciones: -A =habilita OS fingerprinting y detección de versión -v =usar dos veces -v para obtener mas detalles 2- Listar servidores con un puerto especifico abierto: nmap -sT -p 80 -oG – 192.168.1.* | grep open Cambiar el argumento -p por el numero del puerto. 3- Detectar IP’s activas en una red: nmap -sP 192.168.0.* Otra opción para subnets es: nmap -sP 192.168.0.0/24 4- Hacer ping a un rango de IP’s: nmap -sP 192.168.1.100-254 Nmap acepta una gran variedad de rangos, notación de direcciones, objetivos múltiples, etc. 5- 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 6- Escanear en busca del virus Conficker: nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254 Reemplazar 192.168.0.1-254 con las IP’s que se quiere escanear. 7- 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 Funciona incluso en grandes redes. 8- Crear un señuelo durante el escaneo de puertos para evitar ser detectado: sudo nmap -sS 192.168.0.10 -D 192.168.0.2 Escanea los puertos del nodo 192.168.1.10 mientras spoofea la IP 192.168.0.2 como nodo atacante (esta IP debe estar activa) así parecerá que el escaneo se ejecuta desde la IP192.168.0.2 (la ip spoofeada). Comprobar los logs en /var/log/secure para comprobar si ha funcionado correctamente. 9- 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. 10- Cuántos nodos con Linux y cuántos con Windows hay en una red: sudo nmap -F -O 192.168.0.1-255 | grep “Running: ” > /tmp/os; echo “$(cat /tmp/os | grep Linux | wc -l) Linux device(s)”; echo “$(cat /tmp/os | grep Windows | wc -l) Window(s) devices
0 comentarios :