MitB

Tatanga: un nuevo troyano bancario con funcionalidades de MitB

Hace un par de semanas nuestra unidad de e-crime detectó un nuevo troyano bancario, bautizado con el nombre de Tatanga, con funciones de Man in the Browser (MitB) y que afectaba a bancos de España, Reino Unido, Alemania y Portugal. Al igual que SpyEye, es capaz de realizar transferencias de forma automática, obteniendo previamente los muleros de un servidor, y de falsear el saldo real y los movimientos de las víctimas. Su detección en aquel momento era muy baja y además se trataba de detecciones genéricas. Tras anunciar el descubrimiento en nuestro blog en inglés la detección aumentó, aunque la nomenclatura es bastante dispar.

El troyano en cuestión es bastante sofisticado. Está escrito en C++ y usa técnicas de ocultación para evitar que sus archivos en disco sean detectados, aunque en ocasiones estos quedan al descubierto. Descarga varios módulos cifrados (DLL) que son descifrados en memoria cuando se produce la inyección en navegadores u otros procesos con el objetivo de evitar la detección de los antivirus. Los módulos son los siguientes:

  • ModEmailGrabber: se encarga de recolectar direcciones de correo electrónico.

Spyeye using MitB to make fraudulent transactions

Recently our e-crime team has discovered that Spyeye is using Man in the Browser (MitB) techniques in order to make fraudulent transactions. Thanks to MitB cybercriminals can make the transactions in the same banking online session as the real user, therefore they can do it in a quickly and clean way. I say clean because in the logs of the online banking application there won't be more IPs than the real user ones. It means less proofs in an hypothetical court against the bad guys, for example.

The whole MitB core was written in Javascript and the actions performed to make the fraudulent transaction are the following:

  • When the user goes to the accounts details screen the information (account number, type of account and balance) of all of them are grabbed and sent to the malicious server in a serialized array:

    ["maxCheck" = ["name" = "MY_ACCOUNT_NAME",
               "check" = "MY_ACCOUNT_NUMBER",
               "sum" = $$$],
    "allChecks" = [ 0 = ["name" = "MY_ACCOUNT_NAME",
    "check" = "MY_ACCOUNT_NUMBER",
    "sum" = $$$]
    ]
    ]

     

  • From all the possible accounts it's chosen like preferred the one with more money (maxCheck array).
Distribuir contenido