Bibliothèque
Ma bibliothèque

+ Ajouter à la bibliothèque

Contacter-nous !
Support 24/24 | Rules regarding submitting

Nous téléphoner

0 825 300 230

Forum

Vos requêtes

  • Toutes : -
  • Non clôturées : -
  • Dernière : le -

Nous téléphoner

0 825 300 230

Profil

BackDoor.Bulknet.739

Added to the Dr.Web virus database: 2012-09-20

Virus description added:

Lors du lancement du programme malveillant, un composant exécute le décryptage du corps du Trojan. Ensuite, il charge les sections dans la mémoire, configure les importations et transmet la gestion au point d'entrée.

screen

Puis un autre module charge l'image dans la mémoire de l'ordinateur infecté.

Downloader

Le downloader du Trojan s'installe en se copiant dans le dossier %USER%\<rnd>.exe, et s'enregistre à l'autodémarrage :

software\microsoft\windows\currentversion\run <rnd>=%USER%\<rnd>.exe

Il crypte le trafic en utilisant les clés RSA.

Il fait une demande au serveur en la cryptant avec la clé publique :

screen

la réponse est décryptée avec la clé privée :

screen

Le chargeur inclut dans son corps une liste de noms de domaine, dont une partie est cryptée. Il s'adresse aux domaines de la liste avec une demande GET via le protocole HTTPS, en réponse il reçoit la page d'accueil se trouvant à l'adresse du site, analyse sa structure HTML en recherchant la balise d'insertion de l'image <img src="data:image/jpeg;base64 … >.

Il décrypte à partir des arguments de cette balise un fichier malveillant (par la commande ou lance le processus svchost.exe) et essaye d'incorporer le fichier dans ce processus ou de l'enregistrer dans un dossier temporaire.

Ensuite, il récupère de son corps le module BackDoor.Bulknet.739 (DDoS) et la liste d'adresses, et le charge dans la mémoire.

Il s'adresse à l'un des serveurs de la liste avec une demande http, télécharge la page Web et analyse sa structure HTML en recherchant la balise d'insertion de l'image <img src="data:image/jpeg;base64 … >. Il décrypte à partir des arguments de cette balise le fichier, masqué sous un fichier au format JPEG. Ce fichier comprend le conteneur de données, compressé gzip. De ce conteneur, le deuxième module de BackDoor.Bulknet.739, conçu pour envoyer du spam est décrypté.

Protocole du downloader

Le downloader envoie les données sous la forme d'un contenu, dont l'algorithme de cryptage est le suivant : 

int crypt_send_data(DWORD *data, signed int size, int key1)
{
  int count; // ecx@1
  int key; // edi@4
  int n; // eax@4
  int size_add; // ebx@7
  DWORD *v7; // esi@8
  int v9; // [sp+4h] [bp-8h]@1
  int v10; // [sp+8h] [bp-4h]@8
  count = 0;
  v9 = 0;
  if ( data && size && key1 )
  {
    key = 0x19660D * key1 + 0x3C6EF35F;
    n = size / 4;
    if ( size / 4 > 0 )
    {
      v9 = 4 * n;
      do
      {
        data[count] ^= key;
        key = 0x19660D * key + 0x3C6EF35F;
        ++count;
      }
      while ( count < n );
    }
    size_add = size % 4;
    if ( size % 4 )
    {
      v10 = 0;
      v7 = &data[count];
      memcpy(&v10, &data[count], size_add);
      v10 ^= key;
      memcpy(v7, &v10, size_add);
      v9 += size_add;
    }
  }
  return v9;
}

Le paquet a la structure suivante :

struct HEAD{
    uint32 rnd1;
    uint32 rnd2;
    uint32 crc32;
};
 
struct BOT_INFO{
    uint32 field2;// 1
    uint32 field3;// 2
    uint32 field4;// 1
    uint32 field5;// 0
    uint32 field6;// 0
    uint32 field7;// 15
    uint32 rnd3[4];
    uint32 bid[4];
    uint32 instal_flag;
    uint32 len_host_crc32;
    uint32 host_crc32;
};
 
HEADER 0xC
97 73 BC F2 DB 00 76 E0  72 88 73 07
 
BOT_INFO 0x44
01 00 00 00 02 00 00 00  01 00 00 00 00 00 00 00
00 00 00 00 15 00 00 00  FA 13 29 40 56 6C 82 99
AF C5 DB F2 09 1F 35 4C  68 55 ED 52 F5 60 43 1E
1E 95 41 3A 33 21 C3 3B  0C 00 00 00 04 00 00 00
4B ED 16 27 00 00 00 00  00 00 00 00 00 00 00 00

DDoS

Pour lancer des attaques DDoS, le Trojan crée 8 threads, choisit par hasard une adresse et envoie une demande POST suivante :

http://%s/?ptrxcz_%s
или
http://%s/

contenu aléatoire et longueur libre. En outre, après avoir connecté le serveur SMTP, le Trojan peut envoyer des emails avec n'importe quel contenu.

Le bot s'enregistre dans le dossier% System32% ou%% USERDIR sous le nom regedit.exe et modifie la branche du registre Microsoft\Windows\CurrentVersion\Run pour assurer l'auto démarrage. Il multiplie le nombre des connexions tcp possibles en modifiant la branche du registre SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.

Machine spam

Pour envoyer des emails, le Trojan utilise une machine spam spéciale utilisant un jeu de templates, par exemple le template de messages :

screen

La liste des adresses email :

screen

Le template contenant une liste de noms :

screen

En cas de faille, le bot peut envoyer un message d'erreur via UDP au serveur de gestion.

screen

Le protocole de la machine spam

Tous les messages du bot représentent l’unité de données suivante :

struct MSG{
    DWORD size;
    BYTE data[size]; //les données sont cryptées
};

L'algorithme de cryptage est le suivant :

void ciper(char *key, char* data, int size){
    uint32 max=sizeof(KEY_ENC)-1;
    int j=0;
    if ( key && data ){
        if ( size > max){
            do{
                for (int i=0;i<max;i++){
                    data[i+j]^= key[i];
                }
 
                for (int i=0;i<max/2;i++){
                    char tmp = data[i+j];
                    data[i+j] = data[j-i+(max-1)];
                    data[j-i+(max-1)]= tmp;
                }
 
                if ( j & 1 ){
                    for (int i=0;i<max;i++){
                        data[i+j]=~data[i+j];
                    }
                }
                j+=max;
            }while (j+max< size );
        }
        size=size%max;
        for (int i=0;i<size;i++){
            data[i+j]=~data[i+j];
        }
    }
}

Les clés de cryptage et de décryptage :

0xe0:eto ochen prostoarelkioiqyrut
0xe1:turyqioikleraotsorp nehco ote

Les messages sortants ont la structure suivante :

struct HEAD_REQ{
  DWORD bid;
  DWORD lip;
  DWORD bver;
  DWORD num_cfg;
  DWORD subop;
  DWORD os;
  WORD dns;
  WORD smtp;
};
 
DWORD size;
//les données de ce champ sont cryptées
HEAD_REQ head;
BYTE data[size];

Les paquets entrants :

struct HEAD_RES{
  DWORD cmd;
};
 
union U_OP{
  OP_0 op0;
  OP_1 op1;
  OP_4 op4;
  OP_5 op5;
  OP_6 op6;
  OP_7 op7;
  OP_8 op8;
};
 
struct OP_0{
};
 
 
 
struct OP_1{
  DWORD build;
  DWORD size;
};
 
 
struct OP_4{
};
 
struct OP_5{
  DWORD bid;
  DWORD remote_addr;
  DWORD seed_time;
  DWORD d4;
};
 
struct OP_6{
  DWORD num_tmpl;
  DWORD d2;
  DWORD d3;
  DWORD num_x;
  DWORD d5;
};
 
struct OP_7{
  DWORD flag_op;
  DWORD num_cfg;
};
 
 
struct OP_8{
  DWORD sub_opcode;
  BYTE b1;
};
 
 
enum OP_RES{
    OP_0 = 0, //stopper le spam, effacerles templates
    OP_1 = 1, //la liste des templates des noms
    OP_4 = 4, //stopper le bot
    OP_5 = 5, //l'initialisation du bid, l'identification du nom de hôte du bot
    OP_6 = 6, //les templates du spam
    OP_7 = 7, //la configuration principale du bot
    OP_8 = 8, //la liste email
};
 
DWORD size;
//les données de ce champ sont cryptées
HEAD_RES head;
U_OP op;
BYTE data[size+sizeof(op)+sizeof(HEAD_RES)];

L'ordre d'envoi des paquets par le Trojan est le suivant :

  1. Sortant. le bid n'est pas initialisé (si le bot est lancé pour la première fois). Comprend l’IP lip local, la version de l’OS, les indicateurs dns, la version du bot bver, le nombre des serveurs smtp vérifiés. И num_cfg=0 0x1C
    00 00 00 00 C0 A8 EE 83  AC 01 00 00 00 00 00 00
    00 00 00 00 05 01 28 0A  20 00 04 00
  2. Entrant. OP_7, inclut le fichier de configuration principal pour la machine spam. 0x1F1
    07 00 00 00 01 00 00 00  08 00 00 00 75 64 70 73
    6F 63 6B 63 6F 75 6E 74  00 32 30 00 69 66 68 6F
    73 74 75 73 65 69 6E 6D  61 69 6C 66 72 6F 6D 00
    31 00 6D 61 78 74 72 79  63 6F 6E 6E 00 33 23 23
    23 23 00 62 63 63 00 30  00 65 78 65 5F 75 72 6C
    00 00 61 64 64 72 00 37  38 2E 34 36 2E 34 36 2E
    31 32 34 00 70 6F 72 74  00 32 35 00 6D 61 78 63
    6F 6E 6E 00 31 30 30 00  68 65 6C 6F 73 65 6C 65
    63 74 69 66 68 6F 73 74  00 33 00 74 72 79 61 67
    61 69 6E 74 72 79 00 33  00 6D 61 78 74 72 79 65
    72 72 00 32 00 64 69 65  69 66 6E 6F 73 70 61 6D
    00 31 30 00 6D 61 78 74  72 79 62 61 64 66 72 6F
    6D 00 32 00 63 6F 6E 73  74 63 6F 6E 6E 65 63 74
    00 31 00 63 6F 6D 5F 62  6F 74 5F 63 6F 6E 74 72
    5F 64 69 76 00 00 63 68  65 63 6B 73 6D 74 70 64
    65 6C 61 79 00 32 35 30  00 74 75 72 62 6F 6D 69
    6E 00 35 00 74 72 79 61  67 61 69 6E 70 61 75 73
    65 00 33 36 30 00 74 72  79 70 69 70 65 6C 69 6E
    69 6E 67 00 31 00 62 6F  74 5F 64 69 76 00 00 68
    65 6C 6F 73 65 6C 65 63  74 69 66 6E 6F 68 6F 73
    74 00 31 00 6B 6E 6F 63  6B 64 65 6C 61 79 00 36
    30 00 6D 61 78 74 72 79  62 6C 61 63 6B 00 32 00
    73 77 6F 74 74 69 6E 67  00 00 6D 61 78 75 64 70
    74 72 79 00 35 00 63 6F  6D 5F 62 6F 74 5F 64 69
    76 00 00 74 75 72 62 6F  6D 61 78 00 32 30 00 63
    63 00 30 00 75 64 70 72  65 63 76 74 69 6D 65 6F
    75 74 00 32 30 00 6D 78  63 6F 6E 6E 74 69 6D 65
    6F 75 74 00 38 30 00 62  6F 74 5F 63 6F 6E 74 72
    5F 64 69 76 00 00 73 61  76 65 75 6E 6B 61 6E 73
    77 00 00 6D 78 72 65 63  76 74 69 6D 65 6F 75 74
    00 38 30 00 6D 61 78 64  6F 6D 63 6F 6E 6E 00 32
    00

    screen

  3. Sortant. num_cfg = head.num_cfg 0x1C
    00 00 00 00 C0 A8 EE 83  AC 01 00 00 08 00 00 00
    00 00 00 00 05 01 28 0A  20 00 04 00
  4. Entrant. OP_5, comprend un bid, attribué au bot, son IP externe, le temps. 0x14
    05 00 00 00 97 68 1F 00  5F D3 A8 0A C8 E1 53 51
    00 00 00 00
    Le bot détermine le nom de l’hôte pour son IP externe et met l’indicateurdns. .
  5. Sortant. num_cfg = head.num_cfg, dns | 1 et le bid attribué figurera dans tous les paquets. 0x1C
    97 68 1F 00 C0 A8 EE 83  AC 01 00 00 08 00 00 00
    00 00 00 00 05 01 28 0A  21 00 04 00
  6. Entrant OP_8. La liste e-mail 0x35
    08 00 00 00 0B 00 00 00  00 50 41 59 56 45 53 55
    50 50 4F 52 54 40 41 45  58 50 2E 43 4F 4D 00 77
    70 70 69 6D 30 30 31 2E  41 45 58 50 2E 43 4F 4D
    00 0C 0A DB 1A
  7. Sortant. HEAD_REQ.subop=OP_8.sub_opcode, num_cfg=head.num_cfg 0x1C
    97 68 1F 00 C0 A8 EE 83  AC 01 00 00 08 00 00 00
    0B 00 00 00 05 01 28 0A  21 00 04 00
  8. Entrant. OP_6 template de spam.
  9. Sortant. Comme le précédent, mais des données additionnelles sont ajoutées. struct OP_1_EXT{
        DWORD field4;
        DWORD field5;
        DWORD field6;
        DWORD field7;
        DWORD field8;
    };
    0x1C
    97 68 1F 00 C0 A8 EE 83  AC 01 00 00 08 00 00 00
    0B 00 00 00 05 01 28 0A  21 00 04 00
     
    OP_1_EXT.field4=OP_6.num_tmpl;
    OP_1_EXT.field5=OP_6.d2;
    OP_1_EXT.field6=HEAD_REG.num_cfg;
     
  10. Entrant. OP_1 la liste de noms.

OP_1.num_tmpl==OP_6.num_tmpl est le numéro de template.

Recommandations pour le traitement

  1. Si le système d'exploitation peut être démarré (en mode normal ou en mode sans échec), téléchargez Dr.Web Security Space et lancez un scan complet de votre ordinateur et de tous les supports amovibles que vous utilisez. En savoir plus sur Dr.Web Security Space.
  2. Si le démarrage du système d'exploitation est impossible, veuillez modifier les paramètres du BIOS de votre ordinateur pour démarrer votre ordinateur via CD/DVD ou clé USB. Téléchargez l'image du disque de secours de restauration du système Dr.Web® LiveDisk ou l'utilitaire pour enregistrer Dr.Web® LiveDisk sur une clé USB, puis préparez la clé USB appropriée. Démarrez l'ordinateur à l'aide de cette clé et lancez le scan complet et le traitement des menaces détectées.

Veuillez lancer le scan complet du système à l'aide de Dr.Web Antivirus pour Mac OS.

Veuillez lancer le scan complet de toutes les partitions du disque à l'aide de Dr.Web Antivirus pour Linux.

  1. Si votre appareil mobile fonctionne correctement, veuillez télécharger et installer sur votre appareil mobile Dr.Web pour Android. Lancez un scan complet et suivez les recommandations sur la neutralisation des menaces détectées.
  2. Si l'appareil mobile est bloqué par le Trojan de la famille Android.Locker (un message sur la violation grave de la loi ou la demande d'une rançon est affiché sur l'écran de l'appareil mobile), procédez comme suit:
    • démarrez votre Smartphone ou votre tablette en mode sans échec (si vous ne savez pas comment faire, consultez la documentation de l'appareil mobile ou contactez le fabricant) ;
    • puis téléchargez et installez sur votre appareil mobile Dr.Web pour Android et lancez un scan complet puis suivez les recommandations sur la neutralisation des menaces détectées ;
    • Débranchez votre appareil et rebranchez-le.

En savoir plus sur Dr.Web pour Android