miércoles, 19 de agosto de 2009

Nmap 5.0, actualízate si puedes.

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


Primer punto para la versión 5.00. En realidad, a mi modo de ver, este vale por dos. 2,66 segundos menos en detectar la versión del S.O! Aún encima la ha clavado:

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.

lunes, 17 de agosto de 2009

Mis Feeds

He actualizado mis feeds. Si os interesa podéis descargarlos de esta URL.

miércoles, 12 de agosto de 2009

Pendrives y NTFS

Aún no sé bien por qué uso NTFS como sistema de ficheros en mis pendrives. En Mac OSX tengo soporte para EXT3; entonces, no debería utilizarlo. Supongo que será por si tengo que llevar algún documento a la copistería, o intercambiar ficheros con lusers. El caso es que un pendrive que uso a menudo, al intentar montarlo en Debian GNU/Linux o Ubuntu, Gnome me invita amablemente a que lo inserte en una máquina Windows y ejecute el famoso chkdsk(Checkdisk). Cómo no me parecía una solución demasiado ética, por cuestiones obvias, me puse a buscar información y encontre la herramienta ntfsfix. No estoy seguro, pero supongo que esta herramienta forma parte de ntfsprogs. Como dice en su página del manual, ntfsfix corrige errores comunes en NTFS, pero no es una versión para Linux de chkdsk. Sólo repara inconsistencias.
Ejemplo de uso:

root@alberto:/home/alberto# ntfsfix /dev/sdf1
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdf1 was processed successfully.


Por cierto, sí forma parte de ntfsprogs, al final de la página del manual indica: ntfsfix is part of the ntfsprogs package(...)

martes, 11 de agosto de 2009

vim

Al principio fue la línea de comandos...y usaba vi. Me parecía un coñazo, "Demasiado complicado", me decía a mí mismo. Recuerdo que en un intento frustado de cursar el LPI, en el 2001, me presentaron a Nano; no a Nano el compañero de Bilo, sin al editor. Me parecía fácil de usar.Hasta hace un año, cuando me preguntaba qué editor usaba en el terminal, respondía "Nano", y muchos "talibanes" se llevaban las manos a la cabeza, y con más "desprecio que razón" exclamaban "Pero si eso es para nenazas, no conoces vi", "Sí.",respondía,"pero Nano me parece sencillo y cumple todas(las pocas) funciones que necesito." Después de este largo caminar por el Lado Oscuro de los editores, hace un año, he vuelto a vi, mejor dicho a vim. La razón principal, pese a tener una curva de aprendizaje más elevada, en mi opinión,es un editor más completo que Nano. Me gusta mucho, por ejemplo, que puedas ejecutar comandos directamente en el editor(desconozco si Nano lo hace); o lo bien que funciona con expresiones regulares. Esta mañana he visitado la web de vim(versión mejorada de vi), la entrada de la Wikipedia. He encontrado una Guía de Referencia Rápida en castellano, recomendada para los osados que quieran dejar el Lado Oscuro de los editores...

lunes, 10 de agosto de 2009

De vuelta...

Después de 15 días de vacaciones, estoy de vuelta en Compostela. Sin lugar a dudas me ha venido bien el descanso, aunque apenas me he separado del portátil. La conexión 3G cunde mucho, sobre todo si te desplazas: me he conectado desde Compostela,Mugardos,Ponferrada,Santander... y me ha servido para estar al día, revisar correo y demás. Dentro de un mes volveré a estar de nuevo ocioso, 6 días, los últimos del año ya, pero pensando más que nada en la VI Edición del Kernel 2009.

Sé que no he escrito mucho durante los últimos dos meses, y anoto en mi mente ponerme al día con el blog...que pronto cumplirá dos años, y sería una pena perder la buena y sana costumbre de escribir. Sí tengo cosas interesantes que decir y contar. Ayer de noche, repasaba un número atrasado de Todo Linux, y leí de la existencia de un paquete llamado libtrash, que es la Papelera de Reciclaje, pero para la consola. Hoy por la mañana, tenía pensado escribir algo sobre este paquete, pero he encontrado en la red cosas tan interesantes como esta.
Otra perla con la que me he topado esta mañana ,es un libro : "Implementación de Servidores GNU/Linux" , de Joel Barrios, un clásico entre los clásicos, siempre presente en cualquier documentación o manual sobre GNU/Linux.Se puede descargar una copia en esta URL.
De momento, esto es todo!