"Reflection Attacks" - DNS - SNMP y ahora NTP

Los ataques de denegación de servicio se siguen usando tanto en ataques de protesta, como por parte de otras empresas para dejar sin servicio a empresas de la competencia, Para ataques de denegación de servicio hay muchísimos, quizás los más famosos sean los de tipo flood, en los que el servidor no es capaz de atender todo el tráfico entrante  y por lo tanto se satura y deja de estar accesible, también se tienen los "Reflection Attacks" - DNS - SNMP y ahora NTP que hoy veremos en este post.

Los ataques del tipo "Reflection" es algo bastante peligroso y o muy complicado de llevar a cabo.

Índice

"Reflection Attacks" - DNS - SNMP y ahora NTP servicios

Cuando salió la noticia de que, con NTP era posible, realizar ataques de denegación de servicio, me he acordado de que con NTP, ya tenemos 3 servicios (entre otros) con los que se pueden hacer ataques del tipo "Reflection".

SNMP en "Reflection Attacks" - DNS - SNMP y ahora NTP

SNMP (Protocolo simple de gestión red) es usado para monitorizar y administrar dispositivos en una red IP. Basado en una arquitectura gestor/agente, normalmente utiliza el puerto 161 UDP. Existen diferentes versiones de SNMP en uso, los más usados son SNMPv1 SNMPV2, la versión más reciente es SNMPv3 no ha sido ampliamente aceptada dado que muchos de los dispositivos implementados en el mercado no soportan dicha versión, que permite cifrar las conexiones, lo que ofrece una mayor seguridad antes posibles atacantes.

Principalmente intervienen los siguientes elementos:

  • Dispositivos administrados: Es un nodo de red que contiene un agente SNMP. Ejemplo: Router.
  • Agente: Software que reside en el dispositivo administrado
  • NMS (Sistemas de administración de la red): Ejecuta aplicaciones que supervisan y controlan los dispositivos administrados.

Una imagen del ataque

"Reflection Attacks" - DNS - SNMP y ahora NTP
poc_snmp

En la imagen se ha preparado un laboratorio para hacer las pruebas. Este tipo de ataques no siempre pueden ser reproducidos en un entorno como internet ya que los proveedores de servicio suelen aplicar medidas de filtrado que impiden la realización de técnicas de spoofing.

¿Cómo funciona el ataque?

El atacante envía una petición con la dirección IP manipulada en la que solicita información de un OID concreto de la MIB (base de datos jerárquica) del SNMP. Esta información es respondida a la dirección IP spoofeada por el atacante.

En el caso de una consulta get-request la respuesta dada por el nodo snmp es relativamente mucho mas grande que la petición de consulta, esto quiere decir, que muchas consultas a nodos snmp, hace efectivo este ataque

Recomendaciones

  • Implementar SNMPv3: En el caso que los dispositivos puedan soportar esta versión del protocolo, es posible cifrar las comunicaciones, además de otras características de seguridad.
  • Enviar captura de autenticación: Es recomendable aplicar filtrado a los hosts que pueda realizar consultas SNMP y no permitir conexiones de los hosts no autorizados.
  • Nombres de comunidad aceptados: Un nombre de comunidad actúa como una contraseña compartida por uno o varios hosts SNMP. Es recomendable no utilizar nombres de comunidades por defecto (public/prívate).

DNS

Es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada.

Su función más importante, es traducir (resolver) nombres inteligibles para los humanos en identificadores binarios asociados con los equipos conectados a la red,

Lo anterior con el propósito de poder localizar y direccionar estos equipos mundialmente.

Inicialmente, el DNS nació de la necesidad de recordar fácilmente los nombres de todos los servidores conectados a Internet

Se compone básicamente por:

  • Clientes DNS: Un programa cliente DNS que se ejecuta en la computadora del usuario y que genera peticiones DNS de resolución de nombres a un servidor DNS (Por ejemplo: ¿Qué dirección IP corresponde a nombre.dominio?);
  • Servidores DNS: Contestan las peticiones de los clientes. Los servidores recursivos tienen la capacidad de reenviar la petición a otro servidor si no disponen de la dirección solicitada.
  • Zonas de autoridad: Porciones del espacio de nombres de dominio que almacenan los datos. Cada zona de autoridad abarca al menos un dominio y posiblemente sus subdominios, si estos últimos no son delegados a otras zonas de autoridad.

Una imagen del ataque

"Reflection Attacks" - DNS - SNMP y ahora NTP

¿Cómo funciona el ataque? 

En este escenario el atacante realiza una consulta a todos los registros DNS usando DNS recursivos, este tipo de DNS, si están mal configurados permiten que cualquier dirección IP pueda realizar consultas.

La petición UDP pide todos los registros del DNS, además la petición se realiza con la IP modificada, todas las peticiones de respuesta irán dirigidas a la dirección IP falsificada.

Para que el ataque tenga éxito la petición el paquete UDP falsificado se realiza contra varios DNS recursivos, los DNS han de tener un registro de gran tamaño, para generar mucho tráfico.

El paquete UDP también tiene el valor del TTL modificado, de esta manera, alarga la vida del paquete antes de ser descartado.

Recomendaciones "Reflection Attacks" - DNS - SNMP y ahora NTP

Un DNS se puede configurar de dos maneras, autoritativo, en cuyo caso conoce información acerca de uno o más dominios (lo que normalmente se denominan zonas), y no sabe información sobre otros dominios.

Otro modo de trabajo del DNS es el recursivo, en este caso es un servidor capaz de encontrar la respuesta a cualquier consulta DNS, y puede encontrar información acerca de casi todos los dominios, por ejemplo google.com, lacaixa.es. Generalmente estos servidores están abiertos a cualquier IP, en otras palabras, pueden ser consultados por cualquier máquina.

La recomendación en estos casos es separar el servidor autoritativo del recursivo, por ejemplo el autoritativo abierto a Internet y el recursivo solo para nuestra LAN, si no se pueden separar, permitir la recursividad a rangos de IPs confiables.

Ya hemos visto como se puede hacer con SNMP y DNS para hacer ataques del tipo "Reflection".

En la última investigación se ha visto que se podía hacer lo mismo usando el servicio NTP.

¿Como saber si nuestro servidor es vulnerable? 

Hay que ejecutar lo siguiente por consola


root@virt2020:~$ ntpdc -n -c monlist

remote address          port local address      count m ver rstr avgint  lstint

===============================================================================

81.19.96.148             123 XXX.XXX.XXX.179         2 4 4    1d0      1       0

84.88.69.32              123 XXX.XXX.X.XX.179         3 4 4    1d0      1       0

81.184.154.182           123 XXX.XXX.XXX         2 4 4    1d0      1       1

193.145.56.7             123 XXX.XXX.XXX         1 4 4    1d0      1       1

Recomendaciones

La forma más fácil de actualizar a la versión 4.2.7 NTP, que elimina el comando monlist completo. Si la actualización no es una opción, se puede iniciar el daemon NTP con NOQUERY  habilitada en el archivo conf NTP. Esto desactivará el acceso al modo 6 y 7 Packetts de consulta (que incluye monlist).

"Reflection Attacks" - DNS - SNMP y ahora NTP

Espero que este articulo acerca de "Reflection Attacks" - DNS - SNMP y ahora NTP , te aporte los conocimientos necesarios con respecto a los diferentes ataques de denegación.

Subir