La participation a échoué: nous amenons AgentTesla à l'eau potable. 2e partie


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é:
La description
Valeur
Indicateur d'utilisation de KeyLogger
vrai
Indicateur d'utilisation de ScreenLogger
faux
Intervalle d'envoi du journal KeyLogger en minutes
20
Intervalle d'envoi du journal ScreenLogger en minutes
20
Indicateur pour le traitement de la touche de retour arrière. Faux - journalisation uniquement. Vrai - efface la clé précédente
faux
Tapez CnC. Options: smtp, panneau Web, ftp
smtp
Drapeau d'activation du thread pour terminer les processus de la liste "% filter_list%"
faux
Drapeau de désactivation UAC
faux
Désactiver l'indicateur du gestionnaire de tâches
faux
Indicateur de désactivation CMD
faux
Indicateur de désactivation de la fenêtre d'exécution
faux
Désactiver l'indicateur du visualiseur de registre
faux
Désactiver les points de restauration du système
vrai
Indicateur de désactivation du panneau de commande
faux
Indicateur de désactivation MSCONFIG
faux
Drapeau de désactivation du menu contextuel de l'explorateur
faux
Indicateur de broche système
faux
Chemin pour copier le module principal lors de l'amarrage dans le système
% startupfolder% \\% insfolder% \\% insname%
Indicateur de définition des attributs «Système» et «Secret» pour le module principal fixé dans le système
faux
Redémarrer l'indicateur d'exécution lors de la fixation sur le système
faux
Indicateur de déplacement du module principal vers un dossier temporaire
faux
Drapeau UAC Bypass Run
faux
Format de date et d'heure pour l'enregistrement
aaaa-MM-jj HH: mm: ss
Indicateur pour utiliser le filtre de programme pour KeyLogger
vrai
Type de filtrage de programme.
1 - le nom du programme est recherché dans les en-têtes de fenêtre
2 - le nom du programme est recherché dans le nom du processus de la fenêtre
1
Filtre de programme
Facebook
Twitter
Gmail
Instagram
"Film",
Skype
"Porno",
Hack
Whatsapp
Discorde

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) >> 3

La 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é:

  1. le nom du programme est recherché dans les en-têtes de fenêtre
  2. 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:
Clé
Record
Retour arrière
Selon l'indicateur de traitement de la clé de retour arrière: Faux - {RETOUR}
Vrai - efface la clé précédente
CAPSLOCK
{CAPSLOCK}
Échap
{ESC}
PageUp
{PageUp}
Vers le bas
? darr;
SUPPRIMER
{DEL}
"
& quot;
F5
{F5}
&
& amp;
F10
{F10}
Onglet
{TAB}
<
& lt;
>
& gt;
Barre d'espace
F8
{F8}
F12
{F12}
F9
{F9}
ALT + TAB
{ALT + TAB}
Fin
{END}
F4
{F4}
F2
{F2}
CTRL
{CTRL}
F6
{F6}
À droite
? rarr;
En haut
& uarr;
F1
{F1}
Gauche
& larr;
Pagedown
{PageDown}
Insérer
{Insérer}
Gagner
{Win}
Numlock
{NumLock}
F11
{F11}
F3
{F3}
Accueil
{ACCUEIL}
ENTRER
{ENTRER}
ALT + F4
{ALT + F4}
F7
{F7}
Une autre clé
Caractère en majuscule ou en minuscule selon la position des touches CapsLock et Shift

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:
Navigateurs
Clients de messagerie
Clients FTP
Chrome
Perspectives
Filezilla
Firefox
Thunderbird
WS_FTP
IE / Edge
Foxmail
Winscp
Safari
Opera Mail
Coreftp
Navigateur Opera
IncrediMail
Navigateur FTP
Yandex
Pocomail
Flashfxp
Comodo
Eudora
Smartftp
Chromeplus
Thebat
FTPCommander
Chrome
Boîte aux lettres
Torche
Clawsmail
7Star
Amigo
Bravesoftware
Clients Jabber
Clients VPN
Centbrowser
Psi / psi +
VPN ouvert
Chedot
Coccoc
Navigateur d'éléments
Gestionnaires de téléchargement
Navigateur de confidentialité Epic
Gestionnaire de téléchargement Internet
Kometa
Jdownloader
Orbitum
Spoutnik
uCozMedia
Vivaldi
Seamonkey
Navigateur Flock
Navigateur Uc
Blackhawk
Cyberfox
K-meleon
Icecat
Icedragon
Palemoon
Waterfox
Navigateur Falkon


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


Le chemin
La description
% Temp% \ temp.tmp
Contient un compteur de tentatives de contournement de l'UAC
% startupfolder% \% insfolder% \% insname%
Façon de consolider dans le système HPE
% Temp% \ tmpG \ {Heure actuelle en millisecondes} .tmp
Le chemin pour la sauvegarde du module principal
% Temp% \ log.tmp
Fichier journal
% AppData% \ {Séquence arbitraire de 10 caractères} .jpeg
Captures d'écran
C: \ Users \ Public \ {Séquence arbitraire de 10 caractères} .vbs
Chemin d'accès au fichier vbs que le chargeur de démarrage peut utiliser pour fermer le système
% Temp% \ {Nom de dossier arbitraire} \ {Nom de fichier}
Chemin utilisé par le chargeur de démarrage pour se connecter au système

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


SHA1
A8C2765B3D655BA23886D663D22BDD8EF6E8E894
8010CC2AF398F9F951555F7D481CE13DF60BBECF
79B445DE923C92BF378B19D12A309C0E9C5851BF
15839B7AB0417FA35F2858722F0BD47BDF840D62
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD

C&C


URL
sina-c0m [.] icu
smtp [.] sina-c0m [.] icu


Regkey


Registre
HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \ {Script Name}
HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \% insregname%
HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run \% insregname%

Mutex


Aucun indicateur.

Fichiers


Activité de fichier
% Temp% \ temp.tmp
% startupfolder% \% insfolder% \% insname%
% Temp% \ tmpG \ {Heure actuelle en millisecondes} .tmp
% Temp% \ log.tmp
% AppData% \ {Séquence arbitraire de 10 caractères} .jpeg
C: \ Users \ Public \ {Séquence arbitraire de 10 caractères} .vbs
% Temp% \ {Nom de dossier arbitraire} \ {Nom de fichier}

Informations sur les échantillons


Nom
Inconnu
MD5
F7722DD8660B261EA13B710062B59C43
SHA1
15839B7AB0417FA35F2858722F0BD47BDF840D62
SHA256
41DC0D5459F25E2FDCF8797948A7B315D3CB0753
98D808D1772CACCC726AF6E9
Tapez
PE (.NET)
La taille
327680
Nom d'origine
AZZRIDKGGSLTYFUBCCRRCUMRKTOXFVPDKGAGPUZI_20190701133545943.exe
Horodatage
07/01/2019
Compilateur
Vb.net

Nom
IELibrary.dll
MD5
BFB160A89F4A607A60464631ED3ED9FD
SHA1
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD
SHA256
D55800A825792F55999ABDAD199DFA54F3184417
215A298910F2C12CD9CC31EE
Tapez
PE (DLL .NET)
La taille
16896
Nom d'origine
IELibrary.dll
Horodatage
10/11/2016
Compilateur
Microsoft Linker (48.0 *)

Source: https://habr.com/ru/post/fr479120/


All Articles