El gusano que se extiende WanaCrypt0r
Algo que muchos investigadores de seguridad han temido se ha hecho realidad. Los actores de la amenaza han integrado un exploit crítico que aprovecha un protocolo de comunicación popular usado por los sistemas de Windows, paralizando millares de ordenadores por todo el mundo con el ransomware.
A las pocas horas de ser apalancado, un defecto que había sido recientemente remendado por Microsoft se ha utilizado para distribuir el ransomware de WanaCrypt0r y causar estragos en todo el mundo.
En esta entrada del blog, vamos a describir el gusano responsable de difundir este ransomware mirando sus capacidades y lo que ha hecho esta amenaza tan exitosa.
Funcionalidad principal
WanaCrypt0r ha sido más efectivo -no sólo hace el bucle ransomware a través de cada sesión RDP abierta en un sistema y ejecutar el ransomware como ese usuario, pero el componente inicial que se deja caer en los sistemas parece ser un gusano que contiene y ejecuta el ransomware, Utilizando la vulnerabilidad ETERNALBLUE SMB (MS17-010).
El WinMain de este ejecutable primero intenta conectarse al sitio web www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com. En realidad no descarga nada allí, sólo trata de conectarse. Si la conexión tiene éxito, el binario sale.
Este fue probablemente algún tipo de interruptor de matar o técnica anti-sandbox. Sea lo que sea, se ha salido en contra de los autores del gusano, ya que el dominio se ha suprimido y el host en cuestión ahora resuelve una dirección IP que aloja un sitio web. Por lo tanto, nada sucederá en ningún nuevo sistema que ejecute el ejecutable. Esto sólo se aplica al binario con el hash listado anteriormente; Puede haber versiones nuevas lanzadas en el futuro. UPDATE: El segundo argumento de InternetOpenA es 1 (INTERNET_OPEN_TYPE_DIRECT), por lo que el gusano seguirá funcionando en cualquier sistema que requiera un proxy para acceder a Internet, como ocurre en la mayoría de las redes corporativas. Gracias a Didier Stevens por detectar lo que más se perdió.
Después de pasar este control, lo primero que hace el gusano es comprobar el número de argumentos con los que se lanzó. Si se ejecutó con menos de dos argumentos pasados, se instala un servicio denominado mssecsvc2.0 con nombre de presentación Microsoft Security Center (2.0) Service (donde el binario se ejecuta con dos argumentos), inicia ese servicio, elimina el binario ransomware localizado En los recursos del gusano, y lo ejecuta.
Si se ejecutó con dos argumentos o más, en otras palabras, si se ejecutó como un servicio de ejecución, eventualmente cae a través de la función de gusano.
La función de inicialización llamada primero invita a WSAStartup () a inicializar la conexión en red, a continuación, CryptAcquireContext () para inicializar la API de cifrado para que pueda utilizar un generador de números pseudoaleatorios criptográficamente seguro. A continuación, llama a una función que inicializa dos buffers utilizados para almacenar los DLLs de la carga útil del gusano, uno x86 y uno x64. Copia los DLL de la carga útil de la sección .data del gusano y luego copia todo el gusano binario después de él.
El código de cada DLL de la carga útil es muy pequeño, sólo obtiene el contenido del recurso (es decir, el gusano binario), cayendo al disco como C: \ WINDOWS \ mssecsvc.exe (esta ruta es realmente codificada) y ejecutándolo.
La vulnerabilidad de las PYMES se aprovecha para difundir el ransomware en todo el mundo
Después de inicializar la funcionalidad utilizada por el gusano, se crean dos subprocesos. El primer hilo escanea los hosts en la LAN. El segundo hilo se crea 128 veces y escanea hosts en Internet.
El primer hilo (encargado de escanear LAN) utiliza GetAdaptersInfo () para obtener una lista de rangos de IP en la red local y, a continuación, crea una matriz de todas las IP de esos rangos para escanear.
La exploración de LAN es multiproceso en sí, y hay código para evitar el escaneo de más de 10 direcciones IP en la LAN a la vez.
El hilo de escaneado intenta conectarse al puerto 445 y, si es así, crea un nuevo hilo para intentar explotar el sistema con MS17-010 / EternalBlue. Si los intentos de explotación tardan más de 10 minutos, se detiene el hilo de explotación.
Los hilos que exploran Internet generan una dirección IP aleatoria utilizando el generador de números pseudoaleatorios criptográficamente seguro del sistema operativo inicializado anteriormente, o un generador de números pseudoaleatorios más débil si el CSPRNG no se inicializa. Si la conexión al puerto 445 en esa dirección IP aleatoria tiene éxito, se analiza todo el rango / 24 y si el puerto 445 está abierto, se realizan intentos de explotar. Esta vez, el tiempo de espera de explotación para cada IP no ocurre después de 10 minutos, sino después de una hora.
El hilo de explotación intenta varias veces explotar, con dos conjuntos diferentes de búferes utilizados (tal vez uno para x86 y otro para x64). Si detecta la presencia de DOUBLEPULSAR después de cualquier intento de explotación, utiliza DOUBLEPULSAR para cargar la DLL de carga útil correspondiente.