ZeuS-P2P internals – understanding the mechanics: a technical report

El título del post da referencia a un informe que se ha liberado hace unos días por parte del CERT de Polonia. El informe detalla el funcionamiento del troyano bancario ZEUS/P2P también conocido como GameOver.

Como sabéis un troyano bancario tiene como finalidad acabar robando dinero de las cuentas de particulares y de empresas. Para ello, utiliza inyecciones en el navegador, cambia el archivo hosts de la máquina, entre otras acciones.

Si alguien quiere tener mas información, puede consultar esta infografía de Kaspersky.

ZeuS-P2P internals – understanding the mechanics: a technical report
Infografía Zeus malware

La versión Zeus y la versión P2P de Zeus son distintas.

¿Que cambios hay en la nueva versión?

  • Comunicación P2P: La estructura tradicional del malware es que cuando infecta la máquina y el troyano roba los datos, los comunica a su panel de control central. La configuración i/o nuevas versiones del malware también se descarga del C&C.
  • DGA: En el caso de que el troyano no pueda comunicarse con la red P2P, genera dominios de manera automática. Estos dominios se pueden generar en base a distintos factores pero el mas usado suele ser en base al día y el mes.
  • Recursos firmados: Para prevenir la distribución de bots firmados por alguien que no sea el BotMaster, esta versión de GameOver usa clave del tipo RSA.
  • Cambios en el algoritmo de compresión: La versión de Zeus anterior usa ULC una implementación Open Source de del algoritmo NRV. En esta nueva versión usa funciones de  una librería zlib.
  • Cifrado adicional: Los datos almacenados se guardan con una sola clave.
  • DDoS: Es capaz de lanzar ataques de este tipo.
  • HTTP  via P2P: Es capaz de usar servidores P2P para las comunicaciones HTTP.
  • PCRE: La implementación de PCRE para la creación de reglas.
  • En el informe también se comenta  que parte del código de la versión 2.0.8.9 ha sido reescrito.

Webfilters

Dependiendo del dominio que tenga configuradoel troyano capturará los datos de envio o no.

En el archivo de configuración las URL vienen ya configuradas con unos símbolos.

  • Símbolo ! => Se capturará toda la información que se envíe.
  • Símbolo @ => Se hará una captura de pantalla
  • Símbolo !*=>Se ignorará todo lo que venga de esas URL

Webinjects.

Los troyanos bancarios se apoyan en un ficheros de inyecciones, cuando hookean el navegador y detectan que el usuario navega hacia la página que tiene configurada el troyano que va a atacar inyectan el código en sitios específicos.

ZeuS-P2P internals – understanding the mechanics: a technical report
Inyección

En la segunda entrega seguimos repasando mas aspectos del informe.