domingo, 2 de septiembre de 2012

Como escanear puertos en la red local sin nmap

Como hemos visto en posts anteriores nmap es una herramienta poderosa e invaluable para todo Sysadmin. Pero la funcionalidad básica de escanear puertos yace en el sistema operativo mismo (GNU/Linux), por lo que en un momento determinado podríamos hacer uso del comando nc (netcat) o de /dev/tcp, en las distribuciones que lo soportan y el cual sirve para muchas otras cosas, conjuntamente con bash.

Mientras tanto, como uso CentOS, veremos cómo hacerlo con el comando nc y la ayuda de bash. Lo que haremos es un loop con for colocándole los puertos o el rango de puertos a escanear entre corchetes para pasárselos al comando nc con la variable $i, el cual también tendrá otros parámetros para obtener información acerca de los puertos en el host.



Sería entonces, así:

[fraterneo@rainbow ~]$ for i in {22,80,5900}; do nc -v -z 192.168.24.101 $i; done
Connection to 192.168.24.101 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.24.101 port 80 (tcp) failed: Connection timed out
Connection to 192.168.24.101 5900 port [tcp/vnc-server] succeeded!
Podemos también indicarle un rango en vez de puertos específicos, así: {20..100}. Pero por supuesto, esto tomará bastante tiempo en comparación con lo que se tomaría el comando nmap. Y se puede aplicar el mismo concepto a direcciones públicas (Internet).

La otra forma de hacerlo es sacando provecho al fichero /dev/tcp, como nos lo muestra Peteris Krumins con un excelente shell script que ha hecho y publicado en su blog.

La finalidad de todo esto es simplemente educativa. No creo prudente hacer uso de estas técnicas para fines laborales y menos con amplio rango de puertos.


Artículos relacionados



Widget by Hoctro | Jack Book

0 comments:

Publicar un comentario en la entrada