GreyEnergy: le successeur de BlackEnergy attaque les entreprises du secteur de l'énergie

Les spécialistes d'ESET ont effectué une analyse de logiciels malveillants sophistiqués qui n'avaient pas été étudiés auparavant, conçus pour des attaques ciblées contre des entreprises d'infrastructures critiques en Europe centrale et orientale. Le programme, appelé GreyEnergy, a une ressemblance conceptuelle avec BlackEnergy, un malware qui a été utilisé dans les attaques contre les sociétés énergétiques ukrainiennes en décembre 2015 . De plus, des liens indiquent que les opérateurs GreyEnergy ont travaillé avec le groupe TeleBots derrière un certain nombre d'attaques destructrices.


Le rapport fournit des informations sur les activités du groupe GreyEnergy au cours des dernières années. Notez que nous n'attribuons d'attaques et de développement de logiciels malveillants à aucun état. Selon notre terminologie, «ART-group» est un ensemble d'indicateurs techniques.

Présentation


En décembre 2015, le groupe BlackEnergy a attaqué le complexe énergétique ukrainien à l'aide de logiciels malveillants des familles BlackEnergy et KillDisk. Il s'agit du dernier incident connu avec le logiciel BlackEnergy en conditions réelles. Après cette attaque, le groupe s'est transformé en au moins deux sous-groupes: TeleBots et GreyEnergy.

TeleBots est spécialisé dans le cyber-sabotage par le biais d'attaques informatiques en réseau (CNA). Le groupe a dénombré des attaques destructrices, notamment:


Les experts ESET suivent l'activité du groupe GreyEnergy depuis plusieurs années. Le groupe utilise la famille unique de logiciels malveillants du même nom. L'architecture Malvari ressemble à la famille BlackEnergy.

Outre les similitudes conceptuelles des programmes, il existe d'autres liens indiquant que les opérateurs GreyEnergy travaillent en étroite collaboration avec le groupe TeleBots. En particulier, en décembre 2016, le groupe GreyEnergy a lancé un ver ressemblant à NotPetya, et une version plus avancée de ce programme est apparue en juin 2017 lors d'une attaque TeleBots.

Il convient de noter que GreyEnergy et TeleBots ont des objectifs différents - GreyEnergy s'intéresse principalement aux réseaux industriels appartenant à des entreprises d'infrastructures critiques et, contrairement aux TeleBots, ne se limite pas aux objets en Ukraine.

Fin 2015, nous avons remarqué pour la première fois un malware GreyEnergy destiné à une société d'énergie en Pologne. Cependant, GreyEnergy attaque également des cibles ukrainiennes. Le groupe se concentre sur le secteur de l'énergie, les infrastructures de transport et d'autres installations de haut rang. Au moins une organisation cible BlackEnergy a été attaquée par GreyEnergy. La dernière utilisation de GreyEnergy a été enregistrée mi-2018.

Le programme malveillant GreyEnergy a une architecture modulaire; cependant, contrairement à Industroyer , nous n'avons vu aucun module qui pourrait affecter les systèmes de contrôle industriels (ICS). Cependant, les opérateurs GreyEnergy ont déployé une vipère sur le disque au moins une fois pour perturber les flux de travail et masquer les traces d'une cyberattaque.

L'un des détails les plus intéressants trouvés lors de nos recherches est que l'un des échantillons GreyEnergy a été signé avec un certificat numérique valide. Très probablement, ce certificat a été volé à un fabricant taïwanais d'équipements ICS. À cet égard, le groupe GreyEnergy a suivi les traces des auteurs de Stuxnet .

GreyEnergy: méthode de travail


Lors des observations de l'activité du groupe GreyEnergy, nous avons principalement vu deux premiers vecteurs d'infection. Le premier concerne les organisations disposant de services Web situés sur les propres serveurs des victimes. Si le service Web public s'exécute sur un serveur connecté au réseau interne, les attaquants tenteront de le compromettre pour pénétrer le réseau. Le deuxième vecteur est le phishing ciblé avec des pièces jointes malveillantes.

Les documents malveillants déchargent GreyEnergy mini - une porte dérobée légère de la première étape qui ne nécessite pas de privilèges administratifs. Une fois qu'un ordinateur est compromis à l'aide de GreyEnergy mini, les attaquants créent une carte réseau et collectent des mots de passe pour obtenir les droits d'administrateur de domaine. Avec ces privilèges, les attaquants peuvent contrôler l'ensemble du réseau. Le groupe GreyEnergy utilise des outils assez standard pour accomplir ces tâches: Nmap et Mimikatz.

Après une première exploration du réseau, les attaquants peuvent déployer une porte dérobée phare - la principale GreyEnergy. Les logiciels malveillants nécessitent des droits d'administrateur, qui doivent être obtenus avant la phase de déploiement de GreyEnergy principal. Selon nos recherches, les opérateurs GreyEnergy installent la porte dérobée principale principalement sur deux types de points de terminaison: les serveurs à longue disponibilité et les postes de travail utilisés pour gérer les environnements ICS.

Pour masquer les communications avec les serveurs C&C, les attaquants peuvent installer des logiciels supplémentaires sur les serveurs internes d'un réseau compromis afin que chaque serveur fasse office de proxy. Un tel proxy C & C redirige les demandes des nœuds infectés du réseau vers un serveur C & C externe sur Internet. La «communication» de plusieurs ordinateurs du réseau avec un serveur interne ne semble pas aussi suspecte qu'avec un serveur externe. La méthode peut également être utilisée pour gérer les logiciels malveillants dans différents segments d'un réseau compromis. Une méthode similaire utilisant des serveurs internes comme proxy-C & C a été observée dans la campagne Duqu 2.0 ART .

Si l'organisation compromise dispose de serveurs Web publics connectés au réseau interne, les attaquants peuvent déployer des backdoors de «sauvegarde» sur ces serveurs. Ils sont utilisés pour restaurer l'accès au réseau en cas de découverte et de suppression des portes dérobées principales.

Tous les serveurs C&C liés aux programmes malveillants GreyEnergy utilisent Tor.


Figure 1. Diagramme simplifié de deux scénarios de compromis de réseau utilisés par le groupe GreyEnergy

Greyenergy mini


GreyEnergy mini est une porte dérobée légère de la première étape, qui a été utilisée par les attaquants pour évaluer un ordinateur compromis et fournir une tête de pont initiale sur le réseau. En règle générale, GreyEnergy mini a été téléchargé à l'aide d'un document malveillant distribué dans des e-mails de phishing. GreyEnergy mini est également connu sous le nom de FELIXROOT .

En septembre 2017, ESET a découvert un document Microsoft Word ukrainien contenant une macro malveillante. Le document d'appât imite un formulaire interactif pour encourager la victime à activer la macro et à la remplir.


Figure 2. Document d'appât utilisé par GreyEnergy en septembre 2017

Après avoir activé la macro, son code essaie de télécharger et d'exécuter le fichier binaire à partir du serveur distant.


Figure 3. Macro VBA malveillante (commentaires ajoutés par ESET)

Fait intéressant, un lien menant à une image externe est intégré dans le corps du document. Après avoir ouvert le document, il essaie de télécharger cette image - de cette façon, les attaquants apprennent que le fichier est ouvert. La méthode vous permet de suivre les cibles qui comprenaient une macro malveillante et celle qui venait d'ouvrir un document.


Figure 4. Lien vers un dessin «tracker» externe dans un document malveillant

L'exécutable téléchargé est un mini compte-gouttes GreyEnergy. Le compte-gouttes écrit la DLL malveillante dans le dossier %APPDATA% , en utilisant un GUID généré aléatoirement comme nom. En outre, le compte-gouttes crée un fichier .LNK avec un nom de fichier vide dans le dossier de dans le menu Démarrer avec une entrée qui exécute rundll32.exe avec le chemin d'accès à la DLL comme argument de la ligne de commande. Il s'agit de la mini méthode de persistance GreyEnergy.

La DLL vidée est le module principal de GreyEnergy mini; il est déguisé en un fichier légitime lié à Microsoft Windows.


Figure 5. Mini DLL de porte dérobée GreyEnergy se faisant passer pour une DLL Windows légitime

Pour évaluer un ordinateur compromis, un logiciel malveillant collecte autant d'informations que possible et envoie des données à C&C. Les données sont collectées à l'aide du langage de requête WMI (WQL) et des requêtes du registre Windows. Les données suivantes sont collectées:

  • nom d'ordinateur
  • version du système d'exploitation, y compris la version du Service Pack
  • langue par dĂ©faut
  • nom d'utilisateur
  • privilèges utilisateur Windows actuels, Ă©lĂ©vation, niveau UAC
  • paramètres proxy
  • informations informatiques (fabricant, modèle, type de système)
  • fuseau horaire
  • logiciel de sĂ©curitĂ© installĂ© (antivirus et pare-feu)
  • liste d'utilisateurs et de domaines
  • liste des programmes installĂ©s obtenus Ă  partir du registre
  • informations rĂ©seau (adresses IP, serveur DHCP, etc.)
  • liste des processus en cours

Un logiciel malveillant reçoit des commandes du serveur C&C. La prise en charge des commandes suivantes est fournie (ci-dessous sont les ID de commande et leur signification):

  1. collecter des informations informatiques
  2. téléchargez et exécutez l'exécutable à partir du dossier des fichiers temporaires
  3. exécuter la commande shell
  4. se retirer d'un ordinateur compromis
  5. téléchargez et exécutez le fichier .BAT à partir du dossier des fichiers temporaires
  6. télécharger le fichier sur le disque local
  7. télécharger un fichier

La configuration du logiciel malveillant au format JSON est intégrée dans le fichier binaire et cryptée à l'aide d'un algorithme personnalisé. Les données chiffrées contiennent quatre octets au début; ces octets sont utilisés comme clé pour l'opération XOR pour décrypter le reste des données. La plupart des chaînes utilisées par le malware sont cryptées à l'aide de cet algorithme.


Figure 6. Mini configuration GreyEnergy intégrée avant et après le déchiffrement

Toutes les mini-configurations GreyEnergy que nous avons vues incluent des serveurs HTTPS et HTTP utilisés comme C&C. Cela permet aux attaquants de passer à HTTP sur des cibles où la connexion HTTPS n'est pas prise en charge par la configuration du réseau ou du pare-feu.

GreyEnergy mini présente des similitudes de code avec d'autres programmes malveillants de la famille GreyEnergy. De plus, GreyEnergy mini et la porte dérobée GreyEnergy principale utilisent les mêmes serveurs C&C.

Porte arrière principale GreyEnergy


GreyEnergy est la principale porte dérobée de ce cyber-groupe. Les exemples de logiciels malveillants analysés ici sont écrits en C et compilés à l'aide de Visual Studio, mais sans utiliser les fonctions standard de la bibliothèque d'exécution C (CRT). Les échantillons emballés peuvent contenir un faux horodatage PE, mais après le déballage, l'horodatage est réinitialisé (1er janvier 1970).


Figure 7. Horodatage PE de l'échantillon GreyEnergy non emballé

Fait intéressant, l'un des premiers échantillons GreyEnergy analysés a été signé avec un certificat appartenant à Advantech. Il s'agit d'une entreprise taïwanaise fabriquant des équipements pour l'industrie et l'IoT. Étant donné que nous avons constaté que le même certificat avait été utilisé pour signer le logiciel propre et non malveillant d'Advantech, nous pensons qu'il a été volé. Notez que l'échantillon détecté n'a pas de signature numérique - cela signifie que la signature est devenue invalide lorsque le certificat a expiré.


Figure 8. Certificat Advantech utilisé pour signer l'exemple de malware GreyEnergy

Les données du certificat sont les suivantes:

Serial Number: 15:f4:8f:98:c5:79:41:00:6f:4c:9a:63:9b:f3:c1:cc
Validity:
Not Before: Feb 10 00:00:00 2014 GMT
Not After : Feb 26 23:59:59 2017 GMT
SHA1 Fingerprint=97:53:AD:54:DF:6B:D6:73:E0:6C:00:36:3D:34:6A:06:00:7A:0A:9B


Nous avons remarqué que GreyEnergy est généralement déployé en deux modes: uniquement en mémoire et avec la persistance du service DLL. Le premier mode est utilisé lorsque les attaquants sont sûrs que l'installation ne nécessite pas de mesures spéciales pour assurer la stabilité (par exemple, sur des serveurs avec une longue disponibilité); le deuxième mode est lorsque le malware doit résister à tout redémarrage.

Mode mémoire seule


Pour ce mode, les attaquants placent le fichier DLL dans un dossier spécifique, puis l'exécutent à l'aide de l'application Windows rundll32.exe . Nous avons observé que les attaquants utilisent l'outil Windows Sysinternals PsExec localement pour exécuter rundll32.exe avec les privilèges les plus élevés possibles ( NT AUTHORITY\SYSTEM ).

Ci-dessous, la ligne de commande utilisée dans la phase d'exécution initiale de GreyEnergy uniquement en mémoire:

cmd.exe /c "C:\Windows\System32\rundll32.exe "C:\Sun\Thumbs.db",#1 CAIAABBmAAAgAAAA8GFGvkHVGDtGRqcl3Z3nYJ9aXCm7TVZX8klEdjacOSU="

Dans cet exemple, Thumbs.db est un fichier DLL GreyEnergy à partir duquel la fonction avec le premier numéro de séquence est appelée par le processus rundll32.exe . L'exemple de ligne de commande donné contient une séquence d'octets chiffrés avec base64, qui est ensuite utilisée comme clé AES-256 pour déchiffrer un petit talon. Après cela, le code dans le «stub» démarre une nouvelle copie du processus svchost.exe et injecte la charge utile GreyEnergy. À la dernière étape, le processus rundll32.exe GreyEnergy se termine, le fichier DLL malveillant est protégé contre la suppression du disque. Par conséquent, la charge utile GreyEnergy n'existera que dans le contexte de la mémoire de processus svchost.exe .

Très probablement, les auteurs avaient l'intention de développer des logiciels malveillants de telle manière que sans clé sur la ligne de commande, il était impossible de décrypter le «talon» et la charge utile.


Figure 9. Nom interne de la DLL GreyEnergy pour le mode mémoire uniquement

Si vous utilisez le mode "uniquement en mémoire", il svchost.exe terminer le processus svchost.exe correspondant ou de redémarrer l'ordinateur pour supprimer GreyEnergy.

Persistance du service DLL


Pour utiliser cette méthode, les opérateurs déploient le compte-gouttes GreyEnergy, qui doit être exécuté avec des privilèges d'administrateur.

La clé de registre ServiceDLL vous permet de démarrer le module DLL de service dans le contexte du processus svchost.exe . Fonction non documentée par Microsoft; cependant, il est utilisé par un certain nombre de familles de logiciels malveillants, notamment le ver Conficker.

Pour garantir la persistance du service DLL, le compte-gouttes recherche un service existant et ajoute une nouvelle clé de registre ServiceDLL . Étant donné que la méthode peut entraîner une défaillance du système, le compte-gouttes effectue initialement une série de vérifications pour sélectionner un service qui répond à un certain nombre d'exigences.

Tout d'abord, le dropper trouve tous les services Windows actuellement arrêtés en exécutant la requête WQL suivante:

Select * from Win32_Service where PathName Like '%%svchost%%' and State = 'Stopped'

Les conditions suivantes peuvent être ajoutées à la demande:

  • and StartMode = 'Disabled' ou and StartMode = 'Manual'
  • and ServiceType = 'Own Process' ou and ServiceType = 'Share Process'

Ensuite, le dropper essaie de sélectionner le service souhaité, en vérifiant les résultats et en ignorant ceux qui remplissent les conditions suivantes:

  • le nom du service contient winmgmt (Windows Management Instrumentation) ou BITS (Background Intelligent Transfer Service)
  • dropper n'a pas accès au service ou Ă  la clĂ© de registre
  • DependOnService registre DependOnService pas vide
  • la valeur de Registre pour ServiceDll ou ImagePath n'existe pas
  • La ligne de commande de service contient l'un des mots suivants:
  • DcomLaunch , LocalServiceNetworkRestricted , LocalServiceNoNetwork , LocalServicePeerNet , LocalSystemNetworkRestricted , NetworkServiceNetworkRestricted , secsvcs , wcssvc

Lors de la détection d'un service qui remplit ces conditions, le programme malveillant décharge le fichier DLL dans le répertoire Windows system32 et écrit la clé de registre ServiceDLL . Le nom de la DLL contient quatre caractères générés de manière aléatoire et svc.dll ou srv.dll à la fin. De plus, le compte-gouttes simule les métadonnées temporelles du fichier en le copiant à partir du fichier user32.dll existant.

La dernière version du compte-gouttes GreyEnergy prend en charge les systèmes d'exploitation 32 bits et 64 bits.


Figure 10. DLL GreyEnergy DLL déployée via la méthode de persistance du service DLL

Dropper utilise une méthode intéressante pour déguiser une DLL malveillante en fichier légitime. En particulier, le dropper copie la ressource VERSIONINFO, qui contient une description détaillée du fichier exécutable appartenant au service Windows en question, et écrit ces données dans une DLL malveillante. À cette fin, les fonctions API Windows BeginUpdateResource / UpdateResource / EndUpdateResource . Les versions récentes n'appellent pas ces fonctions à partir de l'API; leur code est implémenté dans le programme malveillant lui-même pour éviter de vider le fichier DLL sur le disque sans une fausse ressource VERSIONINFO. Vraisemblablement, cela évite la détection de certains produits de sécurité. Le même compte-gouttes peut créer des fichiers DLL malveillants avec des descriptions différentes sur différents ordinateurs. Chaque modèle développé de cette manière aura un hachage unique.

Si le malware est déjà présent sur le système, le compte-gouttes peut le mettre à jour à l'aide du canal nommé.

À la dernière étape, le dropper se supprime automatiquement en remplaçant le fichier par des zéros et en le supprimant du disque. Dropper efface également le magazine USN . Les actions sont effectuées via les commandes shell suivantes:

timeout 2 > nul & fsutil file setzerodata offset=0 length=%DROPPER_FILESIZE% "%DROPPER_PATH%" & timeout 2 & cmd /c del /F /Q "%DROPPER_PATH%" & fsutil usn deletejournal /D %DROPPER_DRIVE%

Configuration et communications


Le mode de persistance sélectionné par les opérateurs n'affecte pas la fonctionnalité du programme malveillant, qui reste inchangé avec les deux méthodes.

Un logiciel malveillant contient une configuration intégrée qui est chiffrée à l'aide de l'algorithme AES-256 et compressée à l'aide de LZNT1.

Le format MIME à plusieurs composants est utilisé pour la configuration de logiciels malveillants intégrés. Les auteurs n'ont pas implémenté leur propre analyseur pour ce format; à la place, ils utilisent les interfaces COM IMimeMessage et IMimeBody . Fait intéressant, la documentation de Microsoft recommande de ne pas utiliser ces interfaces.


Figure 11. Exemple de configuration intégrée de GreyEnergy

Pour la configuration externe, le format MIME identique est utilisé; cependant, le malware crypte la configuration externe de différentes manières. Il utilise l'interface de programmation d'application de protection des données (DPAPI), en particulier les fonctions API Windows CryptProtectData et CryptUnprotectData . La configuration externe est enregistrée dans le chemin d'accès suivant C:\ProgramData\Microsoft\Windows\%GUID% , où %GUID% est une valeur GUID générée de manière aléatoire en fonction du numéro de série du volume du lecteur C :.

Certains exemples GreyEnergy contiennent une version obscurcie de la configuration. En particulier, les champs Type de ces configurations contiennent des lettres au lieu des noms d'options.


Figure 12. Exemple d'une configuration GreyEnergy obscurcie

La configuration peut contenir les valeurs suivantes:



Un programme malveillant se supprime du système infecté si le nombre de tentatives infructueuses dépasse la valeur de MaxAttempts et que la dernière connexion réussie MaxAttempts plus de Lifetime jours.

La communication avec C&C se fait généralement via HTTPS; cependant, dans certains cas, HTTP est également utilisé. Le même format MIME est encapsulé dans les requêtes HTTP. Il convient de noter que les données sont cryptées à l'aide d'AES-256 et RSA-2048.


Figure 13. Communication GreyEnergy sur HTTP capturée dans Wireshark

Si vous utilisez HTTP, il est plus facile d'identifier une machine compromise sur le réseau en analysant son trafic réseau. Les échantillons de logiciels malveillants qui ont été étudiés ont toujours utilisé les agents utilisateurs codés en dur suivants:

  • Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
  • Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

Pour aider les opérateurs GreyEnergy à identifier les ordinateurs infectés, le malware envoie les résultats des requêtes WQL suivantes au serveur C&C:

  • SELECT Caption, Version, CSName, ProductType, CurrentTimeZone, LocalDateTime, OSLanguage, OSType FROM Win32_OperatingSystem
  • SELECT MACAddress, IPAddress, IPSubnet, DHCPEnabled, DHCPServer, DNSDomain FROM Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL

Les réponses du serveur C&C sont cryptées, mais après décryptage, elles contiennent le même format MIME avec les valeurs possibles suivantes:


GreyEnergy charge des modules supplémentaires et une charge utile en mémoire à l'aide de son propre chargeur de fichiers PE.

Modules GreyEnergy


Comme de nombreuses menaces complexes, le malware GreyEnergy a une architecture modulaire. Sa fonctionnalité peut être étendue en ajoutant des modules supplémentaires. Le module GreyEnergy est un fichier DLL qui est exécuté en appelant une fonction avec le premier numéro de séquence. Chaque module, y compris le module GreyEnergy principal, accepte des commandes de texte avec divers paramètres.

Les opérateurs GreyEnergy n'envoient pas immédiatement tous les modules à une machine compromise. En règle générale, un programme malveillant télécharge et exécute les modules nécessaires pour effectuer des tâches spécifiques.

Nous sommes conscients de l'existence des modules GreyEnergy suivants:

remoteprocessexec - injecte un fichier RE binaire dans un processus distant
info - collecte des informations système, des journaux d'événements, des logiciels malveillants SHA-256
file - opérations sur le système de fichiers
sshot - prend des captures d'écran
keylogger - intercepte les frappes
passwords - collecte les mots de passe stockés dans diverses applications
mimikatz - Outil mimikatz utilisé pour collecter les informations d'identification Windows
plink - Logiciel plink utilisé pour créer des tunnels SSH
3proxy - Logiciel 3proxy utilisé pour créer des proxys

Le module remoteprocessexec permet à un attaquant d'exécuter des fichiers binaires arbitraires dans le contexte de processus existants. Par exemple, vous pouvez exécuter Mimikatz ou un scanner de port dans le contexte de l'Explorateur Windows sans les déposer sur le disque. Pour rediriger la sortie standard et les threads de processus et l'arrêt du processus, le module intercepte cinq fonctions de l'API Windows.


Figure 14. Fonctions API Windows capturées par remoteprocessexec

Étant donné que la DLL GreyEnergy réinitialisée est unique pour chaque machine infectée, les attaquants peuvent collecter des hachages SHA-256 à l'aide du module d'information. La présence de hachages vous permettra de suivre si le fichier a été téléchargé sur des services Web publics tels que VirusTotal.

Protection inverse et méthodes anti-criminelles


GreyEnergy utilise plusieurs méthodes pour compliquer l'analyse. Par exemple, un programme malveillant crypte les chaînes. Certaines options utilisent le même algorithme que GreyEnergy mini.

Cependant, la plupart des exemples GreyEnergy ont un algorithme de cryptage différent. En particulier, les quatre premiers octets d'un objet blob chiffré ne sont pas utilisés comme clé pour les opérations XOR. Au lieu de cela, ils sont utilisés pour initialiser le nombre initial de l'algorithme de génération de nombres pseudo-aléatoires ( Mersenne Whirlwind ), puis les quatre octets générés sont la clé. Avant de libérer un tampon de mémoire contenant une chaîne de texte brut, le logiciel malveillant écrase le tampon avec des zéros.


Figure 15. Code décompilé pour la fonction de décodage de chaîne GreyEnergy

Le programme malveillant intercepte les fonctions DeleteFileA et DeleteFileW dans la table d'importation de chaque fichier PE binaire chargé en mémoire. Le crochet remplace ces fonctions par des fonctions qui effacent les fichiers en toute sécurité. En particulier, le fichier sera remplacé par des zéros avant d'être supprimé du disque. Chaque charge utile ou plugin utilisera une telle fonction sans avoir besoin de son implémentation dans chaque module.


Figure 16. Code décompilé pour une routine qui intercepte DeleteFileA et DeleteFileW

Les outils


Les attaquants ont utilisé le scanner de port Nmap comme principal outil de cartographie des réseaux internes de la victime. De plus, nous avons observé l'utilisation d'un scanner de port personnalisé léger où Nmap n'était pas possible.


Figure 17. Sortie console d'un scanner de port de groupe GreyEnergy personnalisé

Les attaquants utilisent activement des outils légitimes, tels que SysInternals PsExec et WinExe , pour se déplacer horizontalement à l'intérieur de réseaux compromis. L'outil WinExe, l'analogue open source de WinExe, peut être contrôlé à partir d'un périphérique Linux, par exemple, à partir d'un serveur Web Linux compromis.

Il convient de noter qu'en plus de ces outils, les attaquants utilisent des scripts PowerShell.

Portes dérobées du serveur Web


Comme mentionné précédemment, le groupe GreyEnergy déploie des portes dérobées supplémentaires sur les serveurs Web, si ces serveurs sont accessibles depuis Internet. Nous avons remarqué que les attaquants utilisent des backdoors écrits en PHP à cet effet. Ils utilisent le webshell PHP web shell WSO et c99shell accessibles au public.

Les attaquants peuvent modifier un script PHP existant sur un serveur Web ou en déployer un nouveau. Le code PHP réel de porte dérobée cache généralement plusieurs niveaux d'obscurcissement et de chiffrement.


Figure 18. Code obscurci de la porte dérobée PHP du groupe GreyEnergy

Le dernier niveau de code est protégé par cryptage de flux. La génération de clé pour ce chiffrement est basée sur une chaîne de la valeur de cookie fournie par les attaquants via une requête HTTP. Chacune de ces portes dérobées PHP est chiffrée avec une clé distincte.


Figure 19. Le dernier niveau que le code de porte dérobée PHP décode

La technique d'obscurcissement est utilisée pour empêcher l'analyse, ainsi que l'impossibilité d'utiliser une telle porte dérobée PHP par d'autres cyber-groupes.

Proxy C&C (triuline)


Comme nous l'avons mentionné précédemment, les attaquants peuvent utiliser le serveur interne comme proxy C&C.

Nous avons constaté que les attaquants ont même créé des chaînes de proxys C&C dans lesquelles le premier de ces serveurs peut rediriger le trafic réseau vers le suivant et ainsi de suite jusqu'à ce qu'il atteigne la destination finale sur Internet.

, C&C. GreyEnergy, . Windows GreyEnergy, C&C, 3proxy plink. GreyEnergy Linux :

  • - 3proxy
  • Dante SOCKS
  • PuTTY Link (Plink)

-, . ASP.

, , - , -. , cookie, , GreyEnergy. URL- .


20. , , cookie

, triungulin - -. , , GreyEnergy.

C&C , C&C-. , C&C, , -.

-:


- - URL- C&C .


21. C&C-, - -

- OpenSSL Curl, C&C- .


22. - - GreyEnergy

, ASP-. , , ASP cookie, , C&- AES; .


23. ASP-, GreyEnergy

C&C-


C&C- GreyEnergy Tor, . C&C- BlackEnergy, TeleBots Industroyer, Tor-.

, C&C- onion-, , . , OPSEC, .

ESET C&C-, GreyEnergy . « ».

GreyEnergy BlackEnergy


GreyEnergy BlackEnergy , . , , - .


Moonraker Petya


2016 , , , NotPetya ( Petya, ExPetr, Nyetya, EternalPetya). , .

DLL msvcrt120b.dll , Windows. – moonraker.dll , , , . , Moonraker Petya.


24. , 2016

DLL , 2016 , , .

Moonraker Petya , . , ImagePath [HKEY_LOCAL_MACHINE\System\ControlSet001\Services\ACPI] [HKEY_LOCAL_MACHINE\System\ControlSet002\Services\ACPI] . NotPetya, Moonraker Petya , MBR . DLL Moonraker Petya . , . zlib . , . MBR , , Green Petya, . , Green Petya.


25. , , Moonraker Petya

, Moonraker Petya DLL- GreyEnergy « ».


26. Moonraker Petya () GreyEnergy ()

Moonraker Petya SysInternals PsExec. zlib . Windows conhost.exe .

NotPetya: , ( WNetEnumResourceW , GetIpNetTable , GetExtendedTcpTable , NetServerEnum , TERMSRV-records CredEnumerateW ), WNetAddConnection2W \\%TARGET-HOST%\admin$\%MALWARE% . Moonraker Petya , PsExec:

C:\Windows\conhost.exe \\%TARGET-HOST% -accepteula -s -d C:\Windows\System32\rundll32.exe "C:\Windows\msvcrt120b.dll", #1 %TIMEOUT% "USER1:PASSWORD1;USER2:PASSWORD2" "%DECRYPTIONKEY%"

, Mimikatz EternalBlue.

Moonraker Petya . , , AES-256. README.txt .

, RSA-2048. , onion-, Green Petya. , Green Petya.


27. Readme , Moonraker Petya

Moonraker Petya .

Conclusion


GreyEnergy – -, . BlackEnergy, . , , — , . BlackEnergy GreyEnergy 2015 – , BlackEnergy.

– 2016 Moonraker Petya, , , NotPetya. , TeleBots GreyEnergy . , , . TeleBots , GreyEnergy BlackEnergy .

, GreyEnergy . GreyEnergy TeleBots .

Indicateurs de compromis


ESET:


VBA/TrojanDownloader.Agent.EYV
Win32/Agent.SCT
Win32/Agent.SCM
Win32/Agent.SYN
Win64/Agent.SYN
Win32/Agent.WTD
Win32/GreyEnergy
Win64/GreyEnergy
Win32/Diskcoder.MoonrakerPetya.A
PHP/Agent.JS
PHP/Agent.JX
PHP/Agent.KJ
PHP/Agent.KK
PHP/Agent.KL
PHP/Agent.KM
PHP/Agent.KN
PHP/Agent.KO
PHP/Agent.KP
PHP/Agent.KQ
PHP/Agent.KR
PHP/Agent.KS
PHP/Agent.KT
PHP/Agent.KU
PHP/Agent.LC
PHP/Agent.NBP
PHP/Kryptik.AB
PHP/TrojanProxy.Agent.B
ASP/Agent.L
Win64/HackTool.PortScanner.A
Win64/Riskware.Mimikatz.A
Win64/Riskware.Mimikatz.AE
Win64/Riskware.Mimikatz.AH
Win32/Winexe.A
Win64/Winexe.A
Win64/Winexe.B


Document GreyEnergy:


SHA-1:
177AF8F6E8D6F4952D13F88CDF1887CB7220A645

GreyEnergy mini:


SHA-1:
455D9EB9E11AA9AF9717E0260A70611FF84EF900
51309371673ACD310F327A10476F707EB914E255
CB11F36E271306354998BB8ABB6CA67C1D6A3E24
CC1CE3073937552459FB8ED0ADB5D56FA00BCD43
30AF51F1F7CB9A9A46DF3ABFFB6AE3E39935D82C


Compte-gouttes GreyEnergy:


SHA-1:
04F75879132B0BFBA96CB7B210124BC3D396A7CE
69E2487EEE4637FE62E47891154D97DFDF8AAD57
716EFE17CD1563FFAD5E5E9A3E0CAC3CAB725F92
93EF4F47AC160721768A00E1A2121B45A9933A1D
94F445B65BF9A0AB134FAD2AAAD70779EAFD9288
A414F0A651F750EEA18F6D6C64627C4720548581
B3EF67F7881884A2E3493FE3D5F614DBBC51A79B
EBD5DC18C51B6FB0E9985A3A9E86FF66E22E813E
EC7E018BA36F07E6DADBE411E35B0B92E3AD8ABA


DLL réinitialisables GreyEnergy:


SHA-1:
0B5D24E6520B8D6547526FCBFC5768EC5AD19314
10D7687C44BECA4151BB07F78C6E605E8A552889
2A7EE7562A6A5BA7F192B3D6AED8627DFFDA4903
3CBDC146441E4858A1DE47DF0B4B795C4B0C2862
4E137F04A2C5FA64D5BF334EF78FE48CF7C7D626
62E00701F62971311EF8E57F33F6A3BA8ED28BF7
646060AC31FFDDFBD02967216BC71556A0C1AEDF
748FE84497423ED209357E923BE28083D42D69DE
B75D0379C5081958AF83A542901553E1710979C7
BFC164E5A28A3D56B8493B1FC1CA4A12FA1AC6AC
C1EB0150E2FCC099465C210B528BF508D2C64520
CBB7BA92CDF86FA260982399DAB8B416D905E89B
DF051C67EE633231E4C76EC247932C1A9868C14F
DFD8665D91C508FAF66E2BC2789B504670762EA2
E2436472B984F4505B4B938CEE6CAE26EF043FC7
E3E61DF9E0DD92C98223C750E13001CBB73A1E31
E496318E6644E47B07D6CAB00B93D27D0FE6B415
EDA505896FFF9A29BD7EAE67FD626D7FFA36C7B2
F00BEFDF08678B642B69D128F2AFAE32A1564A90
F36ECAC8696AA0862AD3779CA464B2CD399D8099


GreyEnergy DLL (mode "uniquement en mémoire"):


SHA-1:
0BCECB797306D30D0BA5EAEA123B5BF69981EFF4
11159DB91B870E6728F1A7835B5D8BE9424914B9
6ABD4B82A133C4610E5779C876FCB7E066898380
848F0DBF50B582A87399428D093E5903FFAEEDCD
99A81305EF6E45F470EEE677C6491045E3B4D33A
A01036A8EFE5349920A656A422E959A2B9B76F02
C449294E57088E2E2B9766493E48C98B8C9180F8
C7FC689FE76361EF4FDC1F2A5BAB71C0E2E09746
D24FC871A721B2FD01F143EB6375784144365A84
DA617BC6DCD2083D93A9A83D4F15E3713D365960
E4FCAA1B6A27AA183C6A3A46B84B5EAE9772920B


Moonraker petya


SHA-1:
1AA1EF7470A8882CA81BB9894630433E5CCE4373

Scripts PHP et ASP


SHA-1:
10F4D12CF8EE15747BFB618F3731D81A905AAB04
13C5B14E19C9095ABA3F1DA56B1A76793C7144B9
1BA30B645E974DE86F24054B238FE77A331D0D2C
438C8F9607E06E7AC1261F99F8311B004C23DEC3
4D1C282F9942EC87C5B4D9363187AFDC120F4DC7
4E0C5CCFFB7E2D17C26F82DB5564E47F141300B3
5377ADB779DE325A74838C0815EEA958B4822F82
58A69A8D1B94E751050DECF87F2572E09794F0F8
5DD34FB1C8E224C17DCE04E02A4409E9393BCE58
639BCE78F961C4B9ECD9FE1A8537733388B99857
7127B880C8E31FBEB1D376EB55A6F878BC77B21A
71BA8FE0C9C32A9B987E2BB827FE54DAE905D65E
78A7FBDD6ADF073EA6D835BE69084E071B4DA395
81332D2F96A354B1B8E11984918C43FB9B5CB9DB
8CC008B3189F8CE9A96C2C41F864D019319EB2EE
940DE46CD8C50C28A9C0EFC65AEE7D567117941B
A415E12591DD47289E235E7022A6896CB2BFDE96
D3AE97A99D826F49AD03ADDC9F0D5200BE46AB5E
E69F5FF2FCD18698BB584B6BC15136D61EB4F594
E83A090D325E4A9E30B88A181396D62FEF5D54D5
ECF21EFC09E4E2ACFEEB71FB78CB1F518E1F5724


Scanner de port personnalisé


SHA-1:
B371A5D6465DC85C093A5FB84D7CDDEB1EFFCC56
B40BDE0341F52481AE1820022FA8376E53A20040


Mimikatz


SHA-1:
89D7E0DA80C9973D945E6F62E843606B2E264F7E
8B295AB4789105F9910E4F3AF1B60CBBA8AD6FC0
AD6F835F239DA6683CAA54FCCBCFDD0DC40196BE


Winexe


SHA-1: Avertissement: la plupart des serveurs avec ces adresses IP faisaient partie du réseau Tor, c'est-à-dire que l'utilisation de ces indicateurs peut conduire à des faux positifs.
0666B109B0128599D535904C1F7DDC02C1F704F2
2695FCFE83AB536D89147184589CCB44FC4A60F3
3608EC28A9AD7AF14325F764FB2F356731F1CA7A
37C837FB170164CBC88BEAE720DF128B786A71E0
594B809343FEB1D14F80F0902D764A9BF0A8C33C
7C1F7CE5E57CBDE9AC7755A7B755171E38ABD70D
90122C0DC5890F9A7B5774C6966EA694A590BD38
C59F66808EA8F07CBDE74116DDE60DAB4F9F3122
CEB96B364D6A8B65EA8FA43EB0A735176E409EB0
FCEAA83E7BD9BCAB5EFBA9D1811480B8CB0B8A3E




Le serveur C&C s'adresse Ă  GreyEnergy mini


https://82.118.236[.]23:8443/27c00829d57988279f3ec61a05dee75a
http://82.118.236[.]23:8080/27c00829d57988279f3ec61a05dee75a
https://88.198.13[.]116:8443/xmlservice
http://88.198.13[.]116:8080/xmlservice
https://217.12.204[.]100/news/
http://217.12.204[.]100/news/
http://pbank.co[.]ua/favicon.ico (IP: 185.128.40.90)


Adresses des serveurs GreyEnergy C & C (périodes d'activité et IP)


2015–2016 – 109.200.202.7
2015–2015 – 193.105.134.68
2015–2016 – 163.172.7.195
2015–2016 – 163.172.7.196
2016–2016 – 5.149.248.77
2016–2016 – 31.148.220.112
2016–2016 – 62.210.77.169
2016–2016 – 85.25.211.10
2016–2016 – 138.201.198.164
2016–2017 – 124.217.254.55
2017–2017 – 46.249.49.231
2017–2017 – 37.59.14.94
2017–2017 – 213.239.202.149
2017–2017 – 88.198.13.116
2017–2017 – 217.12.202.111
2017–2017 – 176.31.116.140
2017–2018 – 185.217.0.121
2017–2018 – 178.150.0.200
2018–2018 – 176.121.10.137
2018–2018 – 178.255.40.194
2018–2018 – 193.105.134.56
2018–2018 – 94.130.88.50
2018–2018 – 185.216.33.126

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


All Articles