¿Cómo saber qué puertos están abiertos y qué aplicación los escucha?
¿Qué comando utilar para analizar los puertos de la máquina donde nos encontramos conectados?
netstat
sudo netstat -tulpnDe la ejecución de este comando obtendremos sobre los puertos y protocolos que escucha nuestra máquina, que programa y PID tienen asociado cada puerto y el estado del mismo.
ss
Alternativamente se puede emplear el más moderno y potente comando ss con el que se pueden obtener resultados similares.
ss -a | grep LISTEN --colorfuser
Si sabemos ya el puerto que queremos comprobar el PID del programa que escucha en un puerto lo podremos hacer con el comando siguiente, donde cambiaremos #puerto por el número de puerto, poniendo tcp o udp dependiendo del protocolo que nos interese.
sudo fuser #puerto/tcp
cat /proc/xxx y psSi queremos saber el programa asociado al PID obtenido ejecutaremos el comando que sigue cambiando #pid por el número obtenido.
sudo ls -l /proc/#pid/exeSi con el nombre obtenido aún no tenemos claro que programa es podremos ejecutar man “programa” o whatis “programa”. Aunque siempre nos quedará google…
Si lo que queremos saber es el propietario del programa ejecutaremos lo siguiente.
sudo ls -l /proc/#pid/cwdO también …
sudo ps aux | grep #pidnmap
Si queremos comprobar los puertos de una máquina remota podremos ejecutar el siguiente comando.
sudo nmap -sN -p T:#puerto URLDonde T se refiere a tcp y puede cambiarse por U para comprobar el protocolo udp, #puerto es el número de puerto y URL es la dirección del host a comprobar.
Se puede obtener algo más de información con las siguientes opciones.
sudo nmap -p 1-65535 -T4 -A -v URL