Nous continuons une série d'articles sur l'analyse des logiciels malveillants. Dans la
première partie, nous avons expliqué comment Ilya Pomerantsev, experte en analyse de codes malveillants au CERT Group-IB, a effectué une analyse détaillée d'un fichier reçu par courrier d'une des sociétés européennes et y a trouvé des
logiciels espions AgentTesla . Dans cet article, Ilya présente les résultats d'une analyse en plusieurs phases du module
AgentTesla principal.
Agent Tesla est un logiciel d'espionnage modulaire distribué sous forme de malware en tant que service sous le couvert d'un produit enregistreur de frappe légal. L'agent Tesla est capable d'extraire et de transmettre les informations d'identification des utilisateurs des navigateurs, des clients de messagerie et des clients FTP au serveur pour les attaquants, d'enregistrer les données du presse-papiers et de capturer l'écran de l'appareil. Au moment de l'analyse, le site officiel des développeurs n'était pas disponible.
Fichier de configuration
Le tableau ci-dessous répertorie les fonctionnalités utilisées dans l'exemple utilisé:
Fixation du module principal dans le système
Si l'indicateur correspondant est défini, le module principal est copié le long du chemin spécifié dans la configuration comme chemin de fixation dans le système.
Selon la valeur de la configuration, le fichier reçoit les attributs «Hidden» et «System».
Le démarrage automatique est fourni par deux branches de registre:
- HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \% insregname%
- HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run \% insregname%
Étant donné que le chargeur de démarrage s'injecte dans le processus
RegAsm , la définition de l'indicateur persistant pour le module principal entraîne des conséquences assez intéressantes. Au lieu de se copier, le malware a sécurisé le fichier
RegAsm.exe d' origine dans le système, au cours duquel l'injection a été effectuée.
Interaction avec C&C
Quelle que soit la méthode utilisée, l'interaction réseau commence par l'obtention de l'adresse IP externe de la victime à l'aide du
checkip [.] Amazonaws [.] Com / ressource.
Ce qui suit décrit les méthodes de mise en réseau présentées dans le logiciel malveillant.
panneau Web
L'interaction se fait via le protocole HTTP. Le malware exécute une requête POST avec les en-têtes suivants:
- User-Agent: Mozilla / 5.0 (Windows U Windows NT 6.1 ru rv: 1.9.2.3) Gecko / 20100401 Firefox / 4.0 (.NET CLR 3.5.30729)
- Connexion: Keep-Alive
- Type de contenu: application / x-www-form-urlencoded
L'adresse du serveur est définie sur
% PostURL% . Le message chiffré est transmis dans le paramètre
"p" . Le mécanisme de cryptage est décrit dans la section
«Algorithmes de cryptage» (méthode 2) .
Le message transmis est le suivant:
type = {0} \ nhwid = {1} \ ntime = {2} \ npcname = {3} \ nlogdata = {4} \ nscreen = {5} \ nipadd = {6} \ nwebcam_link = {7} \ nclient = {8} \ nlink = {9} \ nusername = {10} \ npassword = {11} \ nscreen_link = {12}Le paramètre
type indique le type de message:
hwid - un hachage MD5 est écrit à partir des valeurs du numéro de série de la carte mère et de l'ID du processeur. Très probablement utilisé comme ID utilisateur.
heure - sert à transmettre l'heure et la date actuelles.
pcname - défini comme
<Username> / <Computer Name> .
logdata - journal des données.
Lors de la transmission des mots de passe, le message ressemble à:
type = {0} \ nhwid = {1} \ ntime = {2} \ npcname = {3} \ nlogdata = {4} \ nscreen = {5} \ nipadd = {6} \ nwebcam_link = {7} \ nscreen_link = {8} \ n [mots de passe]Les descriptions suivantes
décrivent les données volées au format
\ nclient [] = {0} \ nlink [] = {1} \ nusername [] = {2} \ npassword [] = {3} .
smtp
L'interaction se fait via le protocole SMTP. Le message transmis est au format HTML. Le paramètre
BODY est:
Le titre de la lettre a la forme générale:
<NOM UTILISATEUR> / <NOM ORDINATEUR> <TYPE DE CONTENU> . Le contenu de la lettre, ainsi que ses pièces jointes, ne sont pas cryptés.
L'interaction se fait via le protocole ftp. Un fichier nommé
<CONTENT TYPE> _ <USER NAME> - <COMPUTER NAME> _ <DATE AND TIME> .html est transféré vers le serveur spécifié. Le contenu du fichier n'est pas crypté.
Algorithmes de chiffrement
Les méthodes de chiffrement suivantes sont utilisées dans ce cas:
Méthode 1
Cette méthode est utilisée pour crypter les chaînes dans le module principal. Pour le chiffrement, l'algorithme
AES est
utilisé .
L'entrée est un nombre décimal à six chiffres. La transformation suivante est effectuée dessus:
f (x) = (((x >> 2 - 31059) ^ 6380) - 1363) >> 3La valeur résultante est l'index du tableau de données incorporé.
Chaque élément du tableau est une séquence
DWORD . Lors de la combinaison de
DWORD, un tableau d'octets est obtenu: les 32 premiers octets sont la clé de chiffrement, suivis de 16 octets du vecteur d'initialisation, et les octets restants sont les données chiffrées.
Méthode 2
L'algorithme
3DES est utilisé en
mode ECB avec un remplissage en octets entiers (
PKCS7 ).
La clé est spécifiée par le paramètre
% urlkey% , mais son hachage MD5 est utilisé pour le chiffrement.
Fonctionnalité malveillante
L'échantillon à l'étude utilise les programmes suivants pour implémenter sa fonction malveillante:
Enregistreur de frappe
S'il existe un indicateur VPO correspondant utilisant la fonction WinAPI,
SetWindowsHookEx affecte son propre gestionnaire pour les événements de frappe de clavier. La fonction de gestionnaire commence par obtenir le titre de la fenêtre active.
Si l'indicateur pour effectuer le filtrage d'application est défini, le filtrage est effectué en fonction du type spécifié:
- le nom du programme est recherché dans les en-têtes de fenêtre
- le nom du programme est recherché dans le nom du processus de la fenêtre
Ensuite, un enregistrement est ajouté au journal avec des informations sur la fenêtre active au format:
Ensuite, des informations sur la touche enfoncée sont enregistrées:
Avec une fréquence donnée, le journal collecté est envoyé au serveur. Si le transfert a échoué, le journal est enregistré dans le fichier
% TEMP% \\ log.tmp au format:
Lorsque la minuterie se déclenche, le fichier sera transféré sur le serveur.
Enregistreur d'écran
À la fréquence spécifiée, le logiciel malveillant crée une capture d'écran au format
Jpeg avec une valeur de qualité de 50 et l'enregistre dans le fichier
% APPDATA% \\ <Séquence arbitraire de 10 caractères> .jpg . Après le transfert, le fichier est supprimé.
Clipboardlogger
Si l'indicateur correspondant est défini, les remplacements sont effectués dans le texte intercepté conformément au tableau ci-dessous.
Après cela, le texte est inséré dans le journal:
PasswordStealer
Les logiciels malveillants peuvent télécharger des mots de passe à partir des applications suivantes:
Contrer l'analyse dynamique
- Utilisation de la fonction Veille . Permet de contourner certains bacs à sable par timeout
- Détruire le flux Zone.Identifier . Permet de masquer le fait de télécharger un fichier depuis Internet
- Le paramètre % filter_list% définit la liste des processus que le malware terminera avec un intervalle d'une seconde
- Désactiver l' UAC
- Désactiver le Gestionnaire des tâches
- Désactiver CMD
- Désactiver la fenêtre Exécuter
- Désactiver le panneau de configuration
- Désactiver l' outil RegEdit
- Désactivation des points de restauration du système
- Désactiver le menu contextuel dans l'Explorateur
- Désactiver msconfig
- Contournement UAC :
Fonctions inactives du module principal
Lors de l'analyse du module principal, les fonctions responsables de la diffusion sur le réseau et du suivi de la position de la souris ont été identifiées.
Ver
Dans un flux séparé, les événements de connexion au support amovible sont surveillés. Lorsqu'il est connecté à la racine du système de fichiers, le
malware est copié avec le nom
scr.exe , après quoi il recherche les fichiers avec l'extension
lnk . Chaque
commande lnk devient
cmd.exe / c start scr.exe & start <original command> & exit .
Chaque répertoire à la racine du support reçoit l'attribut
Hidden et un fichier avec l'extension
lnk est
créé avec le nom du répertoire caché et la commande
cmd.exe / c start scr.exe & explorer / root, \ "% CD% <NOM DE RÉPERTOIRE> \" & exit .
Mousetracker
La méthode d'interception est similaire à celle utilisée pour le clavier. Cette fonctionnalité est toujours en cours de développement.
Activité de fichier
Profil d'intrus
Grâce aux données d'authentification «filaire», nous avons pu accéder au centre de commande.
Cela nous a permis d'identifier le courrier final des attaquants:
junaid [.] dans *** @ gmail [.] com .
Le nom de domaine du centre de commande est enregistré sur
sg *** @ gmail [.] Com .
Conclusion
Au cours d'une analyse détaillée du malware utilisé dans l'attaque, nous avons pu établir sa fonctionnalité et obtenir la liste la plus complète d'indicateurs de compromis pertinents pour ce cas. La compréhension des mécanismes d'interaction réseau de malvari a permis de donner des recommandations sur l'ajustement du fonctionnement des outils de protection des informations, ainsi que d'écrire des règles IDS stables.
Le principal danger d'
AgentTesla en tant que DataStealer est que pour effectuer ses tâches, il n'a pas besoin de faire une fixation dans le système ou d'attendre une commande de contrôle. Une fois sur la machine, il commence immédiatement à collecter des informations privées et les transmet à CnC. Un tel comportement agressif est quelque peu similaire au comportement des cryptographes, à la seule différence que ces derniers ne nécessitent même pas de connexion réseau. En cas de collision avec cette famille après avoir nettoyé le système infecté du malware lui-même, il est obligatoire de changer tous les mots de passe qui pourraient au moins théoriquement être stockés dans l'une des applications ci-dessus.
Pour l'avenir, disons que les attaquants qui envoient
AgentTesla changent très souvent le chargeur de démarrage initial. Cela vous permet de passer inaperçu par les scanners statiques et les analyseurs heuristiques au moment de l'attaque. Et la tendance de cette famille à commencer immédiatement son activité rend les moniteurs système inutiles. La meilleure façon de traiter avec AgentTesla est une analyse préliminaire dans le bac à sable.
Dans le troisième article de cette série, nous examinerons les autres chargeurs de démarrage utilisés par
AgentTesla et nous en apprendrons également sur le processus de leur déballage semi-automatique. Ne le manquez pas!
Hash
C&C
Regkey
Mutex
Aucun indicateur.
Fichiers
Informations sur les échantillons