La Red de Conocimientos Pedagógicos - Conocimientos históricos - ¿Qué es el escaneo de puertos?

¿Qué es el escaneo de puertos?

Un puerto es un canal potencial de comunicación, que también es un canal de intrusión. Se puede obtener mucha información útil realizando un escaneo de puertos en la computadora de destino. Hay muchas formas de escanear, puede escanear manualmente o utilizar un software de escaneo de puertos. Al escanear manualmente, debe estar familiarizado con varios comandos. Analice el resultado después de la ejecución del comando. Al escanear con software de escaneo, muchos software de escáner tienen la función de analizar datos. Mediante el escaneo de puertos, puede obtener mucha información útil para descubrir vulnerabilidades de seguridad del sistema. ¿Qué es un escáner? Un escáner es un programa que detecta automáticamente vulnerabilidades de seguridad de hosts locales o remotos. Al utilizar el escáner, puede descubrir la asignación de varios puertos TCP del servidor remoto y los servicios proporcionados y su software sin dejar ningún rastro. . ¡Versión! Esto nos permite comprender indirecta o intuitivamente los problemas de seguridad del host remoto. Principio de funcionamiento El escáner selecciona servicios en diferentes puertos TCP/IP remotos y registra las respuestas dadas por el objetivo. A través de este método, se puede recopilar mucha información útil sobre el host de destino (por ejemplo: si puede iniciar sesión de forma anónima). hay un directorio FTP grabable, ¿se puede usar TELNET, HTTPD se ejecuta con ROOT o nada?) ¿Qué puede hacer el escáner? El escáner no es un programa que ataca directamente las vulnerabilidades de la red. Solo puede ayudarnos a descubrir ciertos aspectos de la máquina objetivo. . algunas debilidades inherentes. Un buen escáner puede analizar los datos que obtiene y ayudarnos a encontrar vulnerabilidades en el host objetivo. Pero no proporcionará pasos detallados para ingresar a un sistema. Un escáner debe tener tres funciones: la capacidad de descubrir un host o red; una vez descubierto un host, la capacidad de descubrir qué servicios se están ejecutando en ese host y la capacidad de descubrir vulnerabilidades probando estos servicios; Escribir programas de escáner requiere un amplio conocimiento de la programación TCP/IP y los lenguajes C, Perl y/o SHELL. Requiere cierta experiencia en programación de sockets, un método para desarrollar aplicaciones cliente/servicio. Desarrollar un escáner es un proyecto ambicioso que suele dejar muy satisfecho al programador. Técnicas de escaneo de puertos comúnmente utilizadas Escaneo TCP connect() Este es el escaneo TCP más básico. La llamada al sistema connect() proporcionada por el sistema operativo se utiliza para conectarse al puerto de cada computadora de destino de interés. Si el puerto está escuchando, connect() puede tener éxito. De lo contrario, este puerto no estará disponible, es decir, no se proporcionará ningún servicio. Una de las mayores ventajas de esta técnica es que no necesita ningún permiso. Cualquier usuario del sistema tiene derechos para utilizar esta llamada. Otro beneficio es la velocidad. Si utiliza llamadas connect() separadas para cada puerto de destino de forma lineal, llevará mucho tiempo. Puede acelerar el escaneo abriendo varios sockets al mismo tiempo. El uso de E/S sin bloqueo le permite establecer un período de tiempo de espera bajo y observar varios sockets simultáneamente. Pero la desventaja de este método es que se detecta y filtra fácilmente. El archivo de registros de la computadora de destino mostrará una serie de mensajes de servicio de conexión y de error de conexión, y se puede apagar rápidamente. Escaneo TCP SYN Esta técnica a menudo se conoce como escaneo "semiabierto" porque el escáner no tiene que abrir una conexión TCP completa. El escáner envía un paquete SYN, como si se estuviera preparando para abrir una conexión real y esperar una respuesta (consulte el protocolo de enlace de tres vías TCP para establecer un proceso de conexión TCP). Un mensaje de devolución SYN|ACK indica que el puerto está en estado de escucha. Se devuelve un RST, que indica que el puerto no está en estado de escucha. Si se recibe un SYN|ACK, el escáner debe enviar otra señal RST para cerrar el proceso de conexión. La ventaja de esta técnica de escaneo es que generalmente no deja rastro en la computadora de destino. Pero una desventaja de este método es que debes tener privilegios de root para crear tu propio paquete SYN. Escaneo TCP FIN A veces es posible que el escaneo SYN no sea lo suficientemente secreto.

Algunos firewalls y filtros de paquetes monitorean los puertos designados y algunos programas pueden detectar estos escaneos. En cambio, los paquetes FIN pueden pasar sin problemas. La idea de este método de escaneo es que el puerto cerrado responda al paquete FIN con un RST apropiado. Los puertos abiertos, por otro lado, ignoran las respuestas a los paquetes FIN. Este método tiene cierta relación con la implementación del sistema. Algunos sistemas responden RST independientemente de si el puerto está abierto, por lo que este método de escaneo no es aplicable. Y este método es muy útil a la hora de distinguir entre Unix y NT. El escaneo de segmentos IP no es un método nuevo, es simplemente un cambio en otras tecnologías. No envía directamente paquetes de sonda TCP, sino que divide los paquetes en dos segmentos IP más pequeños. Esto divide un encabezado TCP en varios paquetes, lo que dificulta que los filtros lo detecten. Pero hay que tener cuidado. Algunos programas tienen problemas para manejar estos pequeños paquetes. Escaneo de identificación inversa de TCP El protocolo ident permite (rfc1413) ver el nombre de usuario del propietario de cualquier proceso conectado a través de TCP, incluso si la conexión no fue iniciada por este proceso. Para que puedas, levanta