Nmap, Netstat y lsof para detectar puertos abiertos o «bajo escucha» en centOS y RHEL

Lo primero que deberemos hacer es instalar el NMAP el cual es un mapeador de redes.

# yum install nmap

Con Nmap podemos verificar que puertos están abiertos, utilizados (escuchados) de manera confiable dado que es un escaner de puertos y lo realiza verificándolos sin pasar por las aplicaciones que los usan, sino que lo hace directamente sobre el mapa de puertos. Esto último garantiza que, si algún atacante se disfraza como aplicación que utiliza un puerto específico, no burle al netstat haciéndose ver como aplicación válida.

Una vez instalado el nmap podemos empezar a «jugar» con sus posibles comandos.

# nmap -sT -O localhost

Esto nos devuelve algo parecido a esto:
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2013-10-01 15:45 CEST
Interesting ports on localhost (127.0.0.1):
Not shown: 1664 closed portsPORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
26/tcp   open  unknown
80/tcp   open  http
110/tcp  open  pop3
143/tcp  open  imap
443/tcp  open  https
465/tcp  open  smtps
993/tcp  open  imaps
995/tcp  open  pop3sNo exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).Uptime 21.313 days (since Tue Sep 10 08:14:51 2013)
Nmap finished: 1 IP address (1 host up) scanned in 9.972 seconds

En esta respuesta vemos un puerto abierto como unknown, si bien sabemos que es el puerto alternativo al SMTP, lo investigaremos como si fuera un posible puerto abierto en duda.

# cat /etc/services | grep 26

Esta búsqueda verificamos que realmente el puerto 26 no esta asignado por defecto a ningún servicio. Como medida extra utilizaremos el netstat el cual nos devolverá la info que queremos

# netstat -anp | grep 26
tcp        0      0 0.0.0.0:26            0.0.0.0:*        TIME_WAIT  

Aquí vemos que existe una conexión hacia el puerto 26 de nuestro server lo cual nos acebera que dicho puerto NO es usado por un atacante y es validado mediante una conexión real.

Por último con lsof veremos a que servicio esta asociado el puerto 26

# lsof -i | grep 26

exim       4368        mailnull    5u  IPv4 1404540465      0t0  TCP *:26 (LISTEN)

Acá nos indica que el Exim (servicio de correos) es el servicio utilizado en el puerto 26, con lo cual nos podemos quedar tranquilos y felices!

Estas herramientas pueden revelar mucha información sobre el estado de los servicios ejecutándose en la máquina. Son flexibles y pueden proporcionar gran cantidad de información sobre los servicios de red y la configuración de estos últimos.

Para más información acerca de Nmap, Netstat y lsof podemos usar el comando man sobre ellos.

2 Respuestas

  1. abril 10, 2021

    […] unos días hablábamos de Estas herramientas para detectar puertos abiertos en Linux y relacionado a eso, también explicábamos como Abrir / Cerrar puertos en Linux utilizando […]

  2. abril 10, 2021

    […] unos días explicábamos la manera de verificar que puertos estaban abiertos, en uso y de que manera identificar aquellos puertos que nos resultaban sospechosos o que estaban abiertos […]

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.