Este artículo explica cómo elegir un puerto desconocido (no utilizado por ningún servicio o protocolo conocido) para ocultar un servicio.

La herramienta nmap incluye una base de datos de puertos conocidos para varios usos: escanear puertos por nombre, identificar puertos comunes, etc. Esta base de datos se encuentra en archivo nmap-services y por cada línea se almacena el nombre del puerto junto con su número y protocolo. Además cada línea incluye un número que determina cuáles son las posibilidades de que esté abierto.

Este archivo se originó en la lista de puertos asignados de IANA, aunque con los años se agregaron muchos, especialmente porque IANA no hace seguimiento a puertos utilizados por troyanos, gusanos y demás.

Supongamos que deseamos ocultar un servicio haciendo que escuche en un puerto diferente al asignado. Por ejemplo, si quisiéramos ocultar un Apache en un puerto diferente al 80 y 443. Simplemente se debe instalar namp:

# apt-get install nmap

Luego buscar puertos desconocidos (nombre "unknown") en la base de datos de servicios (/usr/share/nmap/nmap-services):

# grep "^unknown" /usr/share/nmap/nmap-services | less

Por ejemplo, podría hacer que Apache escuche en el puerto 60/TCP o 225/UDP:

root@vaio:/tmp# grep "^unknown" /usr/share/nmap/nmap-services | head -n 20
unknown	4/tcp	0.000477
unknown	6/tcp	0.000502
unknown	8/tcp	0.000013
unknown	10/tcp	0.000063
unknown	12/tcp	0.000063
unknown	14/tcp	0.000038
unknown	16/tcp	0.000050
unknown	28/tcp	0.000050
unknown	30/tcp	0.000527
unknown	32/tcp	0.000339
unknown	34/tcp	0.000025
unknown	40/tcp	0.000038
unknown	60/tcp	0.000038
unknown	225/tcp	0.000100
unknown	225/udp	0.000330
unknown	226/tcp	0.000013
unknown	228/tcp	0.000013
unknown	229/tcp	0.000013
unknown	230/tcp	0.000050
unknown	231/tcp	0.000038

De esta forma es posible ofuscar el acceso a servicios expuestos en Internet en los casos en los que no se puede filtrar el acceso por IP con un firewall.

Referencias

Compartí este artículo