¿Qué es un puerto? ¿Enumerar los puertos utilizados por servicios conocidos?
"Puerto" de computadora es la traducción del inglés puerto, que puede considerarse como la salida de comunicación entre la computadora y el mundo exterior. Entre ellos, los puertos en el campo del hardware también se denominan interfaces, como puertos USB, puertos serie, etc. Los puertos en el campo del software generalmente se refieren a puertos de protocolo de comunicación en la red para servicios de conexión y servicios sin conexión. Es una estructura de software abstracta, que incluye algunas estructuras de datos y buffers de E/S (entrada y salida básica).
Primero puede comprender los protocolos orientados a la conexión y sin conexión.
Las características principales de los servicios orientados a la conexión son: Los servicios orientados a la conexión pasan por tres etapas: Antes de que los datos se transmitan. transferido, la conexión se establece primero. Después de establecer la conexión, luego se transmiten los datos. Después de transferir los datos, se libera la conexión. Los servicios orientados a la conexión pueden garantizar el orden de la transmisión de datos y la confiabilidad de la transmisión.
Las características de los servicios sin conexión son: los servicios sin conexión sólo tienen una fase de transmisión de datos. Elimina gastos generales distintos de la comunicación de datos. Mientras la entidad emisora esté activa, no es necesario que la entidad receptora también lo esté. Su ventaja es que es flexible, conveniente y rápido, y es particularmente adecuado para transmitir una pequeña cantidad de mensajes esporádicos. Sin embargo, los servicios sin conexión no pueden evitar la pérdida, duplicación o desorden de los mensajes.
Distinguir los conceptos de "servicios orientados a la conexión" y "servicios sin conexión". Un ejemplo particularmente simple y vívido es: hacer llamadas telefónicas y escribir cartas. Si dos personas quieren hablar por teléfono, primero deben establecer una conexión: marcar un número, esperar una respuesta antes de poder transferirse información entre sí y, finalmente, liberar la conexión: colgar el teléfono. Escribir
una carta no es tan complicado. Después de completar la dirección y el nombre, simplemente tírela al buzón y el destinatario la recibirá. El protocolo TCP/IP no tiene conexión en la capa de red (los paquetes de datos solo se envían a Internet, cómo se transmiten, llegan y si llegan son administrados por el equipo de red). El "puerto" es el contenido de la capa de transporte y está orientado a la conexión. Los puertos inferiores a 1024 en el protocolo tienen definiciones exactas y corresponden a algunos servicios comunes en Internet.
Estos servicios comunes se pueden dividir en dos tipos: usar puertos TCP (orientados a la conexión, como hacer llamadas telefónicas) y usar puertos UDP (sin conexión, como escribir cartas)
Un puerto de comunicación en una red que puede ser nombrado y direccionado es un recurso asignable del sistema operativo. Según el protocolo de siete capas de red OSI (Modelo de referencia de interconexión de sistemas abiertos), la mayor diferencia entre la capa de transporte y la capa de red es que la capa de transporte proporciona capacidades de comunicación de procesos. La dirección final de la comunicación de la red incluye no solo la dirección del host. , pero también algún tipo de identificador que describe el proceso. Entonces
El puerto de protocolo propuesto por el protocolo TCP/IP puede considerarse como un identificador del proceso de comunicación de la red.
Después de que la aplicación (generalmente llamada: proceso después de cargarse en la memoria y ejecutarse) establece una conexión (vinculación, enlace) con un determinado puerto a través de una llamada al sistema
, la capa de transporte pasa al puerto Los datos son recibidos por el proceso correspondiente y los datos enviados por el proceso correspondiente a la capa de transporte salen desde este puerto. En la implementación del protocolo
TCP/IP, las operaciones de puerto son similares a las operaciones de E/S generales. Obtener un puerto mediante un proceso equivale a obtener una
I/ local y única. O archivo. Similar a los descriptores de archivos, puede acceder a ellos utilizando métodos normales de lectura y escritura. Cada puerto tiene un descriptor entero llamado número de puerto, que se utiliza para distinguir diferentes puertos. Dado que los protocolos TCP y UDP de la capa de transporte TCP/IP son dos módulos de software completamente independientes, sus respectivos números de puerto también son independientes entre sí.
Por ejemplo, TCP tiene un número de puerto 255 y UDP también puede tener un número de puerto 255. No hay conflicto entre los dos.
Existen dos métodos básicos de asignación de números de puerto: el primero se llama asignación global, que es un método de asignación centralizada que está unificado por una agencia central reconocida y autorizada según las necesidades del usuario. al público El segundo tipo es la asignación local, también conocida como conexión dinámica, es decir, cuando el proceso necesita acceder al servicio de la capa de transporte, se aplica al sistema operativo local y el sistema operativo devuelve el número de puerto único local. Luego, el proceso llama al sistema apropiado
para conectarse al puerto (vinculación, vinculación). La asignación de números de puerto TCP/IP combina los dos métodos anteriores. El número de puerto se divide en dos partes y una pequeña cantidad se utiliza como puerto reservado y se asigna al proceso de servicio de manera global. Cada servidor estándar tiene un puerto reconocido globalmente llamado puerto público. Incluso en máquinas diferentes, los números de puerto son los mismos. Los puertos restantes son puertos libres y se asignan localmente.
TCP y UDP estipulan que los puertos menores de 256 se pueden utilizar como puertos reservados.
Los números de puerto se pueden dividir en tres categorías:
(1) Puertos conocidos: del 0 al 1023, están estrechamente vinculados a algunos servicios. Normalmente la comunicación en estos puertos indica claramente el protocolo de un determinado servicio. Por ejemplo: el puerto 80 es siempre comunicación HTTP.
(2) Puertos Registrados: del 1024 al 49151. Están vagamente vinculados a algunos servicios. Esto significa que hay muchos servicios vinculados a estos puertos, que también se utilizan para muchos otros fines. Por ejemplo: muchos sistemas manejan puertos dinámicos que comienzan alrededor del 1024.
(3) Puertos Dinámicos y/o Privados: del 49152 al 65535. En teoría, estos puertos no deberían estar asignados al
servicio. En la práctica, a las máquinas se les suelen asignar puertos dinámicos a partir de 1024. Pero hay excepciones: el puerto RPC de SUN comienza en 32768.
Los administradores del sistema pueden "redireccionar" puertos:
Una técnica común es redirigir un puerto a otra dirección. Por ejemplo, el puerto HTTP predeterminado es 80 y muchas personas lo redireccionan a otro puerto, como el 8080. Si esto cambia, debería utilizar esta dirección: 8080 para acceder a este artículo.
Vulnerabilidad del puerto: el puerto 8080 puede ser explotado por varios programas de virus. Por ejemplo, el virus troyano Brown Orifice (BrO) puede utilizar el puerto 8080 para controlar completamente una computadora infectada. Además, los troyanos RemoConChubo y RingZero también pueden utilizar este puerto para atacar.
Sugerencias de operación: Generalmente utilizamos el puerto 80 para la navegación web. Para evitar ataques de virus, podemos cerrar este puerto.
Puerto: 21
Servicio: FTP
Descripción: El puerto abierto por el servidor FTP se utiliza para carga y descarga. Los atacantes más comunes suelen encontrar formas de abrir servidores FTP anónimos. Estos servidores vienen con directorios que se pueden leer y escribir. Puertos abiertos por Doly Trojan, Fore, Invisible FTP, WebEx, WinCrash y Blade Runner.
Puerto: 22
Servicio: Ssh
Explicación: La conexión TCP establecida por PcAnywhere y este puerto puede ser para buscar ssh.
Este servicio tiene muchas debilidades. Si se configura en un modo específico, muchas versiones que utilizan la biblioteca RSAREF tendrán muchas vulnerabilidades.
Puerto: 23
Servicio: Telnet
Descripción: Inicio de sesión remoto, el intruso está buscando servicios UNIX de inicio de sesión remoto. En la mayoría de los casos, este puerto se escanea para encontrar el sistema operativo que está ejecutando la máquina. Existen otras técnicas en las que los intrusos también pueden encontrar contraseñas. El servidor Trojan Tiny Telnet abre este puerto.
Puerto: 25
Servicio: SMTP
Descripción: El puerto abierto por el servidor SMTP se utiliza para enviar correos electrónicos. Los intrusos buscan servidores SMTP para entregar su SPAM. La cuenta del intruso está cerrada y necesita conectarse a un servidor de CORREO ELECTRÓNICO de gran ancho de banda para enviar mensajes simples a diferentes direcciones. Los troyanos Antigen, Email Password Sender, Haebu Coceda, Shtrilitz Stealth, WinPC y WinSpy abren este puerto.
Puerto: 80
Servicio: HTTP
Descripción: Se utiliza para navegación web. Trojan Executor abre este puerto.
Puerto: 102
Servicio: Agente de transferencia de mensajes (MTA)-X.400 sobre TCP/IP
Descripción: Agente de transferencia de mensajes.
Puerto: 109
Servicio: Protocolo de oficina postal -Versión 3
Descripción: El servidor POP3 abre este puerto para recibir correo y el cliente accede al correo en el lado del servidor Servir. Los servicios POP3 tienen muchas debilidades reconocidas. Hay al menos 20 vulnerabilidades relacionadas con desbordamientos del buffer de intercambio de nombres de usuario y contraseñas, lo que significa que un intruso puede ingresar al sistema antes de iniciar sesión. Hay otros errores de desbordamiento del búfer después de iniciar sesión correctamente.
Puerto: 110
Servicio: todos los puertos del servicio RPC de SUN
Nota: Los servicios RPC comunes incluyen rpc.mountd, NFS, rpc.statd, rpc. csmd, rpc.ttybd, amd, etc.
Puerto: 119
Servicio: Protocolo de transferencia de noticias en red
Descripción: Protocolo de transferencia de grupo de noticias NEWS, que transporta USENET comunicación . Este puerto suele ser donde la gente busca servidores USENET para conectarse. La mayoría de los ISP restringen el acceso a sus servidores de grupos de noticias únicamente a sus clientes. Abrir un servidor de grupos de noticias permitirá a cualquiera publicar/leer mensajes, acceder a servidores de grupos de noticias restringidos, publicar de forma anónima o enviar mensajes SPAM.
Puerto: 135
Servicio: Servicio de ubicación
Descripción: Microsoft ejecuta el asignador de puntos finales DCE RPC en este puerto para su servicio DCOM. Esto es muy similar a la función del puerto 111 de UNIX. Los servicios que utilizan DCOM y RPC registran sus ubicaciones con el asignador de puntos finales en la computadora. Cuando los clientes remotos se conectan a una computadora, buscan el asignador de puntos finales para encontrar la ubicación del servicio. ¿HACKER está escaneando este puerto de la computadora para encontrar Exchange Server ejecutándose en esta computadora? ¿Qué versión? También hay algunos ataques de DOS que apuntan directamente a este puerto.
Puertos: 137, 138, 139
Servicio: NETBIOS Name Service
Descripción: 137 y 138 son puertos UDP, al transferir archivos a través de Network Neighborhood Utilice esto puerto.
Y puerto 139: las conexiones que ingresan a través de este puerto intentan obtener servicios NetBIOS/SMB. Este protocolo se utiliza para compartir archivos e impresoras de Windows y SAMBA. El registro WINS también lo utiliza.
Puerto: 161
Servicio: SNMP
Descripción: SNMP permite la gestión remota de dispositivos. Toda la información operativa y de configuración se almacena en una base de datos y está disponible a través de SNMP. Muchas configuraciones erróneas del administrador quedarán expuestas a Internet. Los cackers intentarán acceder al sistema utilizando las contraseñas públicas y privadas predeterminadas. Pueden experimentar con todas las combinaciones posibles. Los paquetes SNMP pueden dirigirse incorrectamente a la red del usuario
¿Qué es un puerto?
Antes de empezar a hablar de qué es un puerto, hablemos primero de qué es un puerto. A menudo escucho en Internet: "¿Cuántos puertos se han abierto en mi host? ¿Será invadido?". ? ” O “¿Qué puerto será más seguro abrir?” Además, ¿a qué puerto debería corresponder mi servicio? ? "¡jeje! ¡Es asombroso! ¿Por qué hay tantos puertos extraños en un host? ¿Qué hace este puerto? !
Dado que las funciones de servicio de cada red son diferentes, es necesario enviar diferentes paquetes a diferentes servicios para su procesamiento. Por lo tanto, cuando su host tiene habilitados los servicios FTP y WWW, entonces los paquetes de datos enviados por otros. Será procesado por el servicio FTP o el servicio WWW de acuerdo con el número de puerto en TCP. ¡Por supuesto, no habrá confusión! (Nota: ¡Jeje! Algunos amigos que rara vez tienen acceso a Internet suelen preguntar: "¡Oye! ¿Por qué tu computadora tiene tantos servicios como FTP, WWW y correo electrónico al mismo tiempo, pero cómo sabe tu computadora cuándo?" ¿Alguien transfiere información? ¿Cómo juzgar? ¿Sabes por qué? ¡Es porque el puerto es diferente! Un día, cuando vas al banco a depositar dinero, puedes considerarlo como un "anfitrión". Solo tengo un negocio. Hay bastantes ventanas adentro. Entonces, cuando entres por la puerta, el personal de servicio en la puerta te preguntará: "¡Hola!". ¿Qué quieres hacer? ¡Quiero ahorrar dinero!" El camarero le dirá: "¡Entonces vaya a la ventana tres para ayudarle!" No debería correr a otras ventanas en este momento, ¿verdad? ""¡Estas ventanas pueden considerarse como "! puertos"! ¡Así que no tiene que preocuparse por el puerto específico de la computadora! ¡Será un problema de error de cálculo! )
·Cada conexión TCP debe ser iniciada por un extremo (generalmente el cliente). El puerto generalmente se selecciona aleatoriamente para realizar un número de puerto mayor que 1024. ¡Su paquete TCP (y solo establecerá) el indicador SYN! Este es el primer paquete de toda la conexión;
· Si el otro extremo (normalmente el servidor) acepta esta solicitud (por supuesto, los servicios especiales deben realizarse en un puerto especial, como el puerto FTP 21). , ¡el segundo paquete de toda la conexión se enviará de regreso al extremo solicitante! Además del indicador SYN, también se establece el indicador ACK y, al mismo tiempo, se crean recursos en el lado local para esperar las necesidades de conexión.
· Luego, el extremo solicitante obtiene el tercer After del servidor; un paquete de respuesta, debe responder a la otra parte con un paquete de confirmación. En este momento, el paquete solo lleva el indicador ACK (de hecho, todos los paquetes en conexiones posteriores deben llevar el indicador ACK
); · Sólo cuando el servidor recibe el paquete de acuse de recibo (ACK) del extremo solicitante (es decir, el tercer paquete de toda la conexión), se puede establecer oficialmente la conexión entre los dos extremos.
Este es el llamado principio de "apretón de manos de tres vías" de la conexión TCP.
Después del apretón de manos de tres, ¡jaja! El puerto del lado del cliente suele ser un puerto obtenido aleatoriamente superior a 1024. En cuanto al lado del host, depende de qué puerto esté abierto el servicio en ese momento. Por ejemplo, WWW elige 80 y FTP usa 21 como canal de conexión normal. !
En resumen, el puerto del que estamos hablando aquí no es un puerto de E/S de hardware de computadora, sino un concepto en forma de software. Dependiendo del tipo de servicio proporcionado por la herramienta, el puerto. Se divide en dos tipos, uno es el puerto TCP y el otro es el puerto UDP. Cuando las computadoras se comunican entre sí, hay dos métodos: uno es confirmar si la información ha llegado después de enviarla, es decir, hay un método de respuesta. Este método utiliza principalmente el protocolo TCP y el otro es ignorarlo después. enviarlo, sin confirmar si la información ha llegado, este método utiliza principalmente el protocolo UDP. Los puertos proporcionados por los servicios correspondientes a estos dos protocolos se dividen en puertos TCP y puertos UDP.
Entonces, si el atacante utiliza software para escanear la computadora objetivo y obtiene los puertos abiertos por la computadora objetivo, también sabrá qué servicios proporciona la computadora objetivo. Todos sabemos que la prestación de servicios debe tener vulnerabilidades en el software del servicio. A partir de ellas, el atacante puede obtener una comprensión preliminar de la computadora objetivo. Si la computadora tiene demasiados puertos abiertos y el administrador no lo sabe, entonces hay dos situaciones: una es que se brindan los servicios pero el administrador no presta atención. Por ejemplo, al instalar IIS, el software agregará muchos automáticamente. servicios, y el administrador puede que no lo note; una es que el servidor está instalado por un atacante con troyanos y se comunica a través de un puerto especial. Ambas situaciones son muy peligrosas. Al final, el administrador no comprende los servicios proporcionados por el servidor, lo que reduce el factor de seguridad del sistema.