miércoles, 18 de julio de 2007

Cómo listar los puertos abiertos de una máquina

VeRTiTo de A SYSAD BLOG - LINUX y yo hemos llegado a un acuerdo de colaboración por el cual yo traduciré algunos de los posts de su blog que me parezcan interesantes y él hará lo mismo con los míos. Así que empezaré con este pequeño howto del blog de VeRTiTo: list out opened host ports howto.

Los puertos abiertos son normalmente la manera no-física más directa de forzar la entrada remotamente.

Aquí encontraréis varias herramientas y formas para listar los puertos abiertos de vuestras máquinas Linux.

Veamos la primera forma de listar los puertos abiertos y usados:


# netstat -panut | grep LISTEN


Hemos usado la orden grep para filtrar los puertos que escuchan (LISTEN) de la salida de netstat. O también:


# netstat -ntl


Echad un vistazo al resultado de ejecutar la orden anterior:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6536/sshd
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1819/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1819/named


Tomando como referencia la primera línea esto es lo que significa cada cosa:


0.0.0.0:* = básicamente significa que el puerto está abierto para todas las IP's de la máquina
tcp = es el protocolo usado por el daemon para establecer la comunicación
22 = es el puerto en el que escucha el daemon
sshd = el daemon/servicio que escucha en este puerto


Podéis obtener mas o menos la misma información con la siguiente orden:


# ss -a | grep LISTEN

Cómo listar los puertos abiertos de una máquina

Ahora usaremos un escáner de puertos más potente sobre la IP de nuestro localhost:


# nmap -P0 localhost
Starting Nmap 4.20 ( http://insecure.org ) at 2007-07-17 22:29 WAT
Interesting ports on yourhost.domain.com (127.0.0.1):
Not shown: 1693 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
778/tcp open unknown
953/tcp open rndc

Nmap finished: 1 IP address (1 host up) scanned in 0.082 seconds


A menudo se dice que nmap es como una navaja suiza para probar posibles puertos abiertos, eso me recuerda también a netcat, pero no vamos a tratar ese tipo de hacking en este blog ;) Vamos a ver algunas opciones más de nmap:


# man nmap


Ejecutad:


# nmap -v localhost


¿Pero cómo podemos comprobar que un puerto está realmente abierto? Eso es fácil de comprobar con una de las más famosas herramientas usadas con Linux y routers:


# telnet localhost 22


Haced telnet al puerto 22 de vuestro localhost para ver si el puerto está realmente abierto.

Si el puerto está realmente abierto conectaréis con el daemon que escuche ese servicio que estará esperando vuestras ordenes. Apretad ctrl+J, intro y salid. ¡No os habéis conectado para hacer nada malo!

Ahora, ya podéis listar los puertos abiertos y desarrollar herramientas más fiables y conseguir más información sobre vuestras máquinas y sus puertos usando estas ordenes de Linux.

Recordad que las ordenes de Linux que hemos usado tienen más opciones que las que hemos visto aquí.

¡Qué tengáis un buen día!

Go To The English Version

1 comentario:

VeRTiTO dijo...

nice bro, well done blog! keep blogging up!

and have a nice day ahead!

vertito