jueves, 18 de abril de 2013

Curiosidades sobre la botnet vOlk (y II)

Vamos a mostrar algunas curiosidades técnicas de la botnet vOlk, un software de gran "éxito" entre los atacantes de Latinoamérica que está suponiendo un problema para todos los bancos de países como Perú, México, Costa Rica, Chile, Colombia... Vamos a repasar aquí sus principales características y algunos errores.
(Nota: La primera parte de este artículo fue publicada en Curiosidades sobre la botnet vOlk (I))

Fallos en el panel de control

En el panel web de la versión 4.0 de vOlk se descubrieron varias inyecciones SQL. Las han arreglado en cierta manera en la versión 4.0.2, pero han cometido un grave error a la hora de programar las páginas, que permiten obtener todos los datos robados. El fallo es sencillo: no comprueban que la sesión esté activa (que se haya accedido a través de usuario y contraseña al panel), por tanto con conocer las rutas basta. Normalmente estarán en:

Web-Admin/priv8/Controladores/

Dentro existen ficheros que permiten al atacante descargar en formato TXT los datos robados. El script que lo consigue es muy simple. Como se observa en el código no comprueba la sesión, lo que permite a cualquiera descargar los datos robados.


Este error no fue corregido hasta la versión 5.

El cliente

Con respecto al cliente (el "agente infector"), está programado en VB 6. Visual Basic no se considera popularmente un lenguaje "profesional", pero realmente es "cuestión de gustos". El código es sencillo en general, y bastante entendible, puesto que la idea es que el que compra la botnet lo adapte a sus necesidades.

En todo el programa podemos encontrar algunas curiosidades. Por ejemplo, evitan el uso de cadenas explícitas, tanto de URLs como de rutas de archivo o registro. De esta forma, las direcciones URL o las rutas a archivos o zonas del registro nunca están explícitamente escritas. Esto se supone que lo hacen para dificultar el análisis del binario, pero realmente el método que usan para "encriptarlo" (como se llama la función) no es más que una "ofuscación" en hexadecimal. Por supuesto, el atacante puede modificar el código fuente para cambiar la función.


Un aspecto importante que suele usar esta botnet (y muchas otras) es utilizar el user-agent como una especie de "contraseña" en el panel de control. Cuando se realiza la conexión desde el infector, se establece un user-agent concreto (normalmente una cadena aleatoria), en vez del habitual que define el navegador. En el servidor, se comprueba la cadena user-agent. Si no es la que se espera, se entiende que quien visita la página no está infectado, y por tanto, no debería "curiosear" en ella. Así que se le muestra un 404 falso.


Esto permite mantener "escondida" la página a usuarios que no estén infectados (investigadores, analistas, buscadores, etc.).


Otras características del cliente

La versión 4.0.2 en adelante intenta ser más compleja. Descarga diferentes partes del archivo hosts falso desde diferentes dominios. Y separa con ciertas cadenas algunas partes. Estas cadenas las debe añadir el atacante en la parte del servidor. La separación intenta que la infraestructura sea más "resistente", y quizás ofuscar el contenido (cosa que no consigue).


Luego, lo que el atacante pondrá en el panel de control será algo parecido a esto:

nxnxQ2XXiw99jhX0iwCVl2fu1.2.3.4 banco.com

Esta nueva versión también intenta escribir en %appdata%, un zona en la que podrá conseguirlo si se trata tanto de Windows XP como Vista en adelante.

Por último, intenta evitar la ejecución en ciertos equipos según el nombre del sistema. Esta es la última lista que contiene de serie. Si el equipo tiene ese nombre de red, el troyano no funcionará.


(Nota: La primera parte de este artículo fue publicada en Curiosidades sobre la botnet vOlk (I))


Sergio de los Santos
Twitter: @ssantosv

No hay comentarios:

Publicar un comentario en la entrada