No es la primera vez en este blog que hablo sobre Nmap. En la oficina uso Ubuntu 9.04, he tenido que aparcar Debian Testing/Unstable por haber metido la pata mezclando repositorios y compilando y recompilando kernels. El caso es que necesitaba usar nmap para hacer "unas cosillas". Todo correcto; ya conocía este software desde hace muchos años. No sé por qué, me daba la impresión de que el tiempo de espera para los escaneos era demasiado. Comprobemos la versión instalada.
root@alberto:/# /usr/bin/nmap -V
Nmap version 4.76 ( http://nmap.org )
Ahora toca visitar la web de nmap[ http://insecure.org/nmap ] , para comprobar cual es la última versión. Efectivamente, han liberado la versión 5.0, que como es de esperar se puede descargar desde la propia web. Llegados a este punto, la pregunta es: ¿Debo instalar la versión 5.0? ¿Qué mejoras existen respecto a la versión 4.x? Nmap está muy bien documentado, y podéis ver más información acerca de la versión 5.0 aquí. Todo esto está muy bien, pero en la práctica...
He realizado unas pruebas muy sencillas para comprobar en persona, las diferencias en la versión 5.0 y 4.76-0ubuntu4, que básicamente han consistido en:
- Descargar fuentes y compilar nmap 5.0
- Escaneo gateway(nmap sin parámetros)
- Escaneo Sistema Operativo del gateway (nmap -O)
- Escaneo Sistema Operativo y version del software del gateway (nmap -A -T4)
Compilando nmap.
Muy sencillo. Los pasos son los siguientes:
- Descargamos fuentes:
[root@alberto] wget http://nmap.org/dist/nmap-5.00.tar.bz2
- Descomprimimos y desempaquetamos
[root@alberto] tar -xjpf nmap-5.00.tar.bz2
- Compilamos e instalamos
[root@localhost]./configure && make && make install
Llegados a este punto, tenemos el binario de la version 5.00 en /usr/local/bin/nmap y el de la version 4.76 en /usr/bin/nmap.
root@alberto:/# /usr/bin/nmap -V
Nmap version 4.76 ( http://nmap.org )
root@alberto:/home/alberto# /usr/local/bin/nmap -V
Nmap version 5.00 ( http://nmap.org )
Ya podemos comenzar...
Escaneo gateway(nmap sin parámetros)
Resultados con la versión 4.76:
root@alberto:/# time /usr/bin/nmap -e eth0 100.100.100.100
Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-19 13:37 CEST
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Nmap done: 1 IP address (1 host up) scanned in 4.18 seconds
real 0m4.194s
user 0m0.236s
sys 0m0.036s
Resultados con la versión 5.00:
root@alberto:/# time nmap -e eth0 100.100.100.100
Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-19 13:36 CEST
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Nmap done: 1 IP address (1 host up) scanned in 4.95 seconds
real 0m4.956s
user 0m0.224s
sys 0m0.032s
Llama la atención que la versión 5.00 ha tardado 0,77 segundos más que la 4.76. En principio la 4.76 se anotaría el primer punto. Personalmente creo que no, ya lo explicaré más adelante.Vemos que ha identificado bien el modelo del gateway y poco más podemos extraer(si buscarle los tres pies al gato, claro).
Escaneo Sistema Operativo del gateway (nmap -O)
Resultados con la versión 4.76:
root@alberto:/# time /usr/bin/nmap -e eth0 -O 100.100.100.100
Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-19 13:38 CEST
Insufficient responses for TCP sequencing (2), OS detection may be less accurate
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Aggressive OS guesses: Check Point ZoneAlarm Z100G firewall (88%), Actiontec GT701 DSL modem (87%), HP Brocade 4100 switch; or Actiontec MI-424-WR, Linksys WRVS4400N, or Netgear WNR834B wireless broadband router (87%), F5 BIG-IP Local Traffic Manager load balancer (87%), HP 4200 PSA (Print Server Appliance) model J4117A (87%), DD-WRT v23 (Linux 2.4.34) (87%), MontaVista Linux 2.4.17 (87%), Telkom Mega 100 WR DSL modem (Linux 2.4.17_mvl21-malta-mips_fp_le) (87%), FreeBSD 6.2-RELEASE (87%), OpenBSD 4.3 (87%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.96 seconds
real 0m8.979s
user 0m0.388s
sys 0m0.064s
Resultados con la versión 5.00
root@alberto:/# time /usr/local/bin/nmap -e eth0 -O 100.100.100.100
Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-19 13:38 CEST
Interesting ports on 100.100.100.100:
Not shown: 998 filtered ports
PORT STATE SERVICE
113/tcp closed auth
541/tcp open uucp-rlogin
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Device type: firewall
Running: Fortinet embedded
OS details: Fortinet FortiGate-100A firewall
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.30 seconds
real 0m6.319s
user 0m0.432s
sys 0m0.104s
OS details: Fortinet FortiGate-100A firewall
Esto no es mérito sólo de Fyodor(programador principal del proyecto), sino de la gente que se ha currado libpcap. Libpcap es una librería que capturar paquetes en redes de datos para plataformas tipo Unix(también en Sistemas Windows). La versión de esta librería en nmap 4.76 es la 0.8:
root@alberto:/tmp# ldd /usr/bin/nmap
linux-gate.so.1 => (0xb80dd000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb8097000)
libpcap.so.0.8 => /usr/lib/libpcap.so.0.8 (0xb8066000)
libssl.so.0.9.8 => /lib/i686/cmov/libssl.so.0.9.8 (0xb801e000)
libcrypto.so.0.9.8 => /lib/i686/cmov/libcrypto.so.0.9.8 (0xb7ed2000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7ece000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7ddf000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7db9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7da9000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c46000)
libz.so.1 => /lib/libz.so.1 (0xb7c30000)
/lib/ld-linux.so.2 (0xb80de000)
, mientras que en la versión de nmap 5.00 es la 0.97:
root@alberto:/media/bodega/misc/nmap-5.00/libpcap# cat CHANGES |head
@(#) $Header: /tcpdump/master/libpcap/CHANGES,v 1.59.2.11 2007/07/24 02:27:32 mcr Exp $ (LBL)
Wed. July 23, 2007. mcr@xelerance.com. Summary for 0.9.7 libpcap release
(...)
Es de suponer que las mejoras, a parte de los bug-fix, son considerables. Enhorabuena a la gente de TCPDUMP.
Escaneo S.O y versión del software del gateway (nmap -A -T4)
Resultados con la versión 4.76:
root@alberto:/# time /usr/bin/nmap -e eth0 -sP 100.100.100.0/24
Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-19 13:43 CEST
Host 100.100.100.5 appears to be up.
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Host 100.100.100.12 appears to be up.
MAC Address: 00:50:56:A9:4D:AB (VMWare)
Host 100.100.100.19 appears to be up.
MAC Address: 00:0B:CD:1B:85:4D (Sun)
Host 100.100.100.61 appears to be up.
MAC Address: 00:50:AA:20:61:83 (Konica Minolta Holdings)
Host 100.100.100.64 appears to be up.
MAC Address: 00:00:74:93:DA:76 (Ricoh Company)
Host 100.100.100.118 appears to be up.
MAC Address: 00:33:64:B9:8A:C8 (Sun)
Host 100.100.100.153 appears to be up.
MAC Address: 00:50:56:A9:59:98 (VMWare)
Host 100.100.100.202 appears to be up.
MAC Address: 00:33:64:B9:9A:E9 (Unknow)
Host 100.100.100.204 appears to be up.
MAC Address: 00:33:64:B9:96:96 (Unknow)
Host 100.100.100.212 appears to be up.
MAC Address: 00:33:64:B9:94:1A (Unknow)
Host 100.100.100.214 appears to be up.
MAC Address: 00:33:64:B9:9A:E8 (Unknow)
Host 100.100.100.225 appears to be up.
MAC Address: 00:33:64:B9:91:91 (Unknow)
Host 100.100.100.239 appears to be up.
MAC Address: 00:50:56:A9:1A:B8 (VMWare)
Nmap done: 256 IP addresses (13 hosts up) scanned in 12.07 seconds
real 0m12.087s
user 0m0.212s
sys 0m0.016s
Resultados versión 5.00:
root@alberto:/# time /usr/local/bin/nmap -e eth0 -sP 100.100.100.0/24
Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-19 13:43 CEST
Host 100.100.100.5 is up (0.00033s latency).
MAC Address: 00:09:0F:37:F0:C6 (Fortinet)
Host 100.100.100.12 is up (0.00054s latency).
MAC Address: 00:50:56:A9:4D:AB (VMWare)
Host 100.100.100.19 is up (0.00023s latency).
MAC Address: 00:0B:CD:1B:85:4D (Hewlett Packard)
Host 100.100.100.61 is up (0.0090s latency).
MAC Address: 00:50:AA:20:61:83 (Konica Minolta Holdings)
Host 100.100.100.64 is up (0.00041s latency).
MAC Address: 00:00:74:93:DA:76 (Ricoh Company)
Host 100.100.100.118 is up (0.00022s latency).
MAC Address: 00:33:64:B9:8A:C8 (Hewlett Packard)
Host 100.100.100.153 is up (0.00056s latency).
MAC Address: 00:50:56:A9:59:98 (VMWare)
Host 100.100.100.202 is up (0.00028s latency).
MAC Address: 00:33:64:B9:9A:E9 (Hewlett Packard)
Host 100.100.100.204 is up (0.00023s latency).
MAC Address: 00:33:64:B9:96:96 (Hewlett Packard)
Host 100.100.100.212 is up (0.00018s latency).
MAC Address: 00:33:64:B9:94:1A (Hewlett Packard)
Host 100.100.100.214 is up (0.00017s latency).
MAC Address: 00:33:64:B9:9A:E8 (Hewlett Packard)
Host 100.100.100.225 is up (0.00025s latency).
MAC Address: 00:33:64:B9:91:91 (Hewlett Packard)
Host 100.100.100.239 is up (0.0097s latency).
MAC Address: 00:50:56:A9:1A:B8 (VMWare)
Nmap done: 256 IP addresses (13 hosts up) scanned in 12.40 seconds
real 0m12.401s
user 0m0.140s
sys 0m0.008s
Apenas 0,37 segundos más a tardado la versión 5.00 en realizar el escaneo. Sí ha dado en el clavo.La mayoría de las máquinas son HP, y no Unknow con no "dice" la versión 4.76.
Resumiendo, me quedo con la versión 5.00. Usar repositorios, a veces, es lo que tiene, puedes seguir con una versión obsoleta de un software, que aparentemente funciona bien, tiempo y tiempo. Todos(o casi todos) sabemos, conocemos o hemos oído hablar de las ramas experimentales en Debian; pero nunca tendremos software "tan fresco" como si lo descargamos y compilamos de la web de los desarrolladores. Bondades y maldades del software libre.