Un puerto no estándar simplemente significa un servicio que se ejecuta en un puerto distinto de su predeterminado, generalmente como se define por el registro de números de puertos de la IANA .
La ejecución de un servicio en un puerto no estándar no significa nada para la seguridad. Puede reducir la cantidad de ruido con el que un defensor tiene que lidiar en términos de escaneo automatizado en Internet, donde los robots usualmente se dirigen a los puertos estándar comunes para detectar vulnerabilidades. Mover el SSH de 22 a 55522, por ejemplo, puede reducir el número de intentos de fuerza bruta en el drive-by.
Para encontrar todos los servicios que se ejecutan en un sistema, se puede usar nmap o una herramienta similar. Aquí hay un ejemplo de comando:
nmap -sS -A -Pn -T4 -p1-65535 <host>
Dividamos estas banderas:
-
-sS
le dice a nmap que realice un escaneo TCP SYN.
-
-A
habilita un rango de opciones relacionadas con la detección del sistema operativo, la detección del servicio y la exploración de scripts. Esto es particularmente importante para identificar servicios en puertos no estándar, ya que en realidad habla con cada puerto abierto para averiguar qué es el servicio, en lugar de adivinar según el número de puerto.
-
-Pn
le dice a nmap que no use el ping ICMP para verificar si el host está activo. Si el destino bloquea las solicitudes de ICMP, esto resultará en nmap, asumiendo que el host está inactivo.
-
-T4
establece la velocidad de la exploración. Los argumentos válidos son de 0 a 5. No hay ninguna razón para usar nada más que 4 aquí en mi experiencia; cualquier cosa menos es más lenta, y 5 reduce la precisión del escaneo porque no espera el tiempo suficiente para las respuestas de ACK de TCP.
-
-p1-65535
establece el rango del puerto. Como estamos buscando puertos estándar y no estándar, esta es la única forma de cubrir todo.
Los resultados de este comando deberían mostrarle cualquier puerto que esté abierto y qué servicios se están ejecutando en ellos. Desde allí, es una pregunta abierta sobre qué protocolos se consideran una posible vía de ataque. SSH o Telnet pueden ser útiles, pero a menos que usen un nombre de usuario y una contraseña débiles, probablemente no sea interesante. Es posible que ejecuten un servidor HTTP en un puerto no estándar, con una aplicación web vulnerable que esté siendo atendida, y eso también podría ser de interés. Las posibilidades son infinitas.