SHA1:
- 39688eb28fb982df31b59a1098554ffa47bf56da
Un Trojan downloader multi-composants capable d'exécuter les commandes des malfaiteurs à distance. L'échantillon examiné a été diffusé à l'aide d'un autre Trojan downloader Trojan.Sathurbot.1. Il comprend deux sections : la première section contient le code du loader du module principal, ainsi que les fragments chiffrés du code pour l'extraction et l'initialisation des importations, et la deuxième section comprend le module principal du Trojan.
Module principal
A son lancement, le backdoor vérifie la présence de la clé " /test" dans la ligne de commande, et s'il la trouve, affiche sur la console le message suivant " \n Test - OK", il s’arrête de fonctionner 3 secondes plus tard. Cette fonctionnalité a sans doute été prévue par les hackers pour tester différents logiciels packers. Puis le Trojan tente de déterminer si certaines applications tournent sur l'ordinateur, pour cela, il calcule le hachage des noms des processus actifs (RtlComputeCrc32) :
CRC32 | Process |
---|---|
99DD4432 | vmwareuser.exe |
2D859DB4 | vmwareservice.exe |
64340DCE | vboxservice.exe |
63C54474 | vboxtray.exe |
349C9C8B | sandboxiedcomlaunch.exe |
3446EBCE | sandboxierpcss.exe |
5BA9B1FE | procmon.exe |
3CE2BEF3 | regmon.exe |
3D46F02B | filemon.exe |
77AE10F7 | wireshark.exe |
F344E95D | netmon.exe |
2DBE6D6F | prl_tools_service.exe |
A3D10244 | prl_tools.exe |
1D72ED91 | prl_cc.exe |
96936BBE | sharedintapp.exe |
278CDF58 | vmtoolsd.exe |
3BFFF885 | vmsrvc.exe |
6D3323D9 | vmusrvc.exe |
D2EFC6C4 | python.exe |
DE1BACD2 | perl.exe |
3044F7D4 | avpui.exe |
Si le backdoor détecte un des processus listés dans le tableau ci-dessus, il passe en en mode veille infinie.
A l’étape suivante, BackDoor.Andromeda.1407 obtient l’identifiant de volume système du disque dur (GetVolumeInformationW), qu'il utilise activement lors de la génération de différents objets. Il enregistre notamment le chemin vers le dossier dans lequel se trouve un injecteur dans la variable d'environnement nommée = 'src' ^ VolumeID. Il essaie de s'intégrer à un autre processus. Pour cela, il lance le processus avec l'indicateur CREATE_SUSPENDED, et, en fonction de l'OS (32-bits ou 64-bits), choisit le processus d'application %windir%\system32\msiexec.exe ou %windir%\SysWOW64\msiexec.exe.
Si l'injection a réussi, la mémoire où est inscrit le corps du downloader est réécrite avec des zéros, puis le Trojan initialise les sockets en utilisant la fonction WSAStartup, il reçoit la valeur de la chaîne UserAgent (ObtainUserAgentString), vérifie la version (GetVersionExW) et le nombre de bits (NtQueryInformationProcess (0x1a ProcessWow64Information)) du système d'exploitation et obtient les privilèges de débogueur (SeDebugPrivilege), il détermine également le niveau de ses privilèges. Puis, en utilisant la fonction GetKeyboardLayoutList, le Trojan détecte les configurations nationales de clavier spécifiées dans le système. S’il rencontre les configurations 419h (RU), 422h (UA), 423h (BL), 43Fh (KZ), le backdoor essaie de terminer rapidement son processus et de se supprimer du système.
Il supprime la valeur de la clé de registre suivante :
HKLM\software\microsoft\windows nt\currentversion\image file execution options\taskmgr.exe, Debugger.
Il obtient la valeur de l'heure exacte à l'aide d'une demande directe sur le port 123 (NTP) vers les serveurs suivants :
- europe.pool.ntp.org
- north-america.pool.ntp.org
- south-america.pool.ntp.org
- asia.pool.ntp.org
- oceania.pool.ntp.org
- africa.pool.ntp.org
- pool.ntp.org
S'il ne reçoit pas de réponse des ressources listées, il détermine l'heure qu'il est en utilisant la fonction GetSystemTimeAsFileTime et lance un thread séparé dans lequel, avec un intervalle de 1 seconde, il augmente la valeur obtenue. La valeur de temps est activement utilisée par les plug-ins du Trojan durant son fonctionnement.
Il désactive l'affichage de notifications système dans les paramètres Windows :
[hklm\software\microsoft\windows\currentversion\policies\Explorer]
"TaskbarNoNotification"=1
"HideSCAHealth"=1
[hkcu\software\microsoft\windows\currentversion\policies\Explorer]
"TaskbarNoNotification"=1
"HideSCAHealth"=1
Sous Windows 7, il désactive les services système suivants :
- wscsvc
- wuauserv
- MpsSvc
- WinDefend
Sous Windows XP, il désactive les services système :
- wscsvc
- wuauserv
- SharedAccess
Augmentation de privilèges
Si le niveau d'intégrité de sécurité du Trojan (integrity level) prend la valeur SECURITY_MANDATORY_LOW_RID (0x1000) ou SECURITY_MANDATORY_MEDIUM_RID (0x2000), et que la version de l'OS est antérieure à Windows 8, le Trojan tente d'augmenter ses privilèges en utilisant la méthode ShellExecuteExW. Si la tentative ne réussit pas durant 5 itérations, le malware continue à fonctionner avec les privilèges actuels. Sous Windows 7, le BackDoor.Andromeda.1407 désactive le mécanisme UAC (contrôle de compte utilisateur ou User Accounts Control):
[hklm\software\microsoft\windows\currentversion\policies\system]
"EnableLUA"=0
Installation de lancement
Le Trojan désactive l'affichage des fichiers masqués dans l'Explorateur Windows :
[hkcu\software\microsoft\windows\currentversion\explorer\advanced]
"ShowSuperHidden"=0
"Hidden"=2
Puis il consulte l'un après l'autre certains dossiers système et les dossiers du profil de l'utilisateur actuel, en essayant de déterminer lequel d'entre eux est ouvert en écriture :
%ALLUSERSPROFILE% (C:\ProgramData)
%APPDATA% (C:\Users\<username>\AppData\Roaming)
%USERPROFILE% (C:\Users\<username>)
La vérification est effectuée par la création d'un fichier avec un indicateur DELETE_ON_CLOSE, qui est supprimé à sa fermeture. Puis, en utilisant la valeur de l'identifiant du volume système, le Trojan génère une chaîne contenant de 3 à 5 caractères aléatoires et crée un nom selon le modèle " ms%s.exe ". L’injecteur est copié dans le dossier sélectionné avec le nouveau nom. Ce fichier exécutable reçoit les attributs « système » et « caché » (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM) pour se cacher de l'utilisateur, l'heure de sa création est remplacée par l'heure de création du processus hôte (dans lequel l'injection a été faite). L'identifiant Zone.Identifier est supprimé.
Enfin, BackDoor.Andromeda.1407 modifie les branches de la base de registre Windows, en assurant ainsi le démarrage automatique du module principal de ce programme malveillant et en essayant de modifier consécutivement les branches suivantes :
HKLM\software\microsoft\windows\currentversion\Policies\Explorer\Run
HKCU\software\microsoft\windows nt\currentversion\Windows, Load
HKCU\software\microsoft\windows\currentversion\Run
L'interaction avec le serveur de gestion
Le Backdoor interagit avec le serveur de gestion à l'aide d'une clé spéciale cryptée, qui est convertie sous forme de texte et est utilisée ultérieurement sous cette forme. Les adresses des nœuds de commande sont également stockées dans le corps du Trojan sous forme cryptée, pour les décrypter, la clé de décryptage est retournée de manière symétrique.
Pour connaître l'adresse IP de l'ordinateur contaminé, BackDoor.Andromeda.1407 se connecte au port 80 des serveurs suivants :
- microsoft.com
- update.microsoft.com
- bing.com
- google.com
- yahoo.com
Le transfert d'information est effectué en utilisant le format d'échange de données JSON (JavaScript Object Notation) sous forme cryptée.
Le Trojan crée une requête JSON selon le modèle {"id":%lu,"bid":%lu, "os":%lu, "la":%lu, "rg":%lu, "bb":%lu}, par exemple, {"id":3088609340,"bid":12385,"os":97,"la":167772687,"rg":1,"bb":0}, où:
- id—VolumeID;
- bid—constante botid / builid ;
- os—version de l'OS ;
- la—adresse IP locale ;
- rg—indicateur de privilèges administrateur ;
- bb—indicateur de la configuration du clavier (1 pour RU UA BL KZ, 0 - pour le reste).
La requête peut être complétée par d'autres informations. Puis il chiffre lui-même en utilisant l'algorithme RC4 (avec la clé du Trojan) et il est envoyé à l'aide de la méthode POST au serveur de contrôle. En réponse, il reçoit JSON chiffré avec la même clé. La réponse du serveur peut contenir les commandes suivantes :
- télécharger et exécuter un fichier exécutable ;
- télécharger et installer le plug-in du Trojan ;
- mettre à jour le Trojan ;
- supprimer tous les plug-ins ;
- désinstaller le Trojan.
Plug-ins
Le Trojan stocke les plug-ins téléchargés depuis le serveur de contrôle dans les thread alternatifs du dropper sous forme cryptée, le chiffrement est effectué à l'aide de la fonction CRYPT32!CryptProtectData. Le décryptage est possible uniquement sur l'ordinateur contaminé.