¿Cómo se aprovechan los hackers de los puertos abiertos como un vector para un ataque?

16

Es un conocimiento generalizado y, por lo tanto, una práctica común, cerrar puertos abiertos en cualquier máquina conectada a Internet.

Si, por ejemplo, un programa típico usa el puerto xyz como su canal de comunicación, y hay una vulnerabilidad en ese programa, que podría ser explotada a través de ese puerto, ¿por qué el mismo ataque no será exitoso a través del puerto 80?

Dado que nuestro pseudo programa utiliza el puerto 888 TCP y tiene una vulnerabilidad que podría ser explotada, ¿por qué no se puede aprovechar esa vulnerabilidad a través del puerto 80 TCP (que es HTTP y está abierto en casi cualquier máquina)?

¿El puerto 80 en el servidor web escucha solo un tipo ÚNICO de paquetes TCP? ¿Acepta solo un cierto tipo de paquete?

¿Por qué un pirata informático no puede intentar crear un paquete TCP con una cadena maliciosa, encapsularlo dentro del paquete HTTP y, por lo tanto, atacar el servidor web?

    
pregunta Franko 16.01.2012 - 23:04
fuente

2 respuestas

11

Los servicios escuchan puertos. Los servidores web (un servicio) escuchan el puerto 80, pero eso es solo una norma, no una regla difícil. Podrías configurar cualquier servicio para escuchar en cualquier puerto. No se trata de 'paquetes especiales', se trata de 'marcar el número de puerto correcto' para obtener el servicio que desea.

Si su pseudo programa tiene una vulnerabilidad, puede ser atacado en el puerto al que está asignado . No puedes atacar un programa en puertos que no está escuchando. Si intenta atacarlo en otro puerto (como el puerto 80 en su ejemplo), no se alcanzará su programa.

Su última pregunta, entonces, es un poco extraña: "¿Por qué un pirata informático no puede intentar crear un paquete TCP con una cadena maliciosa, encapsularlo dentro del paquete HTTP y, por lo tanto, atacar el servidor web?" Eso es lo que hacen los hackers. Pero apuntan al puerto del servicio que quieren golpear. Pero tal vez pueda refinar esa pregunta según la información que he proporcionado.

Entonces, ¿por qué cerrar puertos? Porque desea reducir la cantidad de servicios potencialmente vulnerables que expone a Internet.

    
respondido por el schroeder 16.01.2012 - 23:21
fuente
5

"Bloquear puertos" es solo una forma aproximada de indicar lo que realmente queremos hacer, que es bloquear el acceso a algunos servicios .

Un sistema operativo recién instalado a menudo tiene varias cosas que se ejecutan automáticamente, algunas de las cuales son servicios que tienen una parte de red. Cualquier vulnerabilidad explotable de la red en dicho servicio es una puerta de acceso potencial para un atacante. Sin embargo, rara vez es relevante que todos los servicios de este tipo sean accesibles a través de Internet. Por ejemplo, para una máquina que se supone que es un servidor web, es normal que cualquiera en la Tierra intente acceder al servicio "web" específico (esa es su funcionalidad), y es habitual que el servicio SSH también esté abierto ( para que el administrador del servidor pueda administrar el servidor); Sin embargo, no sirve de nada que los servicios de intercambio de archivos para ese servidor también sean ampliamente abiertos.

El acceso bloqueado a un puerto dado se puede hacer en el firewall y se considera más eficiente en el tiempo que intentar convencer al sistema operativo para que no ejecute un servicio determinado y abstenerse de relanzarlo o inventar nuevos servicios, en la ocasión de una actualización de software. Por lo tanto, es habitual bloquear todos puertos excepto aquellos que se sabe que corresponden a servicios que deberían ser accesibles en todo el mundo (por ejemplo, 80 y 22, para Web y SSH, respectivamente).

    
respondido por el Tom Leek 16.01.2012 - 23:20
fuente

Lea otras preguntas en las etiquetas