ExtraPulsar una puerta trasera basada en código robado a la NSA

ActualidadEEUUmalware

Un experto en seguridad de EEUU ha presentado una puerta trasera de código abierto para Windows, basada parcialmente en un código filtrado de la NSA en 2017 que formaba parte del la filtración de los Shadow Brokers.

El investigador, conocido online como @zerosum0x0 y Sean Dillon en la vida real, ha llamado a su nuevo malware ExtraPulsar, un guiño a la herramienta de la NSA DOUBLEPULSAR.

El código es sorprendentemente sencillo.

En vez de explotar una vulnerabilidad que supuestamente no debería existir, simplemente se aprovecha de una parte no documentada del driver de Microsoft para el servidor de ficheros SRVNET.SYS.

La mayor parte de los servidores Windows y muchos ordenadores Windows permiten las conexiones para compartir ficheros (si ejecutas el comando net share y ves C$ y ADMIN$ en la lista, el tuyo lo hace).

Si está activo compartir archivos, verás que se carga el driver kernel de Windows SRVNET.SYS, cuyo nombre completo es Server Network Driver.

La idea es que el Server Network Driver (se llama así incluso en las versiones de Windows que no son servidores) busque puertos abiertos y el tráfico que es parte del sistema de compartir ficheros de Windows.

Este driver de gestión de tráfico entonces da los paquetes entrantes a uno o adicionales drivers para que negocien las peticiones remotas.

Por ejemplo, el Server Network Driver normalmente está acompañado por un driver de “extensión de dispositivo” llamado srv2.sys, el Smb 2.0 Server Driver.

SMB es la abreviatura de Server Message Block, el sobrenombre de Windows para su protocolo para compartir ficheros.

Si tienes activado el obsoleto, inseguro y ahora no por defecto SMB1, algo que incluso Microsoft te pide que no hagas, también verás SRV.SYS, listado como un simple Server Driver.

Lo que el experto descubrió es como persuadir al Server Network Driver para que cargue un módulo adicional kernel desde su código puerta trasera, algo que muestra en el siguiente gráfico:

La idea es la siguiente:

  • Se registra el código del malware para que gestione paquetes de tráfico de red ya recibidos por el driver de servidor de máximo nivel. Así el malware no necesita abrir ningún puerto, o realizar ninguna llamada de red sospechosa.
  • El malware ejecuta un driver kernel, y cualquier código que reciba y ejecute también adquiere privilegios kernel. Por lo que este malware y cualquier código puerta trasera que active también se ejecuta a nivel súper-administrador.
  • El código malware automáticamente se despierta y activa cuando se recibe un paquete de red SMB. De esta manera puede identificar fácilmente sus propias instrucciones de comando y control, eliminarlas del flujo de red y actuar.

La prueba de concepto del proyecto de Dillon solo necesita 12 líneas de código en Python que envía un único paquete de código ejecutable al puerto 445 de un ordenador infectado.

Los paquetes SMB normales comienzan con los bytes 0xFF 0x53 0x4D 0x42, que muestran ■SMB cuando aparecen como texto.

El malware reconoce su propio shellcode payload porque está marcado como 0x45 0x78 0x50 0x75, lo que mostraría ExPu, abreviatura de  ExtraPulsar.

¿Qué hacer?

Si has leído alguna noticia sugiriendo que este proyecto podría suponer un malware indetectable, no te preocupes. Un buen software de seguridad puede bloquear drivers kernel maliciosos y sus efectos secundarios de varias formas:

  • Los drivers kernel son ficheros de programa, pero con algunas características especiales como normalmente llevar la extensión .sys por lo que pueden ser detectados, bloqueados y eliminados por un antivirus.
  • Los drivers kernel se cargan en la memoria y quedan ahí, en una parte distinta que las apps normales por lo que pueden ser detectados y borrados por un antivirus.
  • Los paquetes SMB ExtraPulsar pueden intentar hacerse pasar por contenido normal, pero necesitan ser reconocidos por la puerta trasera por lo que pueden ser reconocidos y rechazados por filtros de red.
  • Las versiones modernas de Windows no cargaran drives kernel maliciosos por defecto. Los drivers kernel deben ser firmados digitalmente, por lo que los ciberdelincuentes deben hacerse con certificaciones falsas para poder actuar, por lo que pueden ser detectadas y bloqueadas por un antivirus.

No nos convence que Dillon publicara su prueba de concepto de malware como un proyecto GitHub accesible gratuitamente, pero ExtraPulsar no puede ser utilizado para lanzar directamente un ataque, y no representa una amenaza indetectable.

Por lo que seamos benévolos y digamos que el código de Dillon es interesante en términos educativos si estás interesado por la ciberseguridad

 

 

Para manteneros al día de las últimas amenazas haceros fans de nuestra página de Facebook o síguenos en Twitter para intercambiar experiencias en torno al mundo de la seguridad. Si deseas recibir nuestro boletín de seguridad en tu correo electrónico, suscríbete en la siguiente aplicación:

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.