NMAP
Nmap escáner de puertos con el cual podemos obtener mucha información acerca de un host o de
un target utiliza paquetes ip raw para determinar que equipos se encuentran disponibles en una
red, también nos ofrece la posibilidad de conocer que servicios y/o sistemas operativos están
corriendo en determinado target (nombre de la aplicación y versión),también nos ofrece
información sobre el firewall o cortafuegos que está corriendo en un target así como mucha más
información de vital importancia para nuestras labores de pen testing y networking.
Cuenta con una versión grafica llamada ZENMAP bastante sencilla con la cual podemos empezar a
comprender y conocer cómo funciona nuestro escáner nmap bueno la verdad es que ya es muy
conocida esta herramienta y ya existen muchos tutos sobre cómo usarla así que tratare de ser
breve
Mostrares sus opciones en modo texto y algunos ejemplos de los diferentes tipos de scan
Y seguiremos con la versión grafica y por último en modo texto
1
Nmap
Usar: nmap [tipo(s) de scan] (opciones) {especifica un target u objetivo}
ESPEFICANDO EL TARGET
Puede ser nombres de host, direcciones ip, o direcciones wep etc
Ejemplo: scanme.nmap.org, mircrosoft.com/24, 192.168.0.1 ;10.0.0-255.1-254
-iL <nombre de archivo de entrada>: crea un archivo con la lista de los host y redes
-iR <numero de host> : elegir objetivos aleatorios
--exclude <host1(host2)(host3),…..>: excluye host /redes
--excludefile <archivo a excluir>: excluye lista de archivos
Host discovery(descubriendo los host:)
-sL: list scan - una simple lista de targets
-sn: ping scan - no hacer scan de tipo ping a los Puertos
-Pn: trata a todos los host en linea –omite alos host descubiertos
-PS/PA/PI/PY [LISTA DE PUERTOS]: TCP SYN/ACK, UDP O SCTP para descubrir determinados
puertos
-PE/PP/PM: ICMP echo, nos muestra la mascara de red la fecha y hora de la prueba de sondeo
-PO (lista de protocolo) :ip protocol ping
-n/-R: nunca resolver DNS/siempre resolver DNS (por defecto aveces)
--dns-servers <serv1*serv2+,…>: especificar servidores DNS personalizados
--system-dns: usar OS´s para resolver DNS
--traceroute trazar ruta hop a cada host
Técnicas de escaneo
-sS/sT/sA/sW/sM: TCP null, FIN, y el scan Xmas o “crismas”
--scanflags <banderas o las flags> : scan personalizado de flags tcp
-sI <zombi host [probeport]> idle scan
sY/sZ: SCTP INIT/COOKIE –ECHO scan
sO: scan de protocol ip
-b <FTP relay host>: FTP bonce scan
Especifica un Puerto y una orden para el scan:
-p <rango de puertos>: solo escanea los el rango especificado
Ejemplo : -p22; -p1-65553; -p U:53 , 111,137, T:21-25,80,139,8080,S:9
2
-F: modo rápido -escanear menos puertos que en un scan normal
-r: escanear puertos consecutivamente no aleatoriamente
--top-ports <numero>: realiza un scan en los Puertos mas comunes
--port-ratio <ratio>: escanea los puertos en la proporción determinada<ratio>
SERVICIO / Y DETECCION DE VERCION
-sV: escanea los puertos abiertos para determinar el servicio y mostrar información de la versión
--version-intensity <level>: ajusta del 0 al 9 para probar los tipos de prueba<0-5>
--version-light: limita la mayoría de las pruebas (intensidad 2)
--version-all: cada sondeo se intenta (intensidad 9)
--version-trace: muestra la versión a detalle y la actividad del scan ( debugging)
Script scan:
-sC: equivale a --script=deafault
--script=<lua scripts>:<lua scripts>es una lista separada por comas de los directorios,
Scripts- archivo o script-categorías
--script-args=<n1=v1,*n2=v2……+>: proporcionar argumentos a los scripts
--script-trace: muestra los datos enviados y recibidos
--script-updatedb: actualizar la base de datos de los scripts
Detección de OS
-O: habilitar la detección de sistema operativo
--osscan-limit: límite de detección a objetivos prometedores
--osscan-guess: intenta adivinar de maneras agresivas el OS
SINCRONIZACIÓN Y EJECUCIÓN
En las opciones que tiene <time>son en milisegundos pero puedes añadir la sintaxis
´m´ de minutos ´s´ de segundos o ´ h´ de horas ejemplo (35m) (23s)(2h)
-T<0-5>: configurar las plantillas de sincronización (entre mas alto mas rápido pero mas detectable)
--min-hostgrup/max-hostgrup<tamaño>: realiza un scan en paralelo a un grupo de host
--min-parallelism/max-parallelism <número de sondas>: sondear en paralelo
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout<time>: especifica el tiempo
de sondeo ida y vuelta
--max-retries <intentos>: realiza un número de intentos de scan a puertos silenciosos
--host-timeout<time>: dar por muerto al objetivo después del tiempo establecido
--scan-delay/--max-scan-delay <time>: ajustar el retardo entre sondas
--min-rate <numero>: enviar paquetes no inferiores a <numero> por segundo
3
--max-rate <numero>: enviar paquetes a no más de <numero> por segundo
Firewall / IDS evasión y la falsificación(spoofing)
-f; --mtu <valor>: fragmentar paquetes (opcionalmente w / dado MTU)
-D <decoy1,decoy2[,ME],….>: ocultar un análisis con señuelos
-S <IP_address>: dirección de Origen falsa
-e<iface>: especifica una interface
-g/--source-port <número de puerto>: usa un determinado número de puerto
--data-length <num>: anexar datos aleatorios para enviar los paquetes
--ip-options <opciones>: enviar los paquetes con las opciones de ip especificadas
--ttl<valor>: establece el tiempo de vida de la ip (ttl=time to live)
--spoof-mac <mac address/prefix/vendor name>: falsea tu mac address <00:00:0c:3f:01:56>
--badsum: enviar paquetes TCP / UDP / SCTP con una falsa checksum
--adler32: utilizar en desuso Adler32 vez de crc32c para SCTP checksum
OUTPUT (salida):
-oN/-oX/-oS/-oG <file>: exploracion de salidas en condicionales normales, XML, s|<rIpt
kiddi3, Y el formato para grep, respectivamente, para el nombre de archivo dado.
-oA < nombrebase>: la producción en los tres formatos principales a la vez
-v: aumentar el nivel de verbosidad (use-v o mas para mas detalles)(-v v)
-d : aumentar el nivel de depuración (use-dd o más por un mayor efecto)
--reason: mostrar la razón en la que se encuentra un Puerto en particular
--open: solo mostrar los puertos abiertos o los posiblemente abiertos
--packet-trace: mostrar todos los paquetes enviados y recibidos
--iflist: imprime una lista de las interfaces y routers (para la depuración)
--log-errors: registrar los errores / advertencias en el archivo de salida normal de formato
--append-output: anexar archivos en ves de subreponer o sobrescribir los datos de salida
especificados
--resume <nombre de archivo>: reanudar un scan abortado
--stylesheet<path/url>: hoja de estilo XSL para transformar salida de XML a HTML
--webxml: Referencia hoja de estilo formulario de nmap.org para xml más portátil
--no-stylesheet: prevenir asociación de hoja de estilo XSL w / xml de salida
MISC:
-6: habilita un scan con IPv6
4
-A: habilita la detección de os y la versión, script scanning and traceroute
--datadir <nombre del directorio>: especificar un archivo de datos de nmap personalizado
--send-eth/--send-ip: enviar tramas de paquetes por Ethernet o paquetes ip
--privileged: Asume que el usuario es totalmente privilegiada o que tiene todos los privilegios
--inprovileged: asume que el usuario carece de privilegios socket raw
-V: imprime el número de la versión
-h: el comando de ayuda
Ejemplos:
Nmap –v –A scanme.nmap.org
Nmap –v –sn 192.168.2.1/16 10.0.3.0/8
Nmap-vv –iR 10000 –pn –p 80
Bueno antes de realizar algunas actividades quiero mostrar de manera mas grafica como es que
funcionan los escáneres de puertos ya si no conocemos como se realiza esta actividad la vamos a
regar bien feo así que es mejor que seamos cautelosos en nuestro trabajo y que conozcamos a
fondo que es lo que estamos haciendo, lo quiero decir es que no podemos realizar un mapeo de
puertos deliberadamente esto nos puede delatar,
Mostrare 3 ejemplos gráficos ya que son muchos los tipos de escáner que se pueden ejecutar
Scan tipo TCP SYN
También llamada Half-open scan, es discreto y obtenemos buenos resultados aunque es un poco
lento, los firewall o IDS más comunes o básicos no lo detectan pero uno bien configurado si
Scan tipo TCP FIN
También conocido como Stealth scan es uno de los escáneres más silenciosos o discretos
En técnicas convencionales, este tipo de scan nos da muchos falsos positivos, cuando se realiza
en sistemas Windows nos genera una lista muy grande de puertos abiertos y esto se debe a la
configuración de este sistema en no responder a los paquetes tipo FIN en los puertos cerrados,
Scan tipo TCP connect
Este tipo de escáner es implementado en todos los escáneres de puertos es bastante sencillo este
intenta una conexión normal si finalizarla es decir manda SYN recibe un SYN/ACK si está abierto
Y envía un ACK, para no completar la conexión, una gran desventaja es que este scan es muy
ruidoso es decir manda solicitudes simultaneas a muchos puertos y esto genera un registro en
cualquier sistema, y pues claro que no nos conviene.
5
Local host puerto cerrado puerto abierto se envía un tipo de flag se recibe un flag
Puerto silencioso
Scan tipo TCP SYN
nmap -vv -P0 –sS 129.168.2.43
Si se transmiten las banderas de
SYN
manera correcta se determina
que el puerto está abierto
SYN/ACK
RST
Si se recibe una flag en RST
SYN
Se toma como un puerto cerrado
RST
Si no se no obtenemos ninguna
respuesta se toma como
silencioso
6
scan tipo TCP FIN
nmap -vv -P0 –sF 192.134.231.1
Local host puerto cerrado puerto abierto se envía un tipo de flag se recibe un flag
Puerto silencioso
Si no se obtiene una respuesta se
tomara como un puerto abierto en
Envía un paquete con host remoto
el flag en FIN
Si se obtiene una flag de RST
Envía un paquete con El puerto se toma como cerrado
el flag en FIN
Resivimos un rst
Si no se obtiene una respuesta se
tomara como un puerto silencioso
en host remoto
7
Scan tipo TCP connect
nmap -vv -P0 –sT 192.168.2.1
Local host puerto cerrado puerto abierto se envía un tipo de flag se recibe un flag
Puerto silencioso
Si se completa la comunicación se determina
SYN que el puerto esta abierto
SYN/ACK
ACK
Si se obtiene un RST como respuesta
SYN
indica que el puerto está cerrado
RST
Si no se recibe ningún tipo de
respuesta el puerto esta en silencio
SYN
8
Comenzamos abriendo la herramienta
Veamos la interface de nuestro zenmap
Un campo
Para el
target
Un campo
Para el tipo
de scan
En este
espacio se En este espacio se mostrara la
mostrara el información de manera mas
comando precisa
que se esta
utilizando
9
Veamos las pestañas con la información que nos arroja un análisis simple
Aquí podemos ver información sobre los puertos
Aquí veremos la topologia de la red
10
En esta ventana veremos la informacion sobre el host o el target en mi caso es un
modem de un “amigo”
Esta ultima es como el historial de los scan que hemos llevado acavo y podemos volver a
visualizarlos o a reanudarlos
11
Con zenmap es bastante sencillo aprender a usar nmap de echo podemos copiar la parte
del comando y pegarla en una Shell normal y el comando va a funcionar
Es así de simple copia y pega el comando en una shell
Ahora seguimos con los ejemplos en una terminal
12
En este comando usaremos un scan del tipo TCP SYN a un host de prueba que nos da
nmap.org, que es el scanme.org el comando será
Nmap --vv –PO –sS scanme.org
En este otro usaremos un scan del tipo TCP FIN
El comando será
Nmap –vv –PO -- sF scanme.org
13
En este caso usaremos el siguiente comando
Nmap –vvv –O - - open - - port-ratio 0-65 scanme.org
Con la sintaxis –vvv aumentamos el nivel de detalle
Con la sintaxis - - open le indicamos que solo nos muestre los puertos abiertos
Con la sintaxis - - port-ratio le indicamos que solo escanee en una porción
determinada
En este caso solo es la opción –dd que es la opción debugging o la opción depuración
La opción - - versión-light limitara el nivel de sondeo a nivel 2 y listara los puertos
La opción –sS para realizar un scan tipo TCP SYN
14
Bueno hasta aquí este tutorial espero les sirva y les sea de utilidad para sus pentesting
Recuerda que si te cuesta trabajo entenderlo así puedes ver el video de implementación
que está en mi canal así como ver los demás tutoriales para que tus conocimientos sean
mucho más grandes también puedes encontrar más información en mi blog.
Para más información sobre hacking programación y diseño gráfico visita a esta gran
comunidad y amplia tus conocimientos.
http://underc0de.org/
http://www.antrax-labs.org/
http://codenameaika.blogspot.mx/
Síguenos en las redes sociales
Facebook
https://www.facebook.com/codenameaika
https://www.facebook.com/Underc0de
youtube
http://www.youtube.com/channel/UCRSdUDq0Mh4-M9vS8dTsgww
15
16