Hola, hola
En el último post que puse, de hace más de un mes, vimos algunos tipos de escaneos para detectar puertos TCP abiertos, en concreto los que se hacen con SYN y con SYN + ACK.
En este post quiero poner como se realiza el descubrimiento de puertos con otro par de métodos.
Escaneo de FIN
Cuando un servidor recibe un paquete de FIN por un puerto que no está abierto, este asume que es un error del proceso de conexión del cliente y le manda una respuesta Reset, mientras que si el puerto está abierto, se asume que es un paquete perdido y se desecha silenciosamente.
Los escaners que emplean esta técnica realizan peticiones a los puertos y esperan respuestas RESET, en el caso de no recibirla se asume que en esa petición hay un puerto abierto. Este tipo de escaneo tiene un alto índice de falsos positivos debido a las latencias de la red, a que en algunas implementaciones TCP/IP no se devuelven peticiones RESET para puertos cerrados y porque simplemente los firewalls estén configurados para cortar las respuestas.
Escaneo de XMAS y NULL
Estas dos técnicas son similares a la realización de un escaneo de FIN, en el primer caso, la técnica de XMAS, se envían peticiones con todos los bits de los flags activados (ACK, FIN, RST, SYN, URG, PSH), vamos, como si se iluminara un árbol por navidad (Xmas) y en el segundo caso, la técnica NULL, se apagan todas. Los puertos que están cerrados responden con un mensaje RESET mientras que los que están abiertos desechan el paquete que es tomado como un error y no contestan. Al igual que el escaneo de FIN tienen un alto índice de falsos positivos.
Otros Escaneos y establecimiento de conexión
Para descubrir puertos TCP existen otras técnicas, como el escaneo de ACK o enviar mensajes fragmentados. La mayoría de ellas suelen estar cortadas por los firewalls y/o parcheadas por el sistema operativo. Otra de las curiosidades que existe para escanear puertos es utilizar las opciones de FTP, que permiten, en algunos casos, enviar ficheros de un servidor de origen a un tercero a través del servidor ftp. En este caso se realiza transmisión de ficheros a puertos y se miran los errores. Esto se conoce como un abuso y casi todos los servidores han capado esas opciones.
Al final, lo que está claro es que si un puerto está abierto, pues está abierto y deja establecer conexiones con lo que hacer las fases de conexión y desconexión puede perderse dentro de un log enorme. El problema son los fallos de conexión con puertos raros que si que generan alertas que llaman la atención del administrador. En muchos casos las alertas son por fallos producidos en una unidad de tiempo (5 fallos de puerto cerrado desde la misma IP en 3 segundos) o por fallos consecutivos (5 fallos en números de puertos consecutivos). Para ello, en muchos casos se busca hacer poco ruido, probar los escaneos con espacio de tiempo entre peticiones, e incluso, con listados aleatorios de puertos.
En el próximo la detección de puertos UDP y luego ya pasamos a las herramientas.
¡Bies malignos!