martes, 9 de octubre de 2012

Qhost - Falso Mensaje Privado de Facebook - Con Algoritmo TripleDES

Hoy les traigo un troyano Qhost que utiliza TripleDES para ocultar los strings de su configuración, y así evitar ser detectado por los anti-virus o miradas curiosas. Por la codificación se trataría del mismo autor de el siguiente troyano, que ha cambiado la rutina de codificación de datos.


Falso Correo enviado a las victimas.



Análisis en V.T. con un indice muy bajo de detecciones.



Análisis de condigo con IDA, el troyano no tiene capa de Crypter, solo tiene codificados los datos de su configuración, por ejemplo el archivo que será modificado (.host), el sitio web donde descargara los datos del pharming, mas adelante veremos estas cadenas codificadas.



Por lo observado mas arriba, esta utilizando las Clases Criptograficas de .NET
(System.Security.Cryptography)  http://msdn.microsoft.com/es-es/library/9eat8fht(v=vs.80).aspx



Analizando las class utilizadas este código me sonaba conocido, por lo que lo pueden ver completo aquí:



public static string Decrypt(string cipherString, bool useHashing)
{
    byte[] keyArray;
    //get the byte code of the string

    byte[] toEncryptArray = Convert.FromBase64String(cipherString);

    System.Configuration.AppSettingsReader settingsReader = 
                                        new AppSettingsReader();
    //Get your key from config file to open the lock!
    string key = (string)settingsReader.GetValue("SecurityKey", 
                                                 typeof(String));
            
    if (useHashing)
    {
        //if hashing was used get the hash code with regards to your key
        MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
        keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));
        //release any resource held by the MD5CryptoServiceProvider

        hashmd5.Clear();
    }
    else
    {
        //if hashing was not implemented get the byte code of the key
        keyArray = UTF8Encoding.UTF8.GetBytes(key);
    }

    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
    //set the secret key for the tripleDES algorithm
    tdes.Key = keyArray;
    //mode of operation. there are other 4 modes. 
    //We choose ECB(Electronic code Book)

    tdes.Mode = CipherMode.ECB;
    //padding mode(if any extra byte added)
    tdes.Padding = PaddingMode.PKCS7;

    ICryptoTransform cTransform = tdes.CreateDecryptor();
    byte[] resultArray = cTransform.TransformFinalBlock(
                         toEncryptArray, 0, toEncryptArray.Length);
    //Release resources held by TripleDes Encryptor                
    tdes.Clear();
    //return the Clear decrypted TEXT
    return UTF8Encoding.UTF8.GetString(resultArray);
}



Por lo que rápidamente me puede armar un DesEncriptor de estos datos Codificados.


Cadenas codificadas (están en Base64)


  loc_4020A9: push "e1gKTzuGEJRJxHVXHF0Iho7S9N3ZugWU"
  loc_4020B1: push "PbrgcxeVx+sNjAaoB3yda3hLVKyxYC4s4JBfGjZGxRS+HPhcd4vRG8jlTBswIyYx"
  loc_4020B9: push "e1gKTzuGEJRJxHVXHF0Ihhym4kE9bSGRbFWjXe0OZbQyxlGm5jRGSg=="
  loc_4020C1: push "PbrgcxeVx+sNjAaoB3yda3hLVKyxYC4s4JBfGjZGxRQ0qz3JLyMR9IPOxisJMJcu"
  loc_4020D7: push "Wm5dthHpNDWho2BghixeOddt9ITe3US4yHCDbqok2OAOk6djWRAIrQ=="
  loc_4020DF: push "Wm5dthHpNDWho2BghixeOddt9ITe3US4yHCDbqok2OAOk6djWRAIrQ=="
  loc_4020E7: push "Wm5dthHpNDWho2BghixeOddt9ITe3US4yHCDbqok2OAOk6djWRAIrQ=="
  loc_4020FD: push "Tay6b5RGpGE7a6wcJdZV8LdXmiDlAZbG2yJy44j0rKw5r7QjXmaPCIq1coCheiOEnjWr4yQg9twHne061RWFhQ=="
  loc_402105: push "JsHgDJ5kKVB4U/TZi12rtz19mIITjI9jBaFUBmnrqKo="
  loc_40210D: push "Dra4I3CxSBpn6OS/aaitFg=="
  loc_402115: push "XMW7t6E+D8XXLMm3g3JtXFb0azY1u7ZY"
  loc_40212B: push "Tay6b5RGpGE7a6wcJdZV8LdXmiDlAZbG2yJy44j0rKw5r7QjXmaPCAilMwK6ln9N8c57gdtt1pM="
  loc_402133: push "OhWvoPL57WI4suKtV6/OyxA2GT8h3O5O"



Decodificadas:



e1gKTzuGEJRJxHVXHF0Iho7S9N3ZugWU 
C:\\Mis Documentos

PbrgcxeVx+sNjAaoB3yda3hLVKyxYC4s4JBfGjZGxRS+HPhcd4vRG8jlTBswIyYx - C:\\Windows\\System32\\drivers\\etc\\hosts

e1gKTzuGEJRJxHVXHF0Ihhym4kE9bSGRbFWjXe0OZbQyxlGm5jRGSg==  
C:\\Mis Documentos\\Documento1.docx

PbrgcxeVx+sNjAaoB3yda3hLVKyxYC4s4JBfGjZGxRQ0qz3JLyMR9IPOxisJMJcu
 C:\\Windows\\System32\\drivers\\winlogon.exe  

Wm5dthHpNDWho2BghixeOddt9ITe3US4yHCDbqok2OAOk6djWRAIrQ==  http://celibateunion.com/robots.txt 

Wm5dthHpNDWho2BghixeOddt9ITe3US4yHCDbqok2OAOk6djWRAIrQ==  http://celibateunion.com/robots.txt

Wm5dthHpNDWho2BghixeOddt9ITe3US4yHCDbqok2OAOk6djWRAIrQ== http://celibateunion.com/robots.txt 

Tay6b5RGpGE7a6wcJdZV8LdXmiDlAZbG2yJy44j0rKw5r7QjXmaPCIq1coCheiOEnjWr4yQg9twHne061RWFhQ== 
SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System

JsHgDJ5kKVB4U/TZi12rtz19mIITjI9jBaFUBmnrqKo= 
ConsentPromptBehaviorAdmin

Dra4I3CxSBpn6OS/aaitFg== 
EnableLUA

XMW7t6E+D8XXLMm3g3JtXFb0azY1u7ZY
PromptOnSecureDesktop

Tay6b5RGpGE7a6wcJdZV8LdXmiDlAZbG2yJy44j0rKw5r7QjXmaPCAilMwK6ln9N8c57gdtt1pM=  SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

OhWvoPL57WI4suKtV6/OyxA2GT8h3O5O
Windows Defender



Key utilizada para la rutina del TDES:


  loc_40245B: push "ABCDEFGHIJKLMÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz"
  loc_402460: stfld key

....como se ve se puso todo el alfabeto en mayúsculas y minúsculas, como para despistar....


Descargara la configuración del Pharming desde:

http://celibateunion.com/robots.txt 







Como se puede observar esta realizando pharming a entidades Bancarias del Perú.






Muestra del Malware: http://www.mediafire.com/download.php?sxv9ytv9yi3byhs
Pass = infected


Les dejo el desencriptor ya compilado en C# y modificado para solo desencriptar de la pagina que publique mas arriba, por si quieren probar.

Desencriptor en: http://www.mediafire.com/?n3cdt5nc4tcaq4t
Sin password



Es todo por el momento.



@Dkavalanche  2012


No hay comentarios:

Android: BankBot. Hace un tiempo se filtro el fuente de un Bankbo t para android y se masifico bastante, creo que muchos lo han lanzado pa...