Opération TA505, deuxième partie: apprentissage de la porte dérobée ServHelper avec NetSupport RAT



Fin juillet 2019, nous avons découvert un échantillon intéressant de malware TA505 . Le 22 juillet 2019, il a été téléchargé sur ANY.RUN pour une analyse dynamique. Notre attention a été attirée sur le fait que parmi les balises exposées, en plus de l'habituel pour le Servhelper TA505, la balise netsupport est également apparue, et parmi les incendies de signatures réseau, le même nom NetSupport RAT a été identifié.



Fig. 1. Date de téléchargement des logiciels malveillants et des balises définie dans l'analyseur en ligne ANY.RUN



Fig. 2. Déclenchement de signature réseau sur NetSupport RAT dans le bac à sable ANY.RUN

À première vue, cela peut sembler étrange: après tout, la porte dérobée du groupe ServHelper lui-même possède des fonctionnalités impressionnantes pour contrôler le PC de la victime. Il est temps d'examiner en détail le travail des logiciels malveillants.

Compte-gouttes NSIS et PowerShell


Le fichier PE exécutable à partir duquel commence notre analyse est un programme d'installation basé sur la plate-forme Nullsoft Scriptable Install System (NSIS). Le script NSIS qui exécute le processus d'installation extrait et exécute le script PowerShell intégré:



Fig. 3. Instructions de script NSIS

Le script PowerShell lancé contient un tampon encodé en Base64 (tronqué dans la figure ci-dessous pour plus de clarté), qui après décodage est décrypté par Triple DES (3DES) en mode CBC:



Fig. 4. Déchiffrement des données dans un script PowerShell

La première partie du script est une fonction avec le nom parlant heller et est chargée d'augmenter les privilèges dans le système et de contourner la protection UAC. Deux techniques sont utilisées pour cela:

Technique n ° 1: utilisation de la tâche SilentCleanup dans le planificateur de tâches:

  • La tâche peut ĂŞtre lancĂ©e par l'utilisateur, mais fonctionne avec des privilèges Ă©levĂ©s. Les propriĂ©tĂ©s de la tâche contiennent le chemin d'accès au fichier exĂ©cutable Ă  l'aide de la variable d'environnement% windir%. Vous pouvez modifier la valeur de la variable d'environnement (par exemple, spĂ©cifier le lancement d'un script PowerShell), puis le lancement de la tâche entraĂ®nera l'exĂ©cution du script PowerShell avec des droits d'administrateur sans avertissement UAC.
  • Les attaquants utilisent cette technique sur les systèmes Windows 8 et Windows 10.
  • Le code qui exĂ©cute cette technique est identique Ă  l' implĂ©mentation du module pour le framework Metasploit.



Fig. 5. Partie du script avec la technique de contournement de la tâche SilentCleanup

Technique n ° 2: utilisation de l'utilitaire système sysprep.exe et de la technique DLL de chargement latéral

  • Tout d'abord, un script d' aide est crĂ©Ă© pour redĂ©marrer le script PowerShell dans le rĂ©pertoire C: \ Windows \ Temp. Ensuite, une archive CAB est gĂ©nĂ©rĂ©e, qui contient la bibliothèque DLL auxiliaire CRYPTBASE.dll (le script PowerShell contient les versions x86 et x64 de la bibliothèque). Ă€ l'aide de l'utilitaire système wusa.exe, cette archive est dĂ©compressĂ©e dans le rĂ©pertoire C: \ Windows \ System32 \ Sysprep. Ensuite, l'utilitaire système sysprep.exe est lancĂ©, qui chargera la bibliothèque DLL prĂ©cĂ©demment dĂ©compressĂ©e et exĂ©cutera Ă  son tour le script auxiliaire. Par consĂ©quent, le script PowerShell sera redĂ©marrĂ© avec des droits d'administrateur sans avertissement UAC.
  • Les attaquants utilisent cette technique sur un système Windows 7.
  • Une description dĂ©taillĂ©e peut ĂŞtre trouvĂ©e dans cet article, et des exemples d'implĂ©mentation, par exemple, dans ce projet sur Github.



Fig. 6. Partie du script avec la technique de contournement de l'utilitaire sysprep.exe

Il y a beaucoup de commentaires dans le script, la fonction Test-Administrator inutilisée, certaines variables sont utilisées sans initialisation: ce sont des signes d'emprunt de code sans vérifier soigneusement la concision.

Après avoir exécuté le script avec les privilèges nécessaires, la deuxième partie du script est exécutée. A ce stade, les charges utiles cibles sont décodées:

  • la chaĂ®ne est dĂ©codĂ©e par Base64,
  • le tampon est Ă©tendu Ă  l'aide de Deflate ,
  • la chaĂ®ne est re-dĂ©codĂ©e par Base64.



Fig. 7. Algorithme de décodage de la charge utile

  • Par consĂ©quent, les fichiers suivants seront crĂ©Ă©s dans le système:
  • % systemroot% \ help \ hlp11.dat - version x86 / x64 de la bibliothèque d' encapsulation RDP . Il est utilisĂ© pour Ă©tendre les fonctionnalitĂ©s du service RDP, y compris la possibilitĂ© de plusieurs connexions simultanĂ©es. Il est important de noter que la bibliothèque est modifiĂ©e: au dĂ©but de l'exĂ©cution, la ligne c: \ windows \ help \ hlp12.dat est dĂ©codĂ©e par XOR linĂ©aire, puis la bibliothèque DLL est chargĂ©e sur le chemin reçu:



Fig. 8. Déchiffrement du chemin vers la bibliothèque DLL et son chargement

  • % systemroot% \ help \ hlp12.dat est la version x86 / x64 de la porte dĂ©robĂ©e ServHelper, qui sera discutĂ©e dans la section suivante;
  • % systemroot% \ help \ hlp13.dat - fichier de configuration pour la bibliothèque d'encapsulation RDP,
  • % systemroot% \ system32 \ rdpclip.exe - un composant du service RDP pour la possibilitĂ© d'Ă©changer des donnĂ©es du presse-papiers;
  • % systemroot% \ system32 \ rfxvmt.dll est un composant de service RDP pour la transmission de donnĂ©es Ă  l'aide des technologies RemoteFX .

Après avoir extrait et enregistré la charge utile, le script configure le bon fonctionnement de ses composants:

  • change le propriĂ©taire du composant rfxvmt.dll en NT SERVICE \ TrustedInstaller et accorde les droits nĂ©cessaires;
  • Modifie la valeur du port pour les connexions RDP de la norme 3389 Ă  7201;
  • Ajoute un compte de services rĂ©seau au groupe d'administrateurs locaux
  • enregistre hlp11.dat en tant que service RDP et redĂ©marre le service;
  • supprime les fichiers temporaires crĂ©Ă©s.

ServHelper RAT → Dropper


Un des résultats des droppers est la DLL hlp12.dat, qui est un malware ServHelper. Les versions x86 et x64 de la bibliothèque peuvent être créées en fonction de la taille en bits du système d'exploitation (il n'y a pas de différences fondamentales entre elles). Les deux versions sont écrites en Delphi, fournies avec UPX 3.95 (x64) et PeCompact 2.20 (x86). Nos collègues de Proofpoint et Trend Micro ont précédemment présenté une analyse de la distribution et du fonctionnement de cette porte dérobée. L'arsenal de capacités de notre échantillon converge à bien des égards avec ce qui est déjà connu: en particulier, l'algorithme de décryptage des chaînes utilisées ( chiffrement Vigenere ) n'a pas changé:



Fig. 9. Pseudocode pour décrypter les chaînes en utilisant le chiffrement Vigenere

Fait intéressant, le chiffrement n'est pas implémenté pour toutes les chaînes: par exemple, les adresses des domaines de contrôle et les liens Web avec des composants supplémentaires restent ouverts:



Fig. 10. Domaines non cryptés et liens Web

Lors de l'accès à l'un de ces liens (hxxp: //letitbe.icu/2.txt), un fichier crypté est téléchargé (MD5: 0528104f496dd13438dd764e747d0778). Lors de l'analyse de la fin d'un fichier dans un éditeur hexadécimal, vous pouvez remarquer des répétitions fréquentes de la valeur de l'octet 0x09:



Fig. 11. Répétez l'octet 0x09 dans le fichier téléchargé

Les valeurs d'octets en double sont un signe courant de l'utilisation d'un XOR à un octet comme chiffrement. Dans ce cas, cette théorie est confirmée par le code:



Fig. 12. Fonction de chiffrement XOR Ă  un octet



Fig. 13. Passer une valeur Ă  un octet Ă  la fonction XOR comme argument

À la suite du déchiffrement, nous recevrons une archive ZIP avec le contenu suivant:



Fig. 14. Contenu de l'archive ZIP déchiffrée

Tous les fichiers sont des logiciels légitimes pour le contrôle à distance du PC NetSupport Manager, qui a été utilisé à plusieurs reprises par des attaquants de divers groupes.



Fig. 15. Description du logiciel NetSupport Manager

L'un des fichiers (client32.ini) est un fichier de configuration, qui contient l'adresse de la passerelle intermédiaire via laquelle le PC de la victime se connectera aux attaquants:



Fig. 16. Adresse des attaquants comme passerelle NetSupport Manager

Cette option est logique si la victime se trouve derrière un pare-feu et que l'accès à Internet est limité par le port. Pour fonctionner correctement sur Internet, vous devez ouvrir l'accès à au moins deux ports, 80 (HTTP) et 443 (HTTPS), de sorte que la probabilité d'une connexion réussie augmente.

En septembre 2019, nous avons découvert plusieurs échantillons ServHelper similaires avec une gamme d'options considérablement limitée. En utilisant l'un d'eux comme exemple (MD5: 5b79a0c06aec6126364ce1d5cbfedf66): parmi les ressources d'un fichier PE exécutable, il y a des données chiffrées avec une caractéristique similaire sous la forme d'un octet répétitif:



Fig. 17. Données chiffrées dans les ressources ServHelper
Il s'agit à nouveau d'une archive ZIP "obstruée" d'un octet, qui contient les mêmes composants de NetSupport Manager, mais cette fois avec une passerelle intermédiaire différente: 179 [.] 43.146.90: 443.

Conclusions


Dans cet article, nous avons examiné l'une des options de livraison et d'utilisation de la porte dérobée TA505 - ServHelper. En plus des fonctionnalités curieuses qui ont précédé le fonctionnement du composant principal (par exemple, contourner l'UAC et l'escalade de privilèges), nous avons remarqué des métamorphoses intéressantes de la porte dérobée principale: la fonctionnalité de base (vol de données, espionnage et exécution de commandes) a été complétée par l'intégration d'un autre outil pour la gestion à distance de PC - NetSupport RAT. De plus, les nouvelles versions de ServHelper n'avaient plus les fonctionnalités clés qui en font une porte dérobée à part entière: désormais, elle ne sert que de compte-gouttes intermédiaire pour l'installation de NetSupport RAT. Les attaquants ont probablement trouvé cette approche plus efficace en termes de développement et en termes de capacités de détection. Cependant, la liste des outils de groupe qui nous intéressent ne s'arrête pas là.

Publié par Alexey Vishnyakov, Positive Technologies
CIO
hxxp: //185.225.17.175/wrkn157.exe - le lien Web à partir duquel le dropper NSIS a été chargé
d2a062ca772fa3ace7c7edadbd95eaf7 - le compte-gouttes NSIS d'origine
0cacea3329f35e88a4f9619190e3746f - Compte-gouttes PowerShell shipkat.ps1
fb609b00e29689db74c853ca7d69f440 - CRYPTBASE.dll (x86)
843288a35906aa90b2d1cc6179588a26 - CRYPTBASE.dll (x64)
445cd6df302610bb640baf2d06438704 - hlp11.dat (x86)
083f66cc0e0f626bbcc36c7f143561bd - hlp11.dat (x64)
40bae264ea08b0fa115829c5d74bf3c1 - hlp12.dat (x86)
ac72ab230608f2dca1da1140e70c92ad - hlp12.dat (x64)
07f1dc2a9af208e88cb8d5140b54e35e - hlp13.dat
1690e3004f712c75a2c9ff6bcde49461 - rdpclip.exe
dc39d23e4c0e681fad7a3e1342a2843c - rfxvmt.dll
ServHelper C2:
179 [.] 43.156.32
185 [.] 163.45.124
185 [.] 163.45.175
185 [.] 225.17.150
185 [.] 225.17.169
185 [.] 225.17.175
185 [.] 225.17.98
195 [.] 123.221.66
195 [.] 123.246.192
37 [.] 252.8.63
94 [.] 158.245.123
94 [.] 158.245.154
94 [.] 158.245.232
fdguyt5ggs [.] pw
foxlnklnk [.] xyz
gidjshrvz [.] xyz
letitbe [.] icu
pofasfafha [.] xyz
0528104f496dd13438dd764e747d0778 - archive ZIP chiffrée avec NetSupport RAT
Composants de NetSupport Manager:
953896600dfb86750506706f1599d415 - cksini.exe
8d9709ff7d9c83bd376e01912c734f0a - client32.exe
2d3b207c8a48148296156e5725426c7f - HTCTL32.DLL
0e37fbfa79d349d672456923ec5fbbe3 - msvcr100.dll
26e28c01461f7e65c402bdf09923d435 - nskbfltr.inf
88b1dab8f4fd1ae879685995c90bd902 - NSM.ini
7067af414215ee4c50bfcd3ea43c84f0 - NSM.LIC
dcde2248d19c778a41aa165866dd52d0 - pcicapi.dll
a0b9388c5f18e27266a31f8c5765b263 - PCICHEK.DLL
00587238d16012152c2e951a087f2cc9 - PCICL32.DLL
2a77875b08d4d2bb7b654db33a88f16c - remcmdstub.exe
eab603d12705752e3d268d86dff74ed4 - TCCTL32.DLL
185 [.] 225.17.66: 443 - NetSupport RAT GatewayAddress
5b79a0c06aec6126364ce1d5cbfedf66 - ServHelper avec archive NetSupport RAT
179 [.] 43.146.90: 443 - NetSupport RAT GatewayAddress

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


All Articles