Este tema va dedicado para un amigo Jefferson Encarnacion “El Flaco” sus ganas por manejar bien Nmap me hizo hacer este tutorial de este mapeador de redes excelente, muy usado en las auditorias de seguridad informática, Ha llegado a ser uno de las herramientas imprescindibles para todo administrador de sistema, y es usado para pruebas de penetración y tareas de seguridad informática en general.
Como muchas herramientas usadas en el campo de la seguridad informática, es también una herramienta muy utilizada para hacking, pero que es nmap?. A continuación explicaremos lo siguiente.
Que es Nmap?
Según Wikipedia, Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática.
Instalando Nmap en maquinas Ubuntu
# sudo apt-get install nmap
Instalando Nmap en maquinas Fedora
# yum –y install nmap
Compilando e instalando Nmap en maquinas linux
# bzip2 -cd nmap-5.61TEST2.tar.bz2 | tar xvf -
# cd nmap-5.61TEST2
# ./configure
# make
# su root
# make install
Instalando Nmap en sistemas RPM
# rpm -vhU http://nmap.org/dist/nmap-5.61TEST2-1.i386.rpm
Instalando Nmap en sistemas Freebsd (ports)
Como root teclear
# cd /usr/ports/security/nmap && make install clean
Instalando Nmap en maquinas Windows
http://nmap.org/dist/nmap-5.51-setup.exe Version Estable
Ya que aprendimos a instalar NMAP podremos usarlo tan solo con abrir la consola y poner nmap nos saldrán unas pequeñas opciones de cómo usarlo, pero aquí las detallare de una manera mas especifica
La sintaxis de los comandos son de esta manera
# nmap [tipo de escaneo] [opciones]
Poniendo de ejemplo la dirección 192.168.0.1 hacemos un escaneo de puertos básico
# nmap 192.168.0.1
Nmap nos mostrara algo asi
Starting nmap V. 5.61TEST2 ( www.insecure.org/nmap/
)
Interesting ports on localhost (192.168.0.1):
(The 1545 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
25/tcp open smtp
111/tcp open sunrpc
6000/tcp open X11
Nmap run completed -- 1 IP address (1 host up) scanned in 0 seconds
Obviamente el resultado va a variar dependiendo de la maquina a escanear, puede ser mayor cantidad de puertos abiertos
Si queremos ver que sistema operativo tiene la maquina que vamos a escanear ponemos la opción –O seria algo asi:
# nmap –O 192.168.0.1
Starting nmap V. 5.61TEST2 ( www.insecure.org/nmap/
)
Interesting ports on localhost (192.168.0.1):
(The 1545 ports scanned but not shown below are in state: closed)
Port State Service
22/tcp open ssh
25/tcp open smtp
111/tcp open sunrpc
6000/tcp open X11
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
SInfo(V=2.54BETA30%P=i386-suse-linux%D=7/20%Time=3D39A479%O=22%C=1)
TSeq(Class=RI%gcd=1%SI=1B445E%IPID=Z%TS=100HZ)
TSeq(Class=RI%gcd=1%SI=2E12CD%IPID=Z)
T1(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T1(Resp=Y%DF=Y%W=7FFF%ACK=O%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T3(Resp=Y%DF=Y%W=7FFF%ACK=O%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E) Nmap run completed -- 1 IP address (1 host up) scanned in 12 seconds
Como vemos el resultado es una pc con SuSe Linux
De seguro la primera pregunta es que son esos caracteres en el escaneo?
TCP/IP fingerprint:
SInfo(V=2.54BETA30%P=i386-suse-linux%D=7/20%Time=3D39A479%O=22%C=1)
TSeq(Class=RI%gcd=1%SI=1B445E%IPID=Z%TS=100HZ)
TSeq(Class=RI%gcd=1%SI=2E12CD%IPID=Z)
T1(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T1(Resp=Y%DF=Y%W=7FFF%ACK=O%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
...
Es la huella tcp/ip o fingerprinting que tiene cada Sistema Operativo
Nmap es cosa del diablo? Como hace para reconocer que sistema operativo tengo?
Pues cada sistema operativo tiene diferente respuesta, cuando se le envían paquetes tcp específicos, asi logramos detectar que OS esta ejecutando la maquina escaneada.
Identificando maquinas activas en la red
Vamos haciendo la prueba bajo la misma red 192.168.0.x esta vez con la opción -sP
# nmap –sP 192.168.0.1-255
Realizando Stealth Scans.
Con este tipo de scan, se pretende no ser detectado por software de detección
de scaneos, se envían paquetes a los hosts con ciertos “flags” TCP activados
o desactivados para evitar ser detectados.
sN: Stealth, Null Scan, este tipo de scan pone en off todos los flags.
sF: Stealth FIN Scan, este tipo de scan usa paquetes con el flag FIN activado
para las pruebas.
sX: Stealth Xmas Tree Scan, este tipo de scan envía paquetes con los
flag FIN, URG, y PUSH activados.
sp: Ping Scan, realiza un scan dentro de un rango especifico de hosts. Útil
para conocer que hosts se encuentran en linea sin ser detectados.
Si deseamos hacer un stealth scan del tipo Xmas Tree, y ademas deseamos conocer
que sistema operativo esta corriendo el host de destino, ejecutamos:
# nmap -sX -O 192.168.0.1
Escondiendonos con la opcion Decoy Scan:
-D: Con esta opción engañamos a la maquina que vamos escanear haciendo simular que es otra maquina lo esta escaneando.
En el siguiente ejemplo, realizamos un Stealth Xmas Tree scan (-sX) hacia el
host 192.168.0.1, en los puertos 25(SMTP), 53(DNS), le indicamos a nmap que
no genere pings hacia el host, y tratamos de engañar al host (-D, Decoy), haciéndole
creer que los scans se están generando desde los hosts 127.0.0.1 y 1..1.1.1 (podemos hacerle creer que es google =))
# nmap –p 25,53
–sX –P0 –D 127.0.0.1,1.1.1.1 192.168.0.1