Escaneo de puertos


¿Qué es un puerto?

Cuando nosotros tenemos dos computadores, dos ordenadores que quieren intercambiar información entre ellos.

Entonces nosotros podemos conectarlos formando una red.

Estos ordenadores pasarían a llamarse nodos de esa red y podemos intercambiar información que a priori serán una serie de cadenas de bits y que cuando llegan al sistema operativo del nodo de destino se interpretan en base a una serie de reglas estáticas que se denomina protocolo de red.

Para tratar de distinguir las conexiones que establecemos para intercambiar información con otro nodo en función de las aplicaciones que estamos utilizando, se inventó el concepto de puerto.

Un puerto es un numero que va a identificar una aplicación que está corriendo en el equipo y por lo tanto, si yo quiero mandar información que va dirigida a esa aplicación y que va a tener que interpretarla con un protocolo determinado, lo que hago es que le añado a mi paquete de red ese numerito que es el puerto.

De manera que cuando el nodo de destino recibe la información, la parsea y la analiza ve el puerto al que va dirigido y sabe a qué aplicación concretamente va a ir dirigida y por lo tanto, qué protocolo y qué reglas estáticas aplicar para interpretar esa información.

https://nmap.org/book/man-port-scanning-techniques.html

Estados en los que pueden encontrarse los puertos:

Una aplicación está aceptando activamente conexiones TCP, data-gramas UDP o asociaciones SCTP en este puerto. Encontrar estos puertos suele ser el objetivo principal de la exploración de puertos. Las personas preocupadas por la seguridad saben que cada puerto abierto es una vía de ataque. Los atacantes y los evaluadores de penetración desean explotar los puertos abiertos, mientras que los administradores intentan cerrarlos o protegerlos con firewalls sin obstaculizar a los usuarios legítimos. Los puertos abiertos también son interesantes para exploraciones no relacionadas con la seguridad porque muestran servicios disponibles para su uso en la red.

Un puerto cerrado es accesible (recibe y responde a paquetes de sonda de Nmap), pero no hay ninguna aplicación escuchando en él. Pueden ser útiles para mostrar que un host está activo en una dirección IP (detección de host o exploración de ping), y como parte de la detección de sistemas operativos. Debido a que los puertos cerrados son alcanzables, puede valer la pena escanear más tarde en caso de que algunos se abran. Los administradores pueden querer considerar bloquear dichos puertos con un firewall. Entonces aparecerían en el estado filtrado, que se discute a continuación.

Nmap no puede determinar si el puerto está abierto porque el filtrado de paquetes impide que sus sondas lleguen al puerto. El filtrado podría provenir de un dispositivo de firewall dedicado, reglas de enrutador o software de firewall basado en el host. Estos puertos frustran a los atacantes porque proporcionan muy poca información. A veces responden con mensajes de error ICMP como el tipo 3 código 13 (destino inaccesible: comunicación administrativamente prohibida), pero los filtros que simplemente descartan las sondas sin responder son mucho más comunes. Esto obliga a Nmap a volver a intentarlo varias veces solo por si acaso la sonda fue descartada debido a la congestión de la red en lugar de ser filtrada. Esto ralentiza considerablemente el escaneo..

El estado no filtrado significa que un puerto es accesible, pero Nmap no puede determinar si está abierto o cerrado. Solo el escaneo ACK, que se utiliza para mapear conjuntos de reglas de firewall, clasifica los puertos en este estado. Escanear puertos no filtrados con otros tipos de escaneo como escaneo de ventana, escaneo SYN o escaneo FIN, puede ayudar a determinar si el puerto está abierto.

Nmap coloca los puertos en este estado cuando no puede determinar si un puerto está abierto o filtrado. Esto ocurre para tipos de escaneo en los que los puertos abiertos no dan respuesta. La falta de respuesta también podría significar que un filtro de paquetes descartó la sonda o cualquier respuesta que generara. Por lo tanto, Nmap no sabe con certeza si el puerto está abierto o siendo filtrado. Los escaneos UDP, de protocolo IP, FIN, NULL y Xmas clasifican los puertos de esta manera.

Este estado se utiliza cuando Nmap no puede determinar si un puerto está cerrado o filtrado. Solo se utiliza para el escaneo de inactividad de ID de IP.

Comandos:


sudo nmap -sS 192.168.20.128 | 192.168.20.0/24 | 192.168.20.120-130

Este escaneo lo que va a hacer es realizar un escaneo o un análisis de los puertos que tiene ese sistema, haciendo peticiones a cada uno de los puertos del sistema de manera individual.

Lo hace mediante una conexión TCP, pero al contrario de lo que habíamos visto en situaciones anteriores en las que se establecía toda la conexión completa lo que hace es dejar el handshake a medias.

Para obtener más información sobre el escaneo y los motivos por los que el puerto está abierto.

Exportar los resultados con plantilla


sudo nmap -sS -v --reason -oX --stylesheet="https://svn.nmap.org/nmap/docs/nmap.xls" 192.168.20.128


nmap -sT 192.168.20.128

Para saber si el host esta app sí que hace el mismo descubrimiento mediante a ARP pero esta vez si completa el three way handshake.


sudo nmap -sU 192.168.20.128

Cuando nosotros ejecutamos esta petición, lo que hacen NMAP es que manda un paquete UDP que no tiene ni siquiera contenido a ese puerto para ver si hay algo ahí corriendo.

Asegurar qué servicio se está ejecutando en esos puertos

.

https://nmap.org/book/man-version-detection.html

-sV (Version detection)


sudo nmap -sV 192.168.20.128

Realiza el escaneo activo al igual que antes pero determina tambíen la versión del servicio que está ofreciendo ese puerto.

Al igual que con -sS no termina el three way handshake.