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

Linux.BackDoor.Xunpes.1

Added to the Dr.Web virus database: 2016-01-20

Virus description added:

SHA1: e2432fa6c53dfb62aeba242cd28fc4d51a70dbe3 (backdoor)
de5cc2779b9519bc3bbbda084f0b4cb858d2f890 (dropper)

Un trojan backdoor ciblant Linux consistant en un injecteur et une charge utile effectuant plusieurs actions malveillantes.

L’injecteur a été créé en utilisant Lazarus, un IDE multi plateforme gratuit pour le compilateur Free Pascal. Une fois lancé, il affiche la fenêtre de dialogue suivante invitant un utilisateur à entrer ses login et mot de passe :

#drweb

Après avoir entré des données arbitraires, exceptées celles qui sont codées en dur (hard-coded) dans le corps du Trojan, des boîtes de dialogue comme "Initializing", "Connecting”, et "Signing in” s’affichent sur l’écran les unes à la suite des autres. Ensuite, le message d’erreur suivant s’affiche : "Incorrect user ID or password. Please try again”. Si l’utilisateur entre un des identifiants suivants :

  • j****/g***********
  • m*****/f*********
  • c****/j********

la réponse du Trojan sera la suivante : "An error occurred while attempting to login: invalid user token".

Le second composant du Trojan –la porte dérobée elle-même- est sauvegardée dans le dossier /tmp/.ltmp/ après le lancement de l’injecteur. Une fois que la backdoor est lancée, elle décrypte les lignes de configuration cryptées via l’algorithme RC4. La clé de déchiffrement est codée en dur dans le corps du Trojan. La configuration possède la structure suivante :

#drweb

serversList: liste de serveurs C&C utilisés pour établir une connexion ;

proxyList: liste de serveurs proxy via lesquels une connexion peut être établie ;

Salt: ligne utilisée pour générer un mot de passe ;

bitMask: nombre qui vérifie les bits indiqués. S’ils sont paramétrés sur “1”, des actions spécifiques seront effectuées Durant l’initialisation.

Valeurs des bits:

bitValeur
0x1Se copie lui-même dans un endroit spécifié par une valeur du champ pathToExe dans la configuration
0x2Traite le paramètre -m : -m file supprime un fichier ou le dossier du file
0x4Débloque son fichier exécutable pour Read/Write
0x8Paramètre l’autorun via $HOME/.config/autostart
0x10Paramètre l’autorun via crontab
0x20Ouvre /tmp/$tmpLockFileName et le protège en écriture
0x40Lance un thread avec un keyloggerм
0x80Exécute la commande fork/chdir
0x100Ajoute les proxies système à la liste des serveurs proxy
0x400Tente de se connecter d’abord via un proxy lors de la connexion au serveur
0x800Se connecte uniquement via un proxy

Le fichier .default.conf est créé dans le dossier du fichier exécutable et possède la structure suivante :

struct conf{
    int32 magic; //0DE03C44h
    char hostid[32];
    char group[32];
}

Une fois que la procédure d’initialisation et que le déchiffrement du fichier de configuration sont terminées, la backdoor se connecte à un serveur, lui envoie la clé et commence à exécuter les commandes. Toutes les commandes, exceptée la commande id=5, sont chiffrées.

Liste des commandes :

idActions à exécuter
5Obtient la clé pour le déchiffrement des futures commandes du serveur. C’est le seul message qui arrive déchiffré et contient non seulement la clé mais également un tampon envoyé par la backdoor lors de la connexion et chiffré en utilisant la clé reçue.
7Ferme tous les fichiers en cours d’exécution et réinitialise les clés de chiffrement. En fait, il s’agit d’une commande pour clore la connexion.
8Se supprime lui-même de l’autorun et s’arrête.
9Paramètre le champ HostId field dans le fichier de configuration.
10Paramètre le champ group dans le fichier de configuration.
11Envoie une requête HTTP, sauvegarde le fichier reçu dans le dossier /tmp/ et l’exécute.
12Lance un fichier, dont le chemin et les arguments sont reçus du serveur, qui stoppe le fonctionnement de la backdoor.
13Termine une connexion et s’arrête.
14Envoie une requête HTTP et sauvegarde le fichier reçu dans le dossier /tmp/. Le serveur détermine si le fichier sera lancé ou non.
17Envoie une liste de fichiers et dossiers dans un répertoire spécifique (sans ouvrir les dossiers).
19Lance un thread qui vérifiera un dossier en particulier pour que les fichiers correspondent à un masque transféré et les envoie au serveur jusqu’à ce qu’une commande pour arrêter ce thread soit reçue.
21Arrête un thread utilisé pour le téléchargement de fichiers.
22Ouvre un fichier, sauvegarde le handle sous le numéro index et envoie le contenu du fichier sur le serveur.
23Writes to a file, whose handle is under the index number.
25Copie un fichier.
26Exécute un appel système pour un nouveau processus de création et lance ce processus.
27Renomme un fichier.
28Supprime un fichier
29Créé un dossier.
30Supprime un dossier.
31Créé un nouveau dossier ou envoie une liste de fichiers dans un dossier (de manière récursive), en fonction de la valeur des 4 premiers octets.
33Créé une archive zip avec un dossier en particulier.
35Lance un thread utilisé pour exécuter les commandes bash.
36Envoie une commande à un thread utilisé pour exécuter les commandes bash.
37Arrête un thread utilisé pour l’exécution des commandes bash.
39Envoie des données sur un dispositif et le fichier .default.conf.
41Lit des données depuis utmp.
45Tue le processus par son pid.
46Reçoit l’en-tête de la fenêtre courante.
47Ferme une fenêtre spécifiée en lui envoyant un événement comme ClientMessage : _NET_CLOSE_WINDOW.
48Envoie les fichiers autorun depuis le dossier /usr/share/applications/ au serveur.
50Envoie une requête HTTP et sauvegarde le fichier dans le dossier /tmp/. Le serveur détermine si le fichier sera lancé ou non.
52-53Génère l’événement KeyPressed.
54Génère l’événement ButtonRelease.
56Prend une capture d’écran et l’envoie au serveur.
59Envoie une liste de fichiers créés par un keylogger s’il est activé.
61Reçoit la taille du fichier créé par le keylogger.
62Supprime un fichier créé par un keylogger.
63Envoie les contenus d’un fichier créé par un keylogger au serveur.
67Reçoit des données sur des sockets ouverts depuis /proc et les envoie au serveur.

News sur le Trojan

Recommandations pour le traitement


Linux

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

Version démo gratuite

Pour 1 mois (sans enregistrement) ou 3 mois (avec enregistrement et remise pour le renouvellement)

Télécharger Dr.Web

Par le numéro de série