Tutorial Nmap en Español
Qué es NMAP
Nmap es una herramienta en forma de comando de red que funciona dentro de sistemas Linux, aunque con un poco de astucia también la podemos hacer funcionar en Windows y Mac. Nmap es la mejor utilidad que existe para el escaneo y exploración de puertos, así como el reconocimiento del sistemas operativo que opera bajo la interfaz de red correspondiente.
A su vez en este tutorial nmap en español utilizaremos el comando tcpdump, que es un herramienta en línea de comandos cuya utilidad principal es analizar el tráfico que circula por la red. Permite al usuario capturar y mostrar a tiempo real los paquetes transmitidos y recibidos en la red a la cual el ordenador está conectado.
A continuación muestro una explotación de puertos de una IP cualquiera:
Ejemplo de escaneo con NMAP | Tutorial Nmap en Español
root@ubuntu nmap 91.121.155.113 Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-08 16:26 CEST Nmap scan report for ns202552.ovh.net (91.121.155.113) Host is up (0.077s latency). Not shown: 979 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 25/tcp filtered smtp 53/tcp open domain 80/tcp open http 106/tcp open pop3pw 110/tcp open pop3 143/tcp open imap 443/tcp open https 445/tcp filtered microsoft-ds 465/tcp filtered smtps 587/tcp filtered submission 993/tcp open imaps 995/tcp open pop3s 1935/tcp open rtmp 3306/tcp open mysql 8086/tcp open d-s-n 8443/tcp open https-alt
Aquí observamos todos los puertos operativos bajo la interfaz de red e IP correspondiente. De este sencillo comando obtenemos la siguiente información:
. El correo cuelga de este servidor y el smtp de salida está filtrado.
. Es un servidor web con panel plesk.
. Este servidor resuelve las peticiones dns del dominio
. Tiene acceso ssh y ftp sin filtrar! UPSSS…
. Cuelga de el un servicio de base de datos.
. Etc.
En un principio Nmap se creo con objetivos «hacker», pero poco después se convirtio en una utilidad esencial para la seguridad en las redes, auditorias…etc. Y por supuesto se puede utilizar para protegernos, ya que podrás conocer tus debilidades y repararlas.
<
Ejemplos de uso de Nmap | Exploración de los puertos TCP
Ataque TCP connect scan
root@ubuntu:~$ nmap localhost Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-06 01:17 PDT Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1. Interesting ports on localhost (127.0.0.1): Not shown: 997 closed ports PORT STATE SERVICE 25/tcp open smtp 631/tcp open ipp 3128/tcp open squid-http Nmap done: 1 IP address (1 host up) scanned in 0.11 second
Puerto abierto 3128
NMAP
–Tipo de ataque que escucha puertos TCP
–La opción del nmap “-PO” nos resume la información de salida de la terminal
–La opción –sT nos especifica el tipo de escaneo connect scan.
–La opción –p nos permite escoger el puerto a escanear
–Este ataque no se suele detectar como ataque porque se completa la conexión.
root@ubuntu:~$ sudo nmap -P0 -sT -p 3128 localhost Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-06 01:18 PDT Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1. Interesting ports on localhost (127.0.0.1): PORT STATE SERVICE 3128/tcp open squid-http Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
TCPDUMP
–enviamos un flag [S] con un byte de sincronización desde un puerto aleatorio(48897) y el puerto 3128 nos contesta con un flag[S] + byte ack
–desde el mismo puerto aleatorio le contestamos con un flag [ ]+ack1 y un flag [R] para cerrar el ataque.
root@ubuntu:~$ sudo tcpdump -i lo 01:18:48.444201 IP localhost.48897 > localhost.3128: Flags [S], seq 3383339335, win 32792, options [mss 16396,sackOK,TS val 1265094 ecr 0,nop,wscale 6], length 0 01:18:48.444214 IP localhost.3128 > localhost.48897: Flags [S.], seq 3381811475, ack 3383339336, win 32768, options [mss 16396,sackOK,TS val 1265094 ecr 1265094,nop,wscale 6], length 0 01:18:48.444228 IP localhost.48897 > localhost.3128: Flags [.], ack 1, win 513, options [nop,nop,TS val 1265094 ecr 1265094], length 0 01:18:48.444495 IP localhost.48897 > localhost.3128: Flags [R.], seq 1, ack 1, win 513, options [nop,nop,TS val 1265094 ecr 1265094], length 0
Puerto cerrado 52
NMAP
–Tipo de ataque que escucha puertos TCP
–La opción del nmap “-PO” nos resume la información de salida de la terminal
–La opción –sT nos especifica el tipo de escaneo connect scan.
–La opción –p nos permite escoger el puerto a escanear
–Este ataque no se suele detectar como ataque porque se completa la conexión.
root@ubuntu# nmap -PO -sT -p 52 localhost Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-12 23:41 PDT Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1. mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers Interesting ports on localhost (127.0.0.1): PORT STATE SERVICE 52/tcp closed xns-time Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
TCPDUMP
–enviamos un flag [S] con un byte de sincronización desde un puerto aleatorio(33640) y el puerto 52 nos contesta con un flag[R] reset
root@ubuntu:~$ sudo tcpdump -i lo tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 23:41:47.024270 IP localhost.33640 > localhost.52: Flags [S], seq 3410572728, win 32792, options [mss 16396,sackOK,TS val 4294938234 ecr 0,nop,wscale 6], length 0 23:41:47.024360 IP localhost.52 > localhost.33640: Flags [R.], seq 0, ack 3410572729, win 0, length 0
Ataque TCP SYN scans
Puerto abierto 3128
NMAP
–Tipo de ataque que escucha puertos TCP
–La opción del nmap “-PO” nos resume la información de salida de la terminal
–La opción –sS nos especifica el tipo de escaneo Syn scan
–La opción –p nos permite escoger el puerto a escanear
–Este ataque no incluye ack de confirmación
root@ubuntu:~$ sudo nmap -P0 -sS -p 3128 localhost Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-06 00:59 PDT Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1. Interesting ports on localhost (127.0.0.1): PORT STATE SERVICE 3128/tcp open squid-http Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
TCPDUMP
–enviamos un flag [S] con un byte de sincronización desde un puerto aleatorio(34217) y el puerto 3128 nos contesta con un flag[S] + byte ack
–desde el mismo puerto aleatorio le contestamos con un flag [ R]
root@ubuntu:~$ sudo tcpdump -i lo 01:01:03.199731 IP localhost.34217 > localhost.3128: Flags [S], seq 2309594195, win 1024, options [mss 1460], length 0 01:01:03.199788 IP localhost.3128 > localhost.34217: Flags [S.], seq 3871348246, ack 2309594196, win 32792, options [mss 16396], length 0 01:01:03.199795 IP localhost.34217 > localhost.3128: Flags [R], seq 2309594196, win 0, length 0
Puerto cerrado: 52
NMAP
–Tipo de ataque que escucha puertos TCP
–La opción del nmap “-PO” nos resume la información de salida de la terminal
–La opción –sS nos especifica el tipo de escaneo Syn scan
–La opción –p nos permite escoger el puerto a escanear
–Este ataque no incluye ack de confirmación
root@ubuntu:~$ sudo nmap -P0 -sS -p 52 localhost Starting Nmap 5.00 ( http://nmap.org ) at 2011-10-06 01:10 PDT Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1. Interesting ports on localhost (127.0.0.1): PORT STATE SERVICE 52/tcp closed xns-time Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
TCPDUMP
–enviamos un flag [S] con un byte de sincronización desde un puerto aleatorio(47308) y el puerto 52 nos contesta con un flag[R]
–desde el mismo puerto aleatorio le contestamos con un flag [ ]+ack1 y un flag [R] para cerrar el ataque.
root@ubuntu:~$ sudo tcpdump -i lo 01:10:12.031540 IP localhost.47308 > localhost.52: Flags [S], seq 1911266538, win 1024, options [mss 1460], length 0 01:10:12.031573 IP localhost.52 > localhost.47308: Flags [R.], seq 0, ack 1911266539, win 0, length
Espero que este artículo os sirva de ayuda,
Un saludo,
Por Óscar Carrillo