Algunas de las variantes de malware de ransomware y troyanos más devastadoras dependen de las vulnerabilidades en el Bloqueo de mensajes del servidor de Windows (SMB) para propagarse a través de la red de una organización. Windows SMB es un protocolo utilizado por las PC para compartir archivos e impresoras, así como para acceder a servicios remotos.
Microsoft lanzó un parche para las vulnerabilidades de SMB en marzo de 2017, pero muchas organizaciones y usuarios domésticos aún no lo han aplicado. Así que ahora, los sistemas no parcheados permiten amenazas que aprovechan estas vulnerabilidades en el interior, lo que ayuda a que las campañas de malware activo se propaguen como incendios forestales de California.
Las vulnerabilidades de SMB han sido tan exitosas para los actores de amenazas que se han utilizado en algunos de los brotes de ransomware más visibles y en los sofisticados ataques de troyanos de los últimos dos años. De hecho, la telemetría de nuestro producto ha registrado 5,315 detecciones de Emotet y 6,222 de TrickBot en redes empresariales, dos variantes de troyanos que utilizan las vulnerabilidades de SMB, solo en los últimos 30 días.
¿Qué los hace tan efectivos?
Lo que hace que un malware sea tan extendido es la forma en que se propaga. Si bien las campañas masivas de spam solo generan algunas víctimas que realmente rinden frutos, una infección similar a un gusano que se sigue propagando requiere poco esfuerzo para multiplicar los rendimientos. Y eso es exactamente lo que las vulnerabilidades de SMB permiten que hagan sus cargas útiles: se extienden lateralmente a través de sistemas conectados.
Por ejemplo, el ransomware WannaCry (también conocido como WannaCrypt), que usó una de las vulnerabilidades de SMB, se lanzó en mayo de 2017, pero la infección continúa expandiéndose. A continuación se muestra el gráfico que muestra nuestra telemetría para Ransom.WannaCrypt para el mes de noviembre de 2018 .
Han pasado más de 1,5 años, y WannaCry continúa proliferando, gracias a la gran cantidad de máquinas no parcheadas conectadas a redes infectadas.
¿Cómo se llegó a esto?
En este momento, hay tres exploits en la naturaleza que utilizan vulnerabilidades de SMB. Estas hazañas han sido bautizadas como EternalBlue (usada por WannaCry y Emotet), EternalRomance (NotPetya, Bad Rabbit y TrickBot), y EternalChampion. Hay una cuarta vulnerabilidad llamada EternalSynergy, pero solo hemos visto una Prueba de concepto (PoC), nada ha aparecido todavía en la naturaleza.
Todas estas hazañas fueron filtradas por el Grupo ShadowBrokers , quien supuestamente las robó de la NSA. Menos de un mes después de que los ShadowBrokers publicaran sus «hallazgos», el primer malware completamente funcional que usó el exploit EternalBlue, WannaCry, se encontró en su hábitat natural.
Desde entonces, múltiples ataques de malware a gran escala se han basado en las vulnerabilidades de las PYMES para penetrar en las redes de las organizaciones, incluidas las campañas de ransomware NotPetya y Bad Rabbit en 2017, y ahora los ataques Emotet y TrickBot Trojan, que se han llevado a cabo durante el tercer y cuarto lugar. trimestre de 2018.
Ahora echemos un vistazo más cercano y técnico a cada exploit y cómo funcionan.
EternalBlue
Un error en el proceso de conversión de atributos extendidos de archivos (FEA) de la estructura OS2 a la estructura NT mediante la implementación de Windows SMB puede provocar un desbordamiento de búfer en el grupo del kernel no paginado. Este grupo no paginado consta de direcciones de memoria virtual que se garantiza que residen en la memoria física mientras se asignen los objetos del núcleo correspondientes.
Un desbordamiento de búfer es un defecto de programación que permite que los datos escritos en un área de memoria reservada (el búfer) salgan de los límites (desbordamiento), lo que le permite escribir datos en ubicaciones de memoria adyacentes. Esto significa que los atacantes pueden controlar el contenido de ciertas ubicaciones de memoria a las que no deberían poder acceder, que los atacantes explotan en su beneficio. En el caso de EternalBlue, pueden controlar el contenido de un montón que tiene permiso de ejecución, lo que lleva a la vulnerabilidad de ejecución remota de código (RCE), o la capacidad de ejecutar comandos en una máquina de destino a través de la red.
EternalRomance
Eternal Romance es un ataque RCE que explota CVE-2017-0145 contra el protocolo de intercambio de archivos SMBv1. Tenga en cuenta que el uso compartido de archivos a través de SMB normalmente se usa solo en redes locales, y los puertos SMB generalmente están bloqueados desde Internet por un firewall. Sin embargo, si un atacante tiene acceso a un punto extremo vulnerable que ejecuta SMB, la capacidad de ejecutar código arbitrario en el contexto del kernel desde una ubicación remota es un compromiso serio.
En el núcleo de este exploit se encuentra una vulnerabilidad de tipo confusión. Las vulnerabilidades de confusión de tipo son fallas de programación que ocurren cuando un fragmento de código no verifica el tipo de objeto que se le pasa antes de usarlo. La confusión de tipos puede permitir a un atacante introducir punteros o datos de función en el código incorrecto. En algunos casos, esto puede llevar a la ejecución del código.
En otros casos, la vulnerabilidad de la confusión de tipo conduce a una escritura de montón arbitraria, o la pulverización del montón La pulverización en heap es un método que se usa normalmente en explotaciones que coloca grandes cantidades de código en una ubicación de memoria que el atacante espera que se lea. Por lo general, estos bits de código apuntan al inicio del código real que el exploit desea ejecutar para comprometer el sistema que está bajo ataque.
Una vez finalizada la aplicación, el exploit utiliza una filtración de información en una transacción TRANS_PEEK_NMPIPE. Utiliza la filtración de información para determinar si el destino está ejecutando una versión de Windows de 32 o 64 bits y para obtener los punteros del kernel para varios objetos SMB.
Campeón Eterno
El problema explotado por EternalChampion es una condición de carrera en cómo SMBv1 maneja las transacciones. Una condición de carrera, o peligro de carrera, es el comportamiento de un sistema donde la salida depende de la secuencia o el tiempo de otros eventos incontrolables. Se convierte en un error cuando los eventos no ocurren en el orden previsto por el programador. A veces, estos errores pueden ser explotados cuando el resultado es predecible y funciona en beneficio de los atacantes.
Mientras tanto, una transacción es un tipo de solicitud que potencialmente puede abarcar varios paquetes. Por ejemplo, si una solicitud es demasiado grande para caber en un solo bloque de mensajes del servidor (SMB), se puede crear una transacción del tamaño apropiado, y esto almacenará los datos tal como se reciben de varias SMB.
Esta vulnerabilidad se explota de dos maneras: primero para una fuga de información y segundo para la ejecución remota de código. El error se explota primero para filtrar información de la agrupación a través de una lectura fuera de los límites. Para hacer esto, se envía al servidor un único paquete que contiene múltiples SMB. Este paquete contiene tres piezas relevantes:
- Una solicitud de transacción primaria que se ejecutará de inmediato.
- Una solicitud de transacción secundaria que activa el error causado por la condición de carrera.
- Conjuntos de transacciones primarias que acumulan el grupo con la intención de colocar una estructura de transacción inmediatamente detrás de la que rastrea la primera solicitud de transacción primaria.
Primero, se crea una transacción que contiene el shellcode. Esto no inicia el exploit, solo contiene la carga útil de la segunda etapa. A continuación, se envía un paquete que contiene múltiples SMB. El paquete contiene todos los datos de transacción esperados y comienza la ejecución inmediatamente.
El controlador de transacción secundario copia los datos de la solicitud de transacción secundaria si encaja en el búfer. Excepto debido a la condición de carrera, el puntero ahora apunta a la pila del subproceso de los manejadores de solicitud de transacción primaria (a diferencia del búfer de agrupación esperado). Esto permite que un atacante escriba sus datos directamente en la pila de otro hilo.
El atacante tiene control sobre el desplazamiento, por lo que puede elegir la cantidad de datos para copiar y luego copiarlo. Esto les permite sobrescribir con precisión una dirección de retorno almacenada en la pila del subproceso del manejador de solicitud de transacción principal, y da como resultado la capacidad de ejecución remota de código.
Sinergia eterna
La Prueba de concepto para EternalSynergy muestra que los mensajes SMB entrantes son copiados por un controlador inicial en el búfer de transacción correspondiente. Pero el controlador asume automáticamente que la dirección proporcionada es el comienzo del búfer. Sin embargo, durante una transacción de escritura, se asume automáticamente que la misma dirección es el final de los datos existentes, y la dirección que apunta al comienzo del búfer se actualiza en consecuencia.
Esto significa que un atacante puede construir un mensaje secundario en la transacción para apuntar más allá del inicio del búfer, lo que resulta en un desbordamiento del búfer durante la acción de copia.
EternalRocks
Buscando información sobre estos exploits SMB, también puede encontrarse con un exploit llamado EternalRocks. EternalRocks no se incluyó en el lanzamiento de ShadowBrokers, sino que se construyó y se descubrió más tarde. EternalRocks usa siete herramientas NSA donde, por ejemplo, WannaCry solo usó dos (EternalBlue y otra llamada DoublePulsar).
Prevención y remediación.
A pesar del poder significativo que las vulnerabilidades de las PYMES tienen para los atacantes, existe un remedio simple para evitar que se vuelvan problemáticos.
Parche sus sistemas.
Los sistemas operativos de Windows vulnerables a los ataques que se encuentran en el mundo salvaje son anteriores a Windows 10. La mayoría de los ataques solo funcionan en Windows 7 y versiones anteriores, y Microsoft lanzó parches para las vulnerabilidades que se filtraron en el Boletín de seguridad de Microsoft MS17-010 . Esto deja poca o ninguna razón para que las redes sean vulnerables a estos ataques, sin embargo, el número de víctimas actuales es abrumador.
Al aplicar el parche lanzado por Microsoft en 2017, todos sus dolores de cabeza eternos pueden desaparecer mágicamente. Y como medida adicional, también le recomendamos que actualice y actualice todos los sistemas, navegadores y software lo antes posible para reforzar cualquier otra posible vulnerabilidad en la red.
Además, muchas soluciones de ciberseguridad, como Malwarebytes Endpoint Protection , ofrecen una tecnología innovadora contra la explotación que puede impedir que amenazas como EternalBlue dejen caer sus cargas útiles e infecten sistemas.
Por ejemplo, el módulo anti-exploit de Malwarebytes detectó a WannaCry como Ransom.WannaCryptdesde el principio. A continuación, creamos un mapa de calor utilizando nuestra telemetría, que muestra dónde comenzó la infección y qué tan rápido se extendió por todo el mundo.
Es por una buena razón que la mayoría de las guías de ciberseguridad aconsejan a los usuarios realizar parches rápidamente y mantener los sistemas actualizados. Muchas de las infecciones que se observan hoy podrían evitarse con un monitoreo constante y un mantenimiento básico de la computadora. Desafortunadamente, muchas empresas creen que no tienen el tiempo o la mano de obra para seguir este consejo. Pero cuando las empresas dejan sus redes desprotegidas, comprometen la integridad de todas nuestras experiencias en línea, especialmente cuando las vulnerabilidades de las PYMES permiten que las infecciones se propaguen tan rápidamente.
No seas una de esas empresas. ¡Protégete y mantente actualizado!
Sobre el autor