[![Logo](https://www.paloaltonetworks.com/wp-content/uploads/2021/07/PANW_Parent.png)](https://www.paloaltonetworks.com/)  
[![Unit42 Logo](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/unit42-logo-white.svg)](https://unit42.paloaltonetworks.com/fr/)  
Menu

* [ATOMs](https://unit42.paloaltonetworks.com/atoms/)
* [Security Consulting](https://www.paloaltonetworks.com/unit42)
* [**Under Attack?**](https://start.paloaltonetworks.com/contact-unit42.html)  
  French
* [English](https://unit42.paloaltonetworks.com/adaptixc2-post-exploitation-framework/)
* [Spanish (LATAM)](https://unit42.paloaltonetworks.com/es-la/adaptixc2-post-exploitation-framework/)
* [French](https://unit42.paloaltonetworks.com/fr/adaptixc2-post-exploitation-framework/)
* [Japanese](https://unit42.paloaltonetworks.com/ja/adaptixc2-post-exploitation-framework/)
* [Threat Research Center](https://unit42.paloaltonetworks.com/fr/ "Threat Research")
* [Recherche sur les menaces](https://unit42.paloaltonetworks.com/fr/category/threat-research-fr/ "Recherche sur les menaces")
* [Malware](https://unit42.paloaltonetworks.com/fr/category/malware-fr/ "Malware")  
  [Malware](https://unit42.paloaltonetworks.com/fr/category/malware-fr/)

# AdaptixC2 : Un nouveau framework open source exploité activement

![Clock Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-clock.svg) 16 minutes de lecture  
Related Products  
[Advanced DNS Security](https://unit42.paloaltonetworks.com/fr/product-category/advanced-dns-security-fr/ "Advanced DNS Security")[Advanced Threat Prevention](https://unit42.paloaltonetworks.com/fr/product-category/advanced-threat-prevention-fr/ "Advanced Threat Prevention")[Advanced URL Filtering](https://unit42.paloaltonetworks.com/fr/product-category/advanced-url-filtering-fr/ "Advanced URL Filtering")[Advanced WildFire](https://unit42.paloaltonetworks.com/fr/product-category/advanced-wildfire-fr/ "Advanced WildFire")[Cloud-Delivered Security Services](https://unit42.paloaltonetworks.com/fr/product-category/cloud-delivered-security-services-fr/ "Cloud-Delivered Security Services")[Cortex](https://unit42.paloaltonetworks.com/fr/product-category/cortex-fr/ "Cortex")[Cortex XDR](https://unit42.paloaltonetworks.com/fr/product-category/cortex-xdr-fr/ "Cortex XDR")[Cortex XSIAM](https://unit42.paloaltonetworks.com/fr/product-category/cortex-xsiam-fr/ "Cortex XSIAM")[![Unit 42 Incident Response icon](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/06/unit42_RGB_logo_Icon_Color.png)Unit 42 Incident Response](https://unit42.paloaltonetworks.com/fr/product-category/unit-42-incident-response-fr/ "Unit 42 Incident Response")

* ![Profile Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-profile-grey.svg)  
  Par:
  
  * [Ofek Lahiani](https://unit42.paloaltonetworks.com/fr/author/ofek-lahiani/)
  * [Itay Cohen](https://unit42.paloaltonetworks.com/fr/author/itay-cohen/)

* ![Published Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-calendar-grey.svg)  
  Publié:10 septembre 2025

* ![Tags Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-category.svg)  
  Catégories
  
  * [Malware](https://unit42.paloaltonetworks.com/fr/category/malware-fr/)
  * [Recherche sur les menaces](https://unit42.paloaltonetworks.com/fr/category/threat-research-fr/)

* ![Tags Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-tags-grey.svg)  
  Tags:
  
  * [C2](https://unit42.paloaltonetworks.com/fr/tag/c2-fr/)
  * [DLL](https://unit42.paloaltonetworks.com/fr/tag/dll-fr/)
  * [Open source](https://unit42.paloaltonetworks.com/fr/tag/open-source-fr/)
  * [Pentest tool](https://unit42.paloaltonetworks.com/fr/tag/pentest-tool-fr/)
  * [Phishing](https://unit42.paloaltonetworks.com/fr/tag/phishing-fr/)

* [![Download Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-download.svg)](https://unit42.paloaltonetworks.com/fr/adaptixc2-post-exploitation-framework/?pdf=download&lg=fr&_wpnonce=1f7a0335d5 "Click here to download")

* [![Print Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-print.svg)](https://unit42.paloaltonetworks.com/fr/adaptixc2-post-exploitation-framework/?pdf=print&lg=fr&_wpnonce=1f7a0335d5 "Click here to print")

Partager![Down arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/down-arrow.svg)

* ![Link Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-share-link.svg)
* \[![Link Email](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-sms.svg)\](mailto:?subject=AdaptixC2 :%20Un%20nouveau%20framework%20open%20source%20exploité%20activement\&body=Check%20out%20this%20article%20https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fadaptixc2-post-exploitation-framework%2F "Share in email")
* [![Facebook Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-fb-share.svg)](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fadaptixc2-post-exploitation-framework%2F "Share in Facebook")
* \[![LinkedIn Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-linkedin-share.svg)\](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fadaptixc2-post-exploitation-framework%2F\&title=AdaptixC2 :%20Un%20nouveau%20framework%20open%20source%20exploité%20activement "Share in LinkedIn")
* \[![Twitter Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-twitter-share.svg)\](https://twitter.com/intent/tweet?url=https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fadaptixc2-post-exploitation-framework%2F\&text=AdaptixC2 :%20Un%20nouveau%20framework%20open%20source%20exploité%20activement "Share in Twitter")
* [![Reddit Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-reddit-share.svg)](https://www.paloaltonetworks.com//www.reddit.com/submit?url=https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fadaptixc2-post-exploitation-framework%2F&ts=markdown "Share in Reddit")
* \[![Mastodon Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-mastodon-share.svg)\](https://mastodon.social/share?text=AdaptixC2 :%20Un%20nouveau%20framework%20open%20source%20exploité%20activement%20https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fadaptixc2-post-exploitation-framework%2F "Share in Mastodon")

## Avant-propos

Au début du mois de mai 2025, les chercheurs de Unit 42 ont constaté qu'AdaptixC2 était utilisé pour infecter plusieurs systèmes.

AdaptixC2 est un framework open source récemment identifié, conçu pour la post-exploitation et l'émulation malveillante à destination de testeurs de pénétration, mais déjà utilisé par des acteurs de la menace dans leurs campagnes. Contrairement à de nombreux frameworks C2 bien connus, AdaptixC2 est resté en grande partie inaperçu. Il existe peu de documents publics démontrant son utilisation dans le cadre d'attaques réelles. Nos recherches analysent les capacités d'AdaptixC2, afin d'aider les équipes de sécurité à s'en protéger.

AdaptixC2 est un framework polyvalent de post-exploitation. Les acteurs de la menace l'utilisent pour exécuter des commandes, transférer des fichiers et exfiltrer des données sur des systèmes compromis. Comme il s'agit d'un logiciel open source, les acteurs de la menace peuvent facilement le personnaliser et l'adapter à leurs objectifs spécifiques. Cela en fait un outil extrêmement flexible et dangereux.

L'émergence d'AdaptixC2 comme outil utilisé sur le terrain par des acteurs de la menace souligne une tendance croissante des attaquants à recourir à des frameworks personnalisables pour échapper à la détection.

Les clients de Palo Alto Networks sont mieux protégés contre les menaces décrites dans cet article grâce aux produits suivants :

* [Advanced DNS Security](https://docs.paloaltonetworks.com/dns-security)
* [Advanced Threat Prevention](https://docs.paloaltonetworks.com/advanced-threat-prevention/administration)
* [Advanced URL Filtering](https://docs.paloaltonetworks.com/advanced-url-filtering/administration)
* [Advanced WildFire](https://docs.paloaltonetworks.com/wildfire)
* [Cortex XDR](https://docs-cortex.paloaltonetworks.com/p/XDR) et [XSIAM](https://docs-cortex.paloaltonetworks.com/p/XSIAM)

Si vous pensez que votre entreprise a pu être compromise ou si vous faites face à une urgence, contactez [l'équipe Unit 42 de réponse à incident](https://start.paloaltonetworks.com/contact-unit42.html).

| **Unit 42 -- Thématiques connexes** | [**Pentesting Tools**](https://unit42.paloaltonetworks.com/fr/tag/pentest-tool-fr/), **[C2](https://unit42.paloaltonetworks.com/fr/tag/c2-fr/)** |
|-------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------|

## Analyse technique du framework malveillant AdaptixC2

AdaptixC2 est un framework C2 open source que nous avons récemment observé utilisé dans plusieurs attaques réelles.

Nous avons identifié deux infections par AdaptixC2. Dans un cas, des techniques d'ingénierie sociale ont été exploitées. Nous estimons avec une grande certitude que l'autre a utilisé des outils de génération de code basés sur l'IA.

### **Fonctionnalités d'AdaptixC2**

AdaptixC2 est un outil de red teaming pouvant être exploité pour mener des actions malveillantes, avec des possibilités d'extension et de personnalisation. S'il était utilisé par un acteur de la menace, il pourrait prendre le contrôle complet des machines compromises et exécuter un [large éventail d'actions](https://adaptix-framework.gitbook.io/adaptix-framework/extenders/agents/beacon#commands). Par exemple :

* Manipulation du système de fichiers
* Répertoires de listes
* Création, modification et suppression de fichiers et de dossiers
* Énumération des processus en cours d'exécution
* Fermeture de certaines applications spécifiques
* Lancement des exécutions de nouveaux programmes

Les acteurs de la menace utilisent ces fonctionnalités pour établir et maintenir une présence dans un environnement, explorer davantage le système compromis et se déplacer latéralement au sein du réseau.

Pour faciliter des communications discrètes et contourner les restrictions réseau, le framework prend en charge des fonctionnalités de tunneling sophistiquées, y compris la fonctionnalité de proxy SOCKS4/5 et le transfert de ports. Cela permet aux attaquants de maintenir des canaux de communication même si le réseau est fortement protégé.

AdaptixC2 est conçu de manière modulaire, utilisant des \<\< extenders \>\> qui fonctionnent comme des plug-in pour les auditeurs et les agents. Cela permet aux pirates de créer des payloads personnalisés et des moyens d'éviter la détection qui sont spécifiques au système qu'ils attaquent. AdaptixC2 prend également en charge les Beacon Object Files (BOF), qui permettent aux attaquants d'exécuter de petits programmes personnalisés écrits en C directement dans le processus de l'agent afin d'échapper à la détection.

Les agents Beacon d'AdaptixC2 sont équipés de commandes dédiées pour transférer des données rapidement et secrètement. Ces agents sont compatibles avec les architectures x86 et x64, et peuvent être générés dans différents formats, notamment :

* Fichiers exécutables autonomes (EXE)
* Fichiers BBL (bibliothèque à liaisons dynamiques)
* Fichiers exécutables de service
* Shellcode brut

Les attaquants peuvent utiliser le framework AdaptixC2 pour dérober des données sur le réseau compromis. Cette fonctionnalité d'exfiltration de données permet de configurer la taille des segments pour les téléchargements et les chargements de fichiers, les segments plus petits étant moins susceptibles d'être détectés par les systèmes de surveillance réseau.

L'interface AdaptixC2 affiche les agents et les sessions liés sous forme de vue graphique. La figure 1 illustre la vue de l'attaquant, montrant la progression des attaques multi-étapes et les chemins disponibles pour se déplacer dans le réseau ciblé.
![Capture d’écran du serveur AdaptixC2. L’interface affiche diverses fenêtres de ressources et de scripts ainsi qu’une chaîne d’attaque représentée par des icônes de pare-feu et d’ordinateurs.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/word-image-233906-156911-1.png) Figure 1. Vue graphique -- Serveur AdaptixC2. Source : [AdaptixC2 GitHub](https://github.com/Adaptix-Framework/AdaptixC2).

AdaptixC2 comprend également des fonctionnalités qui aident l'attaquant à maintenir la sécurité opérationnelle (OpSec). Il s'agit notamment de paramètres qui leur permettent de se fondre dans le trafic réseau normal :

* KillDate : définit la date à laquelle le beacon cessera de fonctionner.
* WorkingTime : cette option permet au beacon de n'être actif que pendant certaines heures.

En outre, les acteurs de la menace peuvent modifier et améliorer l'agent en utilisant des techniques personnalisées d'obscurcissement, d'anti-analyse et d'évasion, ce qui en fait une menace en constante évolution.

### **Configuration**

​La configuration d'AdaptixC2 est chiffrée et prend en charge trois types de beacons primaires grâce à des structures de profil spécialisées :

* [BEACON\_HTTP](https://adaptix-framework.gitbook.io/adaptix-framework/extenders/listeners/beacon-http) pour les communications basées sur le web
* BEACON\_SMB pour la communication par canal nommé
* BEACON\_TCP pour les connexions TCP directes

Le profil HTTP est la variante du beacon la plus courante et contient des paramètres de communication web typiques tels que :

* Serveurs
* Ports
* Paramètres SSL
* Méthodes HTTP
* URI
* En-têtes
* Chaînes d'agents utilisateurs

Le profil SMB utilise les canaux nommés de Windows lorsque le protocole HTTP peut être bloqué ou surveillé. Le profil TCP est utilisé pour créer des connexions de socket directes avec la possibilité d'ajouter des données pour un obscurcissement de base du protocole.

AdaptixC2 comprend une configuration par défaut intégrée, montrant comment le framework est généralement déployé et utilisé en conditions réelles. Le profil HTTP par défaut cible 172.16.196.1:4443 en utilisant une communication HTTPS, avec une méthode POST vers le terminal /uri.php et le paramètre X-Beacon-Id pour l'identification du beacon.

La figure 2 explique comment configurer le beacon.
![Capture d’écran de l’interface de configuration du beacon, montrant les onglets pour les paramètres principaux, les en-têtes HTTP, la page d’erreur et le payload. L’onglet sélectionné affiche des champs permettant de configurer l’hôte et le port, les adresses de rappel, la clé SSL et d’autres paramètres réseau.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/word-image-237550-156911-2.png) Figure 2. Interface utilisateur du générateur du beacon HTTP. Source : [Documentation d'AdaptixC2](https://adaptix-framework.gitbook.io/adaptix-framework/extenders/listeners/beacon-http).

Après avoir cliqué sur \<\< Create \>\>, le générateur de beacon chiffre la configuration avec l'algorithme cryptographique RC4 avant de l'intégrer dans le beacon compilé. La configuration chiffrée est stockée comme suit :

* 4 octets : Taille de la configuration (entier 32 bits)
* n octets : Données de configuration chiffrées RC4
* 16 octets : Clé de chiffrement RC4

Le code suivant est la logique d'extraction des clés, extrait de [AgentConfig.cpp](https://github.com/Adaptix-Framework/AdaptixC2/blob/main/Extenders/agent_beacon/src_beacon/beacon/AgentConfig.cpp) :  
ULONG profileSize = packer-\>Unpack32(); this-\>encrypt\_key = (PBYTE) MemAllocLocal(16); memcpy(this-\>encrypt\_key, packer-\>data() + 4 + profileSize, 16); DecryptRC4(packer-\>data()+4, profileSize, this-\>encrypt\_key, 16);

|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 | ULONG profileSize = packer-\>Unpack32(); this-\>encrypt\_key = (PBYTE) MemAllocLocal(16); memcpy(this-\>encrypt\_key, packer-\>data() + 4 + profileSize, 16); DecryptRC4(packer-\>data()+4, profileSize, this-\>encrypt\_key, 16); |

#### Extraction de la configuration à partir d'échantillons malveillants

Le cryptage étant simple et prévisible, les équipes de sécurité peuvent développer un outil qui extrait automatiquement les configurations des échantillons. Cet outil d'extraction devrait fonctionner de la même manière que le beacon charge ses propres configurations.

L'outil d'extraction localise la configuration dans la section .rdata du fichier PE. Il extrait ensuite la taille (quatre premiers octets), le bloc de données chiffrées et la clé RC4 (16 derniers octets). Après avoir utilisé la clé RC4 intégrée pour déchiffrer les données, il analyse la configuration en texte clair en décomposant les champs suivants :

* Type d'agent
* Indicateur SSL
* Nombre de serveurs
* Serveurs/ports
* Paramètres HTTP
* Paramètres de synchronisation

En utilisant cette méthode, nous avons créé un outil qui peut traiter les échantillons AdaptixC2 et obtenir leurs configurations intégrées. Le code complet de l'outil d'extraction prend en charge la variante BEACON\_HTTP. Cet outil est fourni dans la section [Exemple d'extracteur de configuration](#post-156911-_heading=h.t1rtfm73a7p9). Les chercheurs peuvent utiliser cet extracteur pour analyser les échantillons AdaptixC2 ou adapter le code à d'autres variantes.

La configuration par défaut du beacon est décrite ci-dessous.  
{ "agent\_type": 3192652105, "use\_ssl": true, "servers\_count": 1, "servers": \["172.16.196.1"\], "ports": \[4443\], "http\_method": "POST", "uri": "/uri.php", "parameter": "X-Beacon-Id", "user\_agent": "Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0", "http\_headers": "\\r\\n", "ans\_pre\_size": 26, "ans\_size": 47, "kill\_date": 0, "working\_time": 0, "sleep\_delay": 2, "jitter\_delay": 0, "listener\_type": 0, "download\_chunk\_size": 102400 }

|-------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | { "agent\_type": 3192652105, "use\_ssl": true, "servers\_count": 1, "servers": \["172.16.196.1"\], "ports": \[4443\], "http\_method": "POST", "uri": "/uri.php", "parameter": "X-Beacon-Id", "user\_agent": "Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0", "http\_headers": "\\r\\n", "ans\_pre\_size": 26, "ans\_size": 47, "kill\_date": 0, "working\_time": 0, "sleep\_delay": 2, "jitter\_delay": 0, "listener\_type": 0, "download\_chunk\_size": 102400 } |

## Scénarios d'utilisation d'AdaptixC2

### **Scénario 1 : Un appel frauduleux au service d'assistance mène à une infection par AdaptixC2**

En mai 2025, nous avons enquêté sur plusieurs incidents au cours desquels des acteurs de la menace ont installé des beacons AdaptixC2. Dans certains cas, nous avons observé que les acteurs de la menace utilisaient le même vecteur d'attaque, comme indiqué à la figure 3.
![Illustration montrant le processus « Un appel frauduleux au service d’assistance mène à AdaptixC2 ». La séquence comprend : un appel frauduleux au service d’assistance, un ordinateur exécutant Quick Assist, l’exécution d’un fichier script nommé update.ps1, le téléchargement d’un shellcode depuis Google Drive, le décryptage et le chargement du shellcode dans la mémoire, et un crâne à l’intérieur d’un insecte représentant le beacon AdaptixC2.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/FR-Fake-help-desk-support-leads-to-AdaptixC2.pptx-1-786x259.png) Figure 3. Vecteur d'attaque de l'installation d'AdaptixC2 sur la machine victime. Source : [Publication X de Unit 42](https://x.com/Unit42_Intel/status/1925206262184026156).

#### Compromission initiale

Les acteurs de la menace ont exploité la confiance accordée à Microsoft Teams pour inciter les utilisateurs à leur donner accès aux systèmes de l'entreprise. Dans un cas, les attaquants ont utilisé des [attaques d'hameçonnage](https://www.paloaltonetworks.com/cyberpedia/what-is-phishing) pour se faire passer pour du personnel d'assistance informatique (en utilisant des lignes d'objet telles que \<\< Help Desk (External) | Microsoft Teams \>\>). Cela a convaincu les employés de lancer des sessions légitimes d'assistance à distance à l'aide d'outils tels que Quick Assist, [l'outil de surveillance et de gestion à distance (RMM)](https://www.manageengine.com/remote-monitoring-management/what-is-rmm.html).

Ce type d'usurpation est courant chez les acteurs de la menace et ne reflète en aucun cas une faille dans les produits ou services des éditeurs concernés. Cela n'implique pas nécessairement une faille ou une qualité malveillante du produit légitime utilisé à mauvais escient.

Le [Rapport mondial 2025 de Unit 42 sur la réponse à incident : L'édition \<\< Social Engineering \>\>](https://unit42.paloaltonetworks.com/fr/2025-unit-42-global-incident-response-report-social-engineering-edition/) a noté que des techniques comme celle-ci constituent le vecteur d'accès initial le plus répandu dans les compromissions que nous observons. Cet accès initial permet aux attaquants de prendre pied dans le système ciblé, sans qu'ils aient besoin de contourner les défenses périmétriques comme les pare-feu ou les systèmes de détection d'intrusion.

#### Déploiement et persistance d'AdaptixC2 via l'exécution d'un shellcode

Les attaquants ont déployé le beacon AdaptixC2 à l'aide d'un chargeur PowerShell en plusieurs étapes qui télécharge un payload codé et chiffré à partir d'un lien vers un service légitime.

Une fois téléchargé, le script PowerShell déchiffre le payload à l'aide d'une simple clé XOR. Au lieu d'écrire le payload déchiffré sur le disque, ce qui le rendrait plus facile à détecter, le script exploite les capacités de .NET pour allouer de la mémoire au sein du processus PowerShell lui-même. Le script copie ensuite le payload déchiffré, qui est en fait un shellcode, dans cette région de mémoire allouée. Cette [approche sans fichier](https://www.paloaltonetworks.com/cyberpedia/what-are-fileless-malware-attacks) réduit considérablement l'empreinte laissée par l'attaquant sur le système.
![Une capture d’écran affiche du code provenant d’un environnement de développement logiciel, avec du texte principalement en vert et en blanc sur un fond sombre. Le code comprend diverses fonctions de programmation et éléments de syntaxe.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/word-image-242252-156911-4.png) Figure 4. Script PowerShell pour télécharger et exécuter un shellcode.

Le script utilise une technique appelée \<\< invocation dynamique \>\> pour exécuter le shellcode directement depuis la mémoire. Pour ce faire, il utilise la fonction [GetDelegateForFunctionPointer](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.getdelegateforfunctionpointer?view=net-8.0) qui crée dynamiquement un délégué (un pointeur de fonction typé) qui pointe vers le début du shellcode en mémoire. Le script appelle ensuite ce délégué comme s'il s'agissait d'une fonction normale, ce qui permet d'exécuter le shellcode sans écrire de fichier exécutable sur le disque. Pour garantir le lancement automatique du processus malveillant après le redémarrage, le script crée un raccourci dans le dossier de démarrage. La figure 4 présente le script PowerShell.
![Une capture d’écran affiche un script PowerShell sur un fond bleu, comprenant des commandes pour la création d’un élément de démarrage dans Windows et la gestion des erreurs.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/word-image-245319-156911-5.png) Figure 5. Script PowerShell pour l'installation du beacon AdaptixC2.

La variante de beacon chargée dans cette attaque avait la configuration suivante :  
{ "agent\_type": 3192652105, "use\_ssl": true, "servers\_count": 1, "servers": \[ "tech-system\[.\]online" \], "ports": \[ 443 \], "http\_method": "POST", "uri": "/endpoint/api", "parameter": "X-App-Id", "user\_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.160 Safari/537.36", "http\_headers": "\\r\\n", "ans\_pre\_size": 26, "ans\_size": 47, "kill\_date": 0, "working\_time": 0, "sleep\_delay": 4, "jitter\_delay": 0, "listener\_type": 0, "download\_chunk\_size": 102400 }

|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | { "agent\_type": 3192652105, "use\_ssl": true, "servers\_count": 1, "servers": \[ "tech-system\[.\]online" \], "ports": \[ 443 \], "http\_method": "POST", "uri": "/endpoint/api", "parameter": "X-App-Id", "user\_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.160 Safari/537.36", "http\_headers": "\\r\\n", "ans\_pre\_size": 26, "ans\_size": 47, "kill\_date": 0, "working\_time": 0, "sleep\_delay": 4, "jitter\_delay": 0, "listener\_type": 0, "download\_chunk\_size": 102400 } |

#### Activité post-exploitation et confinement

Après le déploiement réussi d'AdaptixC2, les attaquants ont lancé des activités de reconnaissance, utilisant des outils en ligne de commande pour recueillir des informations sur les systèmes et le réseau compromis. Il s'agit notamment de commandes de découverte telles que nltest.exe, whoami.exe et ipconfig.exe.

Le beacon a ensuite établi une communication avec un serveur distant, permettant aux acteurs de la menace d'obtenir un lien C2 sur la machine infectée.

### **Scenario 2 : Infection due à un script généré par l'IA**

Dans un autre cas, les acteurs de la menace ont utilisé un script PowerShell conçu pour déployer des beacons AdaptixC2. Nous [évaluons avec une grande confiance](#post-156911-_heading=h.on6vwwvrnsxm) que ce script a été généré par l'IA. Ce déploiement a été réalisé à la fois par l'injection de shellcode en mémoire et à l'aide d'un mécanisme de persistance du [détournement de fichiers DLL](https://unit42.paloaltonetworks.com/dll-hijacking-techniques/). Le script, illustré à la figure 5, s'efforce de rester dissimulé sur le système infecté afin de donner aux pirates un point d'ancrage solide.
![Une capture d’écran d’un ordinateur affiche du code avec mise en évidence de la syntaxe. Le code a été généré par l’IA.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/word-image-247597-156911-6.png) Figure 6. Installation PowerShell générée par l'IA pour AdaptixC2.

#### Analyse détaillée du PowerShell généré par l'IA

* **Téléchargement et décodage du shellcode :** Le script télécharge un payload de shellcode codé en Base64 à partir d'un serveur distant à l'aide de la méthode [Invoke-RestMethod](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod?view=powershell-7.5). Le contenu téléchargé est ensuite décodé.
* **Allocation de mémoire, copie de shellcode et modification de la protection de la mémoire :** Le script alloue un bloc de mémoire non géré. Le shellcode AdaptixC2 est ensuite copié dans la mémoire allouée et modifie les attributs de protection de cette zone de mémoire sont modifiés via [VirtualProtect](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect) en 0x40 ([PAGE\_EXECUTE\_READWRITE](https://learn.microsoft.com/en-us/windows/win32/memory/memory-protection-constants)). Cela permet d'exécuter le shellcode.
* **Exécution d'un shellcode par invocation dynamique :** Comme dans le cas précédent, l'attaquant a utilisé GetDelegateForFunctionPointer pour créer une instance de délégué pointant vers le début du shellcode en mémoire. L'attaquant a ensuite utilisé la méthode Invoke() pour exécuter le shellcode et lancer le beacon en mémoire.
* **Persistance du détournement de fichiers DLL :** Le script cible le répertoire APPDATA\\Microsoft\\Windows\\Templates pour le détournement de fichiers DLL, en utilisant msimg32.dll. Ce fichier DLL est *également* une version de beacon.
* **Persistance via la clé run de registre Run :** Le script crée une entrée dans la [clé de registre Run](https://attack.mitre.org/techniques/T1547/001/) nommée \<\< Updater \>\>, contenant une commande PowerShell qui exécute le script loader.ps1. Cela garantit que le script loader.ps1 s'exécute à chaque connexion de l'utilisateur, lançant ainsi le beacon.

#### Génération de scripts d'IA

La structure et la composition de ce script PowerShell suggèrent fortement que l'attaquant a utilisé des techniques de [génération assistée par l'IA](https://www.paloaltonetworks.com/blog/2025/05/unit-42-develops-agentic-ai-attack-framework/). Les éléments stylistiques suivants sont couramment observés dans le code généré par les outils d'IA :

* Commentaires détaillés et numérotés :
  * "# === \[1\] Download and decode shellcode ==="
* Icônes cochées dans le message de sortie :
  * Write-Output "\[✔\] Persistence set via Run key and DLL hijack DLL dropped to $templatesPath"

Nous évaluons avec une grande certitude que le code a été généré avec l'aide de l'IA. Ce résultat est basé sur les facteurs susmentionnés, ainsi que sur les preuves recueillies sur le serveur de l'attaquant et les résultats extraits de deux détecteurs d'IA distincts.

Les outils d'IA sans [garde-fous suffisants](https://unit42.paloaltonetworks.com/fr/comparing-llm-guardrails-across-genai-platforms/) peuvent permettre aux attaquants de développer rapidement des codes malveillants, facilitant ainsi l'exécution d'opérations dans les réseaux infectés.

### **Similitudes entre les cas**

Un schéma cohérent s'est dégagé de ces deux incidents :

* Chargeurs basés sur PowerShell
  
  * Les acteurs de la menace ont utilisé ces chargeurs pour déployer le beacon AdaptixC2, en privilégiant la furtivité et l'accès persistant.

* Téléchargement d'un payload à partir d'un serveur distant et exécution en mémoire
  
  * L'utilisation d'une ressource légitime a permis aux attaquants de rester inaperçus, en minimisant les traces détectables sur le disque.

* S'appuyer sur les capacités de .NET pour l'allocation de mémoire et l'invocation dynamique
  
  * Les acteurs de la menace ont exploité les fonctionnalités intégrées du système, telles que la méthode GetDelegateForFunctionPointer pour exécuter du shellcode pour des raisons d'efficacité et de discrétion.

* Empêcher la suppression des beacons à l'aide de mécanismes de persistance
  
  * Alors que le premier script se contentait d'utiliser un raccourci dans le dossier de démarrage pour assurer la persistance, le second a ajouté le détournement de fichiers DLL.
  * Les attaquants disposent ainsi de plus de moyens pour rester sur le système compromis.

* Utilisation de conventions de dénomination similaires pour les scripts et les clés run
  
  * Dans un cas, les attaquants ont nommé le script malveillant update.ps1. Dans un autre, la clé run pour la persistance s'appelait \<\< Updater \>\>.
  * Cette dénomination permet aux scripts et aux clés de passer inaperçus dans les processus légitimes du système.

## Popularité croissante du framework AdaptixC2

Notre télémétrie et nos renseignements sur les menaces montrent qu'AdaptixC2 est de plus en plus répandu. Nous continuons à identifier de nouveaux serveurs AdaptixC2, ce qui suggère que de plus en plus d'acteurs de la menace adoptent ce framework dans leur arsenal d'attaques.

Cette tendance s'étend au-delà des scénarios typiques de post-exploitation. Par exemple, les attaquants ont déployé le ransomware Fog en même temps qu'AdaptixC2 lors d'une [récente attaque contre une institution financière en Asie](https://www.security.com/threat-intelligence/fog-ransomware-attack). Cela montre qu'AdaptixC2 est polyvalent et peut être utilisé avec d'autres outils malveillants, comme les ransomwares, pour atteindre des objectifs plus larges.

## Conclusion

AdaptixC2 est une menace adaptable, comme en témoignent sa popularité croissante auprès des acteurs de la menace et la complexité de ses techniques de déploiement. La modularité de ce framework, combinée au potentiel de génération de code assistée par l'IA, pourrait permettre aux acteurs de la menace de faire évoluer rapidement leurs tactiques. Les équipes de sécurité doivent rester conscientes des capacités d'AdaptixC2 et adapter leurs défenses de manière proactive pour contrer cette menace.

Les clients de Palo Alto Networks sont mieux protégés contre les menaces mentionnées ci-dessus grâce aux produits et services suivants :

* [Advanced URL Filtering](https://docs.paloaltonetworks.com/advanced-url-filtering/administration) et [Advanced DNS Security](https://docs.paloaltonetworks.com/dns-security) permettent d'identifier les domaines et URL associés à cette activité comme étant malveillants.
* [Advanced Threat Prevention](https://docs.paloaltonetworks.com/advanced-threat-prevention/administration) intègre une détection basée sur le machine learning pour identifier les exploits en temps réel.
* Les modèles de Machine Learning d'[Advanced WildFire](https://docs.paloaltonetworks.com/wildfire) ont été mis à jour sur la base des indicateurs de compromission (IoC) identifiés dans cette recherche.
* [Cortex XDR](https://docs-cortex.paloaltonetworks.com/p/XDR) et [XSIAM](https://docs-cortex.paloaltonetworks.com/p/XSIAM) aident à prévenir les malwares à l'aide du [moteur de prévention des malwares](https://docs-cortex.paloaltonetworks.com/r/Cortex-XDR/Cortex-XDR-4.x-Documentation/Endpoint-protection). Cette approche combine plusieurs couches de protection conçues pour empêcher les malwares connus et inconnus de nuire à vos terminaux. Les techniques d'atténuation utilisées par le moteur de prévention des malwares varient en fonction du type de terminal.

Si vous pensez que votre entreprise a pu être compromise ou si vous faites face à une urgence, contactez l'[équipe Unit 42 de réponse à incident](https://start.paloaltonetworks.com/contact-unit42.html) ou composez l'un des numéros suivants :

* Amérique du Nord : Gratuit : +1 (866) 486-4842 (866.4.UNIT42)
* Royaume-Uni : +44 20 3743 3660
* Europe et Moyen-Orient : +31.20.299.3130
* Asie : +65.6983.8730
* Japon : +81 50 1790 0200
* Australie : +61.2.4062.7950
* Inde : 00080005045107

Palo Alto Networks a partagé ces conclusions avec les autres membres de la Cyber Threat Alliance (CTA). Les membres de la CTA s'appuient sur ces renseignements pour déployer rapidement des mesures de protection auprès de leurs clients et perturber de manière coordonnée les activités des cybercriminels. Cliquez ici pour en savoir plus sur la [Cyber Threat Alliance](https://www.cyberthreatalliance.org).

## Indicateurs de compromission

|------------------------------------------------------------------|----------|----------------------------------------------------|
| **Avantage**                                                     | **Type** | **Description**                                    |
| bdb1b9e37f6467b5f98d151a43f280f319bacf18198b22f55722292a832933ab | SHA256   | Script PowerShell qui installe un beacon AdaptixC2 |
| 83AC38FB389A56A6BD5EB39ABF2AD81FAB84A7382DA296A855F62F3CDD9D629D | SHA256   | Script PowerShell qui installe un beacon AdaptixC2 |
| 19c174f74b9de744502cdf47512ff10bba58248aa79a872ad64c23398e19580b | SHA256   | Script PowerShell qui installe un beacon AdaptixC2 |
| 750b29ca6d52a55d0ba8f13e297244ee8d1b96066a9944f4aac88598ae000f41 | SHA256   | Script PowerShell qui installe un beacon AdaptixC2 |
| b81aa37867f0ec772951ac30a5616db4d23ea49f7fd1a07bb1f1f45e304fc625 | SHA256   | Beacon AdaptixC2 sous forme de fichier DLL         |
| df0d4ba2e0799f337daac2b0ad7a64d80b7bcd68b7b57d2a26e47b2f520cc260 | SHA256   | Beacon AdaptixC2 sous forme de fichier EXE         |
| AD96A3DAB7F201DD7C9938DCF70D6921849F92C1A20A84A28B28D11F40F0FB06 | SHA256   | Shellcode qui installe le beacon AdaptixC2         |
| tech-system\[.\]online                                           | Domaine  | Domaine AdaptixC2                                  |
| protoflint\[.\]com                                               | Domaine  | Domaine AdaptixC2                                  |
| novelumbsasa\[.\]art                                             | Domaine  | Domaine AdaptixC2                                  |
| picasosoftai\[.\]shop                                            | Domaine  | Domaine AdaptixC2                                  |
| dtt.alux\[.\]cc                                                  | Domaine  | Domaine AdaptixC2                                  |
| moldostonesupplies\[.\]pro                                       | Domaine  | Domaine AdaptixC2                                  |
| x6iye\[.\]site                                                   | Domaine  | Domaine AdaptixC2                                  |
| buenohuy\[.\]live                                                | Domaine  | Domaine AdaptixC2                                  |
| firetrue\[.\]live                                                | Domaine  | Domaine AdaptixC2                                  |
| lokipoki\[.\]live                                                | Domaine  | Domaine AdaptixC2                                  |
| veryspec\[.\]live                                                | Domaine  | Domaine AdaptixC2                                  |
| mautau\[.\]live                                                  | Domaine  | Domaine AdaptixC2                                  |
| muatay\[.\]live                                                  | Domaine  | Domaine AdaptixC2                                  |
| nicepliced\[.\]live                                              | Domaine  | Domaine AdaptixC2                                  |
| nissi\[.\]bg                                                     | Domaine  | Domaine AdaptixC2                                  |
| express1solutions\[.\]com                                        | Domaine  | Domaine AdaptixC2                                  |
| iorestore\[.\]com                                                | Domaine  | Domaine AdaptixC2                                  |
| doamin\[.\]cc                                                    | Domaine  | Domaine AdaptixC2                                  |
| regonalone\[.\]com                                               | Domaine  | Domaine AdaptixC2                                  |

## Règles de Yara

Les équipes de sécurité peuvent utiliser ces règles Yara pour détecter la présence de beacons AdaptixC2 sur les machines.

#### Beacon HTTP/SMB/TCP AdaptixC2

rule u42\_hacktool\_beacon\_adaptixC2 { meta: description = "Detects AdaptixC2 beacon via basic functions" reference = "https://github.com/Adaptix-Framework/AdaptixC2" strings: $FileTimeToUnixTimestamp = {D1 65 F8 83 7D F4 1F 7E 17 8B 55 E4} $Proxyfire\_RecvProxy = {B9 FC FF 0F 00 E8 6A 04 00 00} $timeCalc1 = {8D 82 A0 05 00 00 89 44 24 3C EB 07} $timeCalc2 = {FF D2 0F B7 44 24 28 66 3B} $b64\_encoded\_size = {83 C0 01 39 45 18 7E 22 8B 45 E4 C1 E0 08 89 C1} $manage = {C6 44 24 5F 00 48 8B 45 10 48 8B 00} condition: any of them }

|-------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | rule u42\_hacktool\_beacon\_adaptixC2 { meta: description = "Detects AdaptixC2 beacon via basic functions" reference = "https://github.com/Adaptix-Framework/AdaptixC2" strings: $FileTimeToUnixTimestamp = {D1 65 F8 83 7D F4 1F 7E 17 8B 55 E4} $Proxyfire\_RecvProxy = {B9 FC FF 0F 00 E8 6A 04 00 00} $timeCalc1 = {8D 82 A0 05 00 00 89 44 24 3C EB 07} $timeCalc2 = {FF D2 0F B7 44 24 28 66 3B} $b64\_encoded\_size = {83 C0 01 39 45 18 7E 22 8B 45 E4 C1 E0 08 89 C1} $manage = {C6 44 24 5F 00 48 8B 45 10 48 8B 00} condition: any of them } |

#### Beacon Go d'AdaptixC2

rule u42\_hacktool\_beaconGo\_adaptixC2 { meta: description = "Detects AdaptixC2 beacon in GO via basic functions" reference = "https://github.com/Adaptix-Framework/AdaptixC2/tree/a7401fa3fdbc7ae6b632c40570292f844e40ff40/Extenders/agent\_gopher" strings: $GetProcesses = {E8 96 4D E1 FF E8 96 4D E1 FF E8 96 4D E1 FF} $ConnRead = {0F 8E BD 00 00 00 4C 89 44 24 30 4C 89 54 24 40} $normalizedPath = {48 85 C9 74 0A 31 C0 31 DB 48 83 C4 38 5D C3 90 0F 1F 40 00} $Linux\_GetOsVersion = {48 8D 05 51 D6 10 00 BB 0F 00 00 00} $Mac\_GetOsVersion = {48 8D 05 AE 5A 0A 00 BB 30 00 00 00} condition: any of them }

|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | rule u42\_hacktool\_beaconGo\_adaptixC2 { meta: description = "Detects AdaptixC2 beacon in GO via basic functions" reference = "https://github.com/Adaptix-Framework/AdaptixC2/tree/a7401fa3fdbc7ae6b632c40570292f844e40ff40/Extenders/agent\_gopher" strings: $GetProcesses = {E8 96 4D E1 FF E8 96 4D E1 FF E8 96 4D E1 FF} $ConnRead = {0F 8E BD 00 00 00 4C 89 44 24 30 4C 89 54 24 40} $normalizedPath = {48 85 C9 74 0A 31 C0 31 DB 48 83 C4 38 5D C3 90 0F 1F 40 00} $Linux\_GetOsVersion = {48 8D 05 51 D6 10 00 BB 0F 00 00 00} $Mac\_GetOsVersion = {48 8D 05 AE 5A 0A 00 BB 30 00 00 00} condition: any of them } |

#### Chargeur AdaptixC2

rule u42\_hacktool\_adaptixC2\_loader { meta: description = "Detects AdaptixC2 shellcode loader via API Hashing" reference = "https://github.com/Adaptix-Framework/AdaptixC2/blob/main/Extenders/agent\_beacon/src\_beacon/beacon/ApiDefines.h" strings: $hash\_NtFlushInstructionCache = { 9E 65 A1 91 } $hash\_VirtualAlloc = { 76 63 CE 63 } $hash\_GetProcAddress = { DE 2A 4F 18 } $hash\_LoadLibraryA = { FA D0 59 11} $Calc\_Func\_resolve\_ApiFuncs = {06 00 00 0F B6 11 48 FF C1 85 D2 74 14 44 8D 42} condition: ( $hash\_NtFlushInstructionCache and $hash\_VirtualAlloc and $hash\_GetProcAddress and $hash\_LoadLibraryA ) or ( $Calc\_Func\_resolve\_ApiFuncs ) }

|-------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | rule u42\_hacktool\_adaptixC2\_loader { meta: description = "Detects AdaptixC2 shellcode loader via API Hashing" reference = "https://github.com/Adaptix-Framework/AdaptixC2/blob/main/Extenders/agent\_beacon/src\_beacon/beacon/ApiDefines.h" strings: $hash\_NtFlushInstructionCache = { 9E 65 A1 91 } $hash\_VirtualAlloc = { 76 63 CE 63 } $hash\_GetProcAddress = { DE 2A 4F 18 } $hash\_LoadLibraryA = { FA D0 59 11} $Calc\_Func\_resolve\_ApiFuncs = {06 00 00 0F B6 11 48 FF C1 85 D2 74 14 44 8D 42} condition: ( $hash\_NtFlushInstructionCache and $hash\_VirtualAlloc and $hash\_GetProcAddress and $hash\_LoadLibraryA ) or ( $Calc\_Func\_resolve\_ApiFuncs ) } |

## Règles de chasse aux menaces

* **Description de la requête**: La requête XQL suivante recherche les activités d'hameçonnage menées via l'application Teams, qui conduisent à l'exécution d'outils RMM. Ces attributs sont généralement ciblés par les attaquants pour déployer les beacons AdaptixC2.
* **Notes relatives à l'investigation** : Commencez par vérifier l'intitulé de la session utilisateur. Recherchez l'exécution de l'outil RMM et la création d'un processus enfant ou d'un fichier à l'aide de l'outil RMM. Recherchez des alertes ou des exécutions suspectes telles que cmd ou PowerShell par l'utilisateur compromis (actor\_effective\_username).

config case\_sensitive = false | dataset=xdr\_data | fields \_time as TeamsTime ,event\_type,agent\_hostname,actor\_effective\_username,event\_sub\_type, title, actor\_process\_image\_name as teams\_image\_name, actor\_process\_image\_sha256 , actor\_process\_image\_command\_line, agent\_hostname, \_time, action\_process\_image\_name, agent\_os\_type, agent\_id | filter agent\_os\_type = ENUM.AGENT\_OS\_WINDOWS and event\_type = ENUM.USER\_SESSION and teams\_image\_name in ("ms-teams.exe","updater.exe") and ((title contains "(external)" and title not contains "Chat |" ) and (title contains "help" )) | join type = inner ( dataset=xdr\_data | fields \_time as RmmStartTime ,agent\_os\_type , action\_file\_extension , event\_type,agent\_hostname,actor\_effective\_username,event\_sub\_type, actor\_process\_image\_name , action\_process\_image\_path, agent\_hostname, action\_process\_image\_name, agent\_id, event\_id | filter agent\_os\_type = ENUM.AGENT\_OS\_WINDOWS and (event\_type=ENUM.PROCESS and event\_sub\_type = ENUM.PROCESS\_START and action\_process\_image\_name in ("\*quickassist.exe","\*anydesk.exe","\*screenconnect.\*.exe","\*logmein.exe")) ) as rmm rmm.agent\_id = agent\_id and rmm.actor\_effective\_username = actor\_effective\_username and (timestamp\_diff(rmm.RmmStartTime,TeamsTime , "MINUTE") \< 10 and timestamp\_diff(rmm.RmmStartTime,TeamsTime , "MINUTE") \>= 0) | comp values(TeamsTime) as \_time ,values(RmmStartTime) as RmmStartTime, values(teams\_image\_name) as teams\_image\_name, values(action\_process\_image\_path) as action\_process\_image\_name, values(actor\_process\_image\_name) as ActorProcess, count(Title) as CountOfTitle by title,actor\_effective\_username,agent\_hostname , agent\_id, event\_id | filter (array\_length(action\_process\_image\_name)\>0)

|-------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | config case\_sensitive = false | dataset=xdr\_data | fields \_time as TeamsTime ,event\_type,agent\_hostname,actor\_effective\_username,event\_sub\_type, title, actor\_process\_image\_name as teams\_image\_name, actor\_process\_image\_sha256 , actor\_process\_image\_command\_line, agent\_hostname, \_time, action\_process\_image\_name, agent\_os\_type, agent\_id | filter agent\_os\_type = ENUM.AGENT\_OS\_WINDOWS and event\_type = ENUM.USER\_SESSION and teams\_image\_name in ("ms-teams.exe","updater.exe") and ((title contains "(external)" and title not contains "Chat |" ) and (title contains "help" )) | join type = inner ( dataset=xdr\_data | fields \_time as RmmStartTime ,agent\_os\_type , action\_file\_extension , event\_type,agent\_hostname,actor\_effective\_username,event\_sub\_type, actor\_process\_image\_name , action\_process\_image\_path, agent\_hostname, action\_process\_image\_name, agent\_id, event\_id | filter agent\_os\_type = ENUM.AGENT\_OS\_WINDOWS and (event\_type=ENUM.PROCESS and event\_sub\_type = ENUM.PROCESS\_START and action\_process\_image\_name in ("\*quickassist.exe","\*anydesk.exe","\*screenconnect.\*.exe","\*logmein.exe")) ) as rmm rmm.agent\_id = agent\_id and rmm.actor\_effective\_username = actor\_effective\_username and (timestamp\_diff(rmm.RmmStartTime,TeamsTime , "MINUTE") \< 10 and timestamp\_diff(rmm.RmmStartTime,TeamsTime , "MINUTE") \>= 0) | comp values(TeamsTime) as \_time ,values(RmmStartTime) as RmmStartTime, values(teams\_image\_name) as teams\_image\_name, values(action\_process\_image\_path) as action\_process\_image\_name, values(actor\_process\_image\_name) as ActorProcess, count(Title) as CountOfTitle by title,actor\_effective\_username,agent\_hostname , agent\_id, event\_id | filter (array\_length(action\_process\_image\_name)\>0) |

## Exemple d'extracteur de configuration

Le code suivant est un exemple d'extracteur de configuration qui extrait les configurations des fichiers de beacons HTTP.  
import struct import json import sys from typing import Dict, Any from malduck import procmempe, rc4, int32, enhex class ConfigParser: def **init**(self, data: bytes): self.data = data self.offset = 0 def unpack32(self) -\> int: value = struct.unpack('\<I', self.data\[self.offset:self.offset + 4\])\[0\] self.offset += 4 return value def unpack16(self) -\> int: """Unpack a 16-bit unsigned integer (little-endian)""" value = struct.unpack('\<H', self.data\[self.offset:self.offset + 2\])\[0\] self.offset += 2 return value def unpack8(self) -\> int: """Unpack an 8-bit unsigned integer""" value = self.data\[self.offset\] self.offset += 1 return value def unpack\_string(self) -\> str: """Unpack a length-prefixed string""" length = self.unpack32() string\_data = self.data\[self.offset:self.offset + length\] self.offset += length if string\_data and string\_data\[-1\] == 0: string\_data = string\_data\[:-1\] return string\_data.decode('utf-8', errors='replace') def unpack\_bytes(self, length: int) -\> bytes: """Unpack a fixed number of bytes""" data = self.data\[self.offset:self.offset + length\] self.offset += length return data def parse\_beacon\_http\_config(data: bytes) -\> Dict\[str, Any\]: """Parse BEACON\_HTTP configuration from raw bytes""" parser = ConfigParser(data) config = {} try: # Parse agent type config\['agent\_type'\] = parser.unpack32() # Parse HTTP profile config\['use\_ssl'\] = bool(parser.unpack8()) config\['servers\_count'\] = parser.unpack32() # Parse servers and ports config\['servers'\] = \[\] config\['ports'\] = \[\] for i in range(config\['servers\_count'\]): server = parser.unpack\_string() port = parser.unpack32() config\['servers'\].append(server) config\['ports'\].append(port) # Parse HTTP settings config\['http\_method'\] = parser.unpack\_string() config\['uri'\] = parser.unpack\_string() config\['parameter'\] = parser.unpack\_string() config\['user\_agent'\] = parser.unpack\_string() config\['http\_headers'\] = parser.unpack\_string() # Parse answer sizes config\['ans\_pre\_size'\] = parser.unpack32() ans\_size\_raw = parser.unpack32() config\['ans\_size'\] = ans\_size\_raw + config\['ans\_pre\_size'\] # Parse timing settings config\['kill\_date'\] = parser.unpack32() config\['working\_time'\] = parser.unpack32() config\['sleep\_delay'\] = parser.unpack32() config\['jitter\_delay'\] = parser.unpack32() # Default values from constructor config\['listener\_type'\] = 0 config\['download\_chunk\_size'\] = 0x19000 return config except Exception as e: print(f"Failed to parse configuration: {e}") raise def parse\_config(data: bytes, beacon\_type: str = "BEACON\_HTTP") -\> Dict\[str, Any\]: """Main entry point for parsing beacon configurations""" if beacon\_type == "BEACON\_HTTP": return parse\_beacon\_http\_config(data) else: raise NotImplementedError(f"Parser for {beacon\_type} not implemented") if **name** == "**main**": if len(sys.argv) \< 2: print("Usage: python extractor.py \<path\_to\_config\_file\>") sys.exit(1) passed\_arg = sys.argv\[1\] try: sample = procmempe.from\_file(passed\_arg) rdata\_section = sample.pe.section(".rdata") config\_structure = sample.readp(rdata\_section.PointerToRawData, rdata\_section.SizeOfRawData) config\_size = int32(config\_structure) encrypted\_config = config\_structure\[4:config\_size+4\] rc4\_key = config\_structure\[config\_size + 4 : config\_size + 4 + 16\] except Exception as e: print(f"Error reading file or extracting configuration: {e}") print("Using provided encrypted configuration bytes directly.") try: config\_structure = bytes.fromhex(passed\_arg) config\_size = int32(config\_structure) encrypted\_config = config\_structure\[4:config\_size+4\] rc4\_key = config\_structure\[config\_size + 4 : config\_size + 4 + 16\] except Exception as e: print(f"Failed to process provided argument as configuration bytes: {e}") sys.exit(1) try: decrypted\_config = rc4(rc4\_key, encrypted\_config) print(f"Decrypted configuration size: {len(decrypted\_config)} bytes") print(f"Decrypted configuration content: {decrypted\_config}") print("Decrypted configuration (hex): %s", enhex(decrypted\_config)) config = parse\_config(decrypted\_config) print("Parsed configuration:") print(json.dumps(config, indent=2)) except Exception as e: print(f"Error parsing configuration: {e}")

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | import struct import json import sys from typing import Dict, Any from malduck import procmempe, rc4, int32, enhex class ConfigParser: def **init**(self, data: bytes): self.data = data self.offset = 0 def unpack32(self) -\> int: value = struct.unpack('\<I', self.data\[self.offset:self.offset + 4\])\[0\] self.offset += 4 return value def unpack16(self) -\> int: """Unpack a 16-bit unsigned integer (little-endian)""" value = struct.unpack('\<H', self.data\[self.offset:self.offset + 2\])\[0\] self.offset += 2 return value def unpack8(self) -\> int: """Unpack an 8-bit unsigned integer""" value = self.data\[self.offset\] self.offset += 1 return value def unpack\_string(self) -\> str: """Unpack a length-prefixed string""" length = self.unpack32() string\_data = self.data\[self.offset:self.offset + length\] self.offset += length if string\_data and string\_data\[-1\] == 0: string\_data = string\_data\[:-1\] return string\_data.decode('utf-8', errors='replace') def unpack\_bytes(self, length: int) -\> bytes: """Unpack a fixed number of bytes""" data = self.data\[self.offset:self.offset + length\] self.offset += length return data def parse\_beacon\_http\_config(data: bytes) -\> Dict\[str, Any\]: """Parse BEACON\_HTTP configuration from raw bytes""" parser = ConfigParser(data) config = {} try: # Parse agent type config\['agent\_type'\] = parser.unpack32() # Parse HTTP profile config\['use\_ssl'\] = bool(parser.unpack8()) config\['servers\_count'\] = parser.unpack32() # Parse servers and ports config\['servers'\] = \[\] config\['ports'\] = \[\] for i in range(config\['servers\_count'\]): server = parser.unpack\_string() port = parser.unpack32() config\['servers'\].append(server) config\['ports'\].append(port) # Parse HTTP settings config\['http\_method'\] = parser.unpack\_string() config\['uri'\] = parser.unpack\_string() config\['parameter'\] = parser.unpack\_string() config\['user\_agent'\] = parser.unpack\_string() config\['http\_headers'\] = parser.unpack\_string() # Parse answer sizes config\['ans\_pre\_size'\] = parser.unpack32() ans\_size\_raw = parser.unpack32() config\['ans\_size'\] = ans\_size\_raw + config\['ans\_pre\_size'\] # Parse timing settings config\['kill\_date'\] = parser.unpack32() config\['working\_time'\] = parser.unpack32() config\['sleep\_delay'\] = parser.unpack32() config\['jitter\_delay'\] = parser.unpack32() # Default values from constructor config\['listener\_type'\] = 0 config\['download\_chunk\_size'\] = 0x19000 return config except Exception as e: print(f"Failed to parse configuration: {e}") raise def parse\_config(data: bytes, beacon\_type: str = "BEACON\_HTTP") -\> Dict\[str, Any\]: """Main entry point for parsing beacon configurations""" if beacon\_type == "BEACON\_HTTP": return parse\_beacon\_http\_config(data) else: raise NotImplementedError(f"Parser for {beacon\_type} not implemented") if **name** == "**main**": if len(sys.argv) \< 2: print("Usage: python extractor.py \<path\_to\_config\_file\>") sys.exit(1) passed\_arg = sys.argv\[1\] try: sample = procmempe.from\_file(passed\_arg) rdata\_section = sample.pe.section(".rdata") config\_structure = sample.readp(rdata\_section.PointerToRawData, rdata\_section.SizeOfRawData) config\_size = int32(config\_structure) encrypted\_config = config\_structure\[4:config\_size+4\] rc4\_key = config\_structure\[config\_size + 4 : config\_size + 4 + 16\] except Exception as e: print(f"Error reading file or extracting configuration: {e}") print("Using provided encrypted configuration bytes directly.") try: config\_structure = bytes.fromhex(passed\_arg) config\_size = int32(config\_structure) encrypted\_config = config\_structure\[4:config\_size+4\] rc4\_key = config\_structure\[config\_size + 4 : config\_size + 4 + 16\] except Exception as e: print(f"Failed to process provided argument as configuration bytes: {e}") sys.exit(1) try: decrypted\_config = rc4(rc4\_key, encrypted\_config) print(f"Decrypted configuration size: {len(decrypted\_config)} bytes") print(f"Decrypted configuration content: {decrypted\_config}") print("Decrypted configuration (hex): %s", enhex(decrypted\_config)) config = parse\_config(decrypted\_config) print("Parsed configuration:") print(json.dumps(config, indent=2)) except Exception as e: print(f"Error parsing configuration: {e}") |

## Pour aller plus loin

* [AdaptixC2](https://github.com/Adaptix-Framework/AdaptixC2) -- GitHub
* [Ransomware Fog : Un ensemble d'outils inhabituels utilisés lors d'une récente attaque](https://www.security.com/threat-intelligence/fog-ransomware-attack) -- Symantec
* [Rapport mondial 2025 de Unit 42 sur la réponse à incident : édition spéciale sur l'ingénierie sociale](https://unit42.paloaltonetworks.com/fr/2025-unit-42-global-incident-response-report-social-engineering-edition/) -- Unit 42
* [Qu'est-ce que l'hameçonnage ?](https://www.paloaltonetworks.com/cyberpedia/what-is-phishing) -- Palo Alto Networks
* [Qu'est-ce que l'outil RMM ?](https://www.manageengine.com/remote-monitoring-management/what-is-rmm.html) -- ManageEngine
* [Qu'est-ce qu'une attaque par malware sans fichier ?](https://www.paloaltonetworks.com/cyberpedia/what-are-fileless-malware-attacks) -- Palo Alto Networks
* [Techniques de détournement de fichiers DLL](https://unit42.paloaltonetworks.com/dll-hijacking-techniques/) -- Unit 42
* [L'Unit 42 développe un framework d'attaque d'IA agentique](https://www.paloaltonetworks.com/blog/2025/05/unit-42-develops-agentic-ai-attack-framework/) -- Palo Alto Networks
* [Méthode Marshal.GetDelegateForFunctionPointer](https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.getdelegateforfunctionpointer?view=net-8.0) -- Microsoft Docs
* [Invoke-RestMethod (PowerShell)](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod?view=powershell-7.5) -- Microsoft Docs
* [Fonction VirtualProtect](https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect) -- Microsoft Docs
* [Constantes de protection de la mémoire](https://learn.microsoft.com/en-us/windows/win32/memory/memory-protection-constants) -- Microsoft Docs
* [MITRE ATT\&CK T1547.001](https://attack.mitre.org/techniques/T1547/001/) -- MITRE
  Retour en haut de page

### Étiquettes

* [C2](https://unit42.paloaltonetworks.com/fr/tag/c2-fr/ "C2")
* [DLL](https://unit42.paloaltonetworks.com/fr/tag/dll-fr/ "DLL")
* [Open source](https://unit42.paloaltonetworks.com/fr/tag/open-source-fr/ "open source")
* [Pentest tool](https://unit42.paloaltonetworks.com/fr/tag/pentest-tool-fr/ "pentest tool")
* [Phishing](https://unit42.paloaltonetworks.com/fr/tag/phishing-fr/ "phishing")  
  [Threat Research Center](https://unit42.paloaltonetworks.com/fr/ "Threat Research") [SuivantQuand la réutilisation des espaces de noms met en péril l'intégrité de la supply chain de l'IA](https://unit42.paloaltonetworks.com/fr/model-namespace-reuse/ "Quand la réutilisation des espaces de noms met en péril l’intégrité de la supply chain de l’IA")

### SOMMAIRE

* 

### Sur le même thème

* [Bulletin sécurité : Hausse du cyber-risque lié à l'Iran en 2026 (mis à jour le 17 avril)](https://unit42.paloaltonetworks.com/fr/iranian-cyberattacks-2026/ "article - table of contents")
* [Briefing sécurité : un stratagème de recrutement usurpe l'identité de l'équipe d'acquisition des talents de Palo Alto Networks](https://unit42.paloaltonetworks.com/fr/phishing-attackers-pose-as-panw-recruiters/ "article - table of contents")
* [Les Campagnes de l'ombre : Révélation d'un espionnage mondial](https://unit42.paloaltonetworks.com/fr/shadow-campaigns-uncovering-global-espionage/ "article - table of contents")

## Associé Malware Ressources

![Pictorial representation of Iran cyber attacks. Close-up of a person wearing glasses, with computer code reflected in the lenses.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/03/12_Security-Technology_Category_1920x900-786x368.jpg)  
[Menaces de grande envergure](https://unit42.paloaltonetworks.com/fr/category/top-cyberthreats-fr/) 17 avril 2026 [#### Bulletin sécurité : Hausse du cyber-risque lié à l'Iran en 2026 (mis à jour le 17 avril)](https://unit42.paloaltonetworks.com/fr/iranian-cyberattacks-2026/)

* [APK](https://unit42.paloaltonetworks.com/fr/tag/apk/ "APK")

* [DDoS attacks](https://unit42.paloaltonetworks.com/fr/tag/ddos-attacks-fr/ "DDoS attacks")

* [GenAI](https://unit42.paloaltonetworks.com/fr/tag/genai-fr/ "GenAI")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/iranian-cyberattacks-2026/ "Bulletin sécurité : Hausse du cyber-risque lié à l’Iran en 2026 (mis à jour le 17 avril)")  
  ![Pictorial representation of the supply chain attack compromising Axios. A giant eye made of glowing binary code.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/04/02_Security-Technology_Category_1920x900-786x368.jpg)  
  [Menaces de grande envergure](https://unit42.paloaltonetworks.com/fr/category/top-cyberthreats-fr/) 1 avril 2026 [#### Briefing sécurité : répercussions majeures de l'attaque contre la supply chain d'Axios](https://unit42.paloaltonetworks.com/fr/axios-supply-chain-attack/)

* [API attacks](https://unit42.paloaltonetworks.com/fr/tag/api-attacks-fr/ "API attacks")

* [JavaScript](https://unit42.paloaltonetworks.com/fr/tag/javascript-fr/ "JavaScript")

* [PowerShell](https://unit42.paloaltonetworks.com/fr/tag/powershell-fr/ "PowerShell")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/axios-supply-chain-attack/ "Briefing sécurité : répercussions majeures de l’attaque contre la supply chain d’Axios")  
  ![Pictorial representation of TeamPCP. Glowing code on a screen where several word such as Crime, Hackers, and Security are highlighted in a contrasting color.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/03/03_Cybercrime_Category_1920x900-786x368.jpg)  
  [Menaces de grande envergure](https://unit42.paloaltonetworks.com/fr/category/top-cyberthreats-fr/) 31 mars 2026 [#### Quand les remparts deviennent des armes : l'attaque multi-étapes de TeamPCP contre l'infrastructure de sécurité](https://unit42.paloaltonetworks.com/fr/teampcp-supply-chain-attacks/)

* [CVE-2025-55182](https://unit42.paloaltonetworks.com/fr/tag/cve-2025-55182-fr/ "CVE-2025-55182")

* [GitHub](https://unit42.paloaltonetworks.com/fr/tag/github-fr/ "GitHub")

* [Infostealer](https://unit42.paloaltonetworks.com/fr/tag/infostealer-fr/ "Infostealer")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/teampcp-supply-chain-attacks/ "Quand les remparts deviennent des armes : l’attaque multi-étapes de TeamPCP contre l’infrastructure de sécurité")  
  ![Pictorial representation of phishing campaign. A blurred image focusing on a person typing on a laptop with lines of code visible on the screen, illuminated in blue and red lights, suggestive of intense coding or cyber activities.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/03/06_Malware_Category_1920x900-3-786x368.jpg)  
  [Recherche sur les menaces](https://unit42.paloaltonetworks.com/fr/category/threat-research-fr/) 24 mars 2026 [#### Briefing sécurité : un stratagème de recrutement usurpe l'identité de l'équipe d'acquisition des talents de Palo Alto Networks](https://unit42.paloaltonetworks.com/fr/phishing-attackers-pose-as-panw-recruiters/)

* [Email scam](https://unit42.paloaltonetworks.com/fr/tag/email-scam/ "email scam")

* [Phishing](https://unit42.paloaltonetworks.com/fr/tag/phishing-fr/ "phishing")

* [Recruiter](https://unit42.paloaltonetworks.com/fr/tag/recruiter/ "recruiter")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/phishing-attackers-pose-as-panw-recruiters/ "Briefing sécurité : un stratagème de recrutement usurpe l’identité de l’équipe d’acquisition des talents de Palo Alto Networks")  
  ![Pictorial representation of Notepad++ supply chain compromise. A digital rendering of Earth from space, focusing on North and South America. The continents are illuminated in blue, with red lines and dots indicating data connections across various locations. Dark background highlights the vibrant network representation.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/02/11_Security-Technology_Category_1920x900-786x368.jpg)  
  [Menaces de grande envergure](https://unit42.paloaltonetworks.com/fr/category/top-cyberthreats-fr/) 11 février 2026 [#### Des acteurs étatiques exploitent la chaîne d'approvisionnement de Notepad++](https://unit42.paloaltonetworks.com/fr/notepad-infrastructure-compromise/)

* [Backdoor](https://unit42.paloaltonetworks.com/fr/tag/backdoor/ "backdoor")

* [Cobalt Strike](https://unit42.paloaltonetworks.com/fr/tag/cobalt-strike-fr/ "Cobalt Strike")

* [DLL Sideloading](https://unit42.paloaltonetworks.com/fr/tag/dll-sideloading/ "DLL Sideloading")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/notepad-infrastructure-compromise/ "Des acteurs étatiques exploitent la chaîne d'approvisionnement de Notepad++")  
  ![Pictorial representation of the shadow campaigns. Digital graphic showing a networked globe with various data points and connectivity lines, symbolizing global digital communication and information technology.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/02/03_Nation-State-cyberattacks_1920x900-786x368.jpg)  
  [Groupes cybercriminels](https://unit42.paloaltonetworks.com/fr/category/threat-actor-groups-fr/) 5 février 2026 [#### Les Campagnes de l'ombre : Révélation d'un espionnage mondial](https://unit42.paloaltonetworks.com/fr/shadow-campaigns-uncovering-global-espionage/)

* [Espionage](https://unit42.paloaltonetworks.com/fr/tag/espionage-fr/ "Espionage")

* [Government](https://unit42.paloaltonetworks.com/fr/tag/government/ "Government")

* [Phishing](https://unit42.paloaltonetworks.com/fr/tag/phishing-fr/ "phishing")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/shadow-campaigns-uncovering-global-espionage/ "Les Campagnes de l'ombre : Révélation d'un espionnage mondial")  
  ![Pictorial representation of runtime assembly attacks. Digital artwork of a glowing, futuristic shield disintegrating into small particles, set against a dark blue, bokeh-effect background.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/09_Business_email_compromise_Category_1920x900-786x368.jpg)  
  [Recherche sur les menaces](https://unit42.paloaltonetworks.com/fr/category/threat-research-fr/) 22 janvier 2026 [#### La prochaine évolution des attaques par assemblage à l'exécution : exploiter les LLM pour générer des scripts JavaScript d'hameçonnage en temps réel](https://unit42.paloaltonetworks.com/fr/real-time-malicious-javascript-through-llms/)

* [API](https://unit42.paloaltonetworks.com/fr/tag/api/ "API")

* [DeepSeek](https://unit42.paloaltonetworks.com/fr/tag/deepseek/ "DeepSeek")

* [Google](https://unit42.paloaltonetworks.com/fr/tag/google-fr/ "Google")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/real-time-malicious-javascript-through-llms/ "La prochaine évolution des attaques par assemblage à l’exécution : exploiter les LLM pour générer des scripts JavaScript d’hameçonnage en temps réel")  
  ![Pictorial representation of SLOW#TEMPEST campaign. Digital artwork depicting a malware alert symbol on a computer screen, with background of blurred programming code in blue and red colors.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/07/07_Malware_Category_1920x900-786x368.jpg)  
  [Recherche sur les menaces](https://unit42.paloaltonetworks.com/fr/category/threat-research-fr/) 2 janvier 2026 [#### Le VVS Discord Stealer utilise Pyarmor pour l'offuscation et l'évasion de détection](https://unit42.paloaltonetworks.com/fr/vvs-stealer/)

* [Discord](https://unit42.paloaltonetworks.com/fr/tag/discord/ "Discord")

* [Infostealer](https://unit42.paloaltonetworks.com/fr/tag/infostealer-fr/ "Infostealer")

* [Python](https://unit42.paloaltonetworks.com/fr/tag/python-fr/ "Python")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/vvs-stealer/ "Le VVS Discord Stealer utilise Pyarmor pour l'offuscation et l'évasion de détection")  
  ![Pictorial representation of APT Ashen Lepus. The silhouette of a hare and the Lepus constellation inside an orange abstract planet. Abstract, stylized cosmic setting with vibrant blue and purple shapes, representing space and distant planetary bodies.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/12/10-01-Ashen-Lepus-1920x900-1-786x368.png)  
  [Groupes cybercriminels](https://unit42.paloaltonetworks.com/fr/category/threat-actor-groups-fr/) 11 décembre 2025 [#### Ashen Lepus, un groupe affilié au Hamas, cible des entités diplomatiques du Moyen-Orient avec AshTag, sa nouvelle suite de malwares](https://unit42.paloaltonetworks.com/fr/hamas-affiliate-ashen-lepus-uses-new-malware-suite-ashtag/)

* [Ashen Lepus](https://unit42.paloaltonetworks.com/fr/tag/ashen-lepus-fr/ "Ashen Lepus")

* [Espionage](https://unit42.paloaltonetworks.com/fr/tag/espionage-fr/ "Espionage")

* [WIRTE](https://unit42.paloaltonetworks.com/fr/tag/wirte-fr/ "WIRTE")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/hamas-affiliate-ashen-lepus-uses-new-malware-suite-ashtag/ "Ashen Lepus, un groupe affilié au Hamas, cible des entités diplomatiques du Moyen-Orient avec AshTag, sa nouvelle suite de malwares")  
  ![Pictorial representation of the npm packages supply chain attack. A blurred image focusing on a person typing on a laptop with lines of code visible on the screen, illuminated in blue and red lights, suggestive of intense coding or cyber activities.](https://unit42.paloaltonetworks.com/wp-content/uploads/2025/09/06_Malware_Category_1920x900-786x368.jpg)  
  [Menaces de grande envergure](https://unit42.paloaltonetworks.com/fr/category/top-cyberthreats-fr/) 25 novembre 2025 [#### Attaque de la supply chain : le ver \<\< Shai-Hulud \>\> frappe l'écosystème npm (Mis à jour le 26 novembre)](https://unit42.paloaltonetworks.com/fr/npm-supply-chain-attack/)

* [Cloud Security](https://unit42.paloaltonetworks.com/fr/tag/cloud-security-fr/ "Cloud Security")

* [Credential Harvesting](https://unit42.paloaltonetworks.com/fr/tag/credential-harvesting-fr/ "Credential Harvesting")

* [JavaScript](https://unit42.paloaltonetworks.com/fr/tag/javascript-fr/ "JavaScript")  
  [Lire l'article ![Right arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-right-arrow-withtail.svg)](https://unit42.paloaltonetworks.com/fr/npm-supply-chain-attack/ "Attaque de la supply chain : le ver « Shai-Hulud » frappe l’écosystème npm (Mis à jour le 26 novembre)")

* ![Slider arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/slider-arrow-left.svg)

* ![Slider arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/slider-arrow-left.svg)  
  ![Close button](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/close-modal.svg) ![Enlarged Image]()  
  ![Newsletter](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/03/unit42-footer-subscribe-desktop.png)  
  ![UNIT 42 Small Logo](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/palo-alto-logo-small.svg) Abonnez-vous aux infos d'Unit 42

## Gardez un coup d'avance sur les menaces pour évoluer en toute sérénité. Contactez-nous

Your Email

Abonnez-vous aux infos par e-mail sur les travaux de recherche Unit 42.  
L'envoi de ce formulaire implique l'acceptation de nos[Conditions d'utilisation](https://www.paloaltonetworks.com/legal-notices/terms-of-use) et de notre [Politique de confidentialité.](https://www.paloaltonetworks.com/legal-notices/privacy)

Ce site est protégé par reCAPTCHA et est soumis à la [Politique de confidentialité](https://policies.google.com/privacy) et aux [Conditions générales](https://policies.google.com/terms) de Google.

Invalid captcha!
Je m'abonne ![Right Arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/right-arrow.svg) ![loader](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-loader.svg)  
{#footer} Produits et services

* [Plateforme de sécurité du réseau pilotée par IA](https://www.paloaltonetworks.fr/network-security)

* [Sécuriser l'IA à la conception](https://www.paloaltonetworks.fr/precision-ai-security/secure-ai-by-design)

* [Prisma AIRS](https://www.paloaltonetworks.fr/prisma/prisma-ai-runtime-security)

* [AI Access Security](https://www.paloaltonetworks.fr/sase/ai-access-security)

* [Services de sécurité cloud (CDSS)](https://www.paloaltonetworks.fr/network-security/security-subscriptions)

* [Advanced Threat Prevention](https://www.paloaltonetworks.fr/network-security/advanced-threat-prevention)

* [Advanced URL Filtering](https://www.paloaltonetworks.fr/network-security/advanced-url-filtering)

* [Advanced WildFire](https://www.paloaltonetworks.fr/network-security/advanced-wildfire)

* [Advanced DNS Security](https://www.paloaltonetworks.fr/network-security/advanced-dns-security)

* [Enterprise Data Loss Prevention](https://www.paloaltonetworks.fr/sase/enterprise-data-loss-prevention)

* [Sécurité IoT d'entreprise](https://www.paloaltonetworks.fr/network-security/enterprise-device-security)

* [Sécurité IoT médical](https://www.paloaltonetworks.fr/content/pan/fr_FR/network-security/medical-iot-security)

* [Industrial OT Security](https://www.paloaltonetworks.fr/content/pan/fr_FR/network-security/industrial-ot-security)

* [Sécurité SaaS](https://www.paloaltonetworks.fr/sase/saas-security)

* [Pare-feu nouvelle génération](https://www.paloaltonetworks.fr/network-security/next-generation-firewall)

* [Pare-feu matériels](https://www.paloaltonetworks.fr/network-security/hardware-firewall-innovations)

* [Logiciels pare-feu](https://www.paloaltonetworks.fr/network-security/software-firewalls)

* [Strata Cloud Manager](https://www.paloaltonetworks.fr/network-security/strata-cloud-manager)

* [SD-WAN pour NGFW](https://www.paloaltonetworks.fr/network-security/sd-wan-subscription)

* [PAN-OS](https://www.paloaltonetworks.fr/network-security/pan-os)

* [Panorama](https://www.paloaltonetworks.fr/network-security/panorama)

* [Secure Access Service Edge](https://www.paloaltonetworks.fr/sase)

* [Prisma SASE](https://www.paloaltonetworks.fr/sase)

* [Accélération des applications](https://www.paloaltonetworks.fr/sase/app-acceleration)

* [Autonomous Digital Experience Management (ADEM)](https://www.paloaltonetworks.fr/sase/adem)

* [DLP d'entreprise](https://www.paloaltonetworks.fr/sase/enterprise-data-loss-prevention)

* [Prisma Access](https://www.paloaltonetworks.fr/sase/access)

* [Prisma Browser](https://www.paloaltonetworks.fr/sase/prisma-browser)

* [Prisma SD-WAN](https://www.paloaltonetworks.fr/sase/sd-wan)

* [Isolation de navigateur à distance (RBI)](https://www.paloaltonetworks.fr/sase/remote-browser-isolation)

* [Sécurité SaaS](https://www.paloaltonetworks.fr/sase/saas-security)

* [Plateforme SecOps pilotée par IA](https://www.paloaltonetworks.fr/cortex)

* [Sécurité cloud](https://www.paloaltonetworks.fr/cortex/cloud)

* [Cortex Cloud](https://www.paloaltonetworks.fr/cortex/cortex-xsoar)

* [Sécurité des applications](https://www.paloaltonetworks.fr/cortex/cloud/application-security)

* [Posture de sécurité dans le cloud](https://www.paloaltonetworks.fr/cortex/cloud/cloud-posture-security)

* [Sécurité du Runtime dans le cloud](https://www.paloaltonetworks.fr/cortex/cloud/runtime-security)

* [Prisma Cloud](https://www.paloaltonetworks.fr/prisma/cloud)

* [SOC piloté par IA](https://www.paloaltonetworks.fr/cortex)

* [Cortex XSIAM](https://www.paloaltonetworks.fr/cortex/cortex-xsiam)

* [Cortex XDR](https://www.paloaltonetworks.fr/cortex/cortex-xdr)

* [Cortex XSOAR](https://www.paloaltonetworks.fr/cortex/cortex-xsoar)

* [Cortex Xpanse](https://www.paloaltonetworks.fr/cortex/cortex-xpanse)

* [Services managés détection et réponse Unit 42](https://www.paloaltonetworks.fr/cortex/managed-detection-and-response)

* [XSIAM managé](https://www.paloaltonetworks.fr/cortex/managed-xsiam)

* [Sécurité des identités nouvelle génération](https://www.paloaltonetworks.fr/idira)

* [Gestion des accès privilégiés (PAM)](https://www.paloaltonetworks.fr/idira/human/privileged-access-management)

* [Gestion des identités et des accès (IAM)](https://www.paloaltonetworks.fr/idira/human/identity-and-access-management)

* [Endpoint Privilege Manager](https://www.paloaltonetworks.fr/idira/human/endpoint-privilege-manager)

* [Gouvernance des identités](https://www.paloaltonetworks.fr/idira/human/identity-governance)

* [Workforce Password Management](https://www.paloaltonetworks.fr/idira/human/workforce-password-management)

* [Identités agentiques](https://www.paloaltonetworks.fr/idira/agentic)

* [Gestion des secrets](https://www.paloaltonetworks.fr/idira/machine/secrets-management)

* [Gouvernance unifiée des secrets](https://www.paloaltonetworks.fr/idira/machine/unified-secrets-governance)

* [Déploiement d'identifiants applicatifs](https://www.paloaltonetworks.fr/idira/machine/application-credentials-delivery)

* [Accès privilégiés des prestataires](https://www.paloaltonetworks.fr/idira/human/vendor-privileged-access)

* [Services de Threat Intelligence et de réponse à incident](https://www.paloaltonetworks.fr/unit42)

* [Évaluations proactives](https://www.paloaltonetworks.fr/unit42/assess)

* [Réponse à incident](https://www.paloaltonetworks.fr/unit42/respond)

* [Transformez votre stratégie de sécurité](https://www.paloaltonetworks.fr/unit42/transform)

* [Découvrez la Threat Intelligence Entreprise Notre entreprise Carrières Nous contacter Responsabilité d'entreprise Clients Relations investisseurs Présence dans le monde](https://www.paloaltonetworks.fr/unit42/threat-intelligence-partners)  
  Entreprise

* [Notre entreprise](https://www.paloaltonetworks.fr/about-us)

* [Carrières](https://jobs.paloaltonetworks.com/en/)

* [Nous contacter](https://www.paloaltonetworks.fr/company/contact)

* [Responsabilité d'entreprise](https://www.paloaltonetworks.com/about-us/corporate-responsibility)

* [Clients](https://www.paloaltonetworks.fr/customers)

* [Relations investisseurs](https://investors.paloaltonetworks.com/)

* [Présence dans le monde](https://www.paloaltonetworks.com/about-us/locations)

* [Presse](https://www.paloaltonetworks.fr/company/newsroom)  
  Pages les plus visitées

* [Article](https://www.paloaltonetworks.com/blog/?lang=fr)

* [Communautés](https://www.paloaltonetworks.com/communities)

* [Bibliothèque de contenu](https://www.paloaltonetworks.fr/resources)

* [Cyberpedia](https://www.paloaltonetworks.fr/cyberpedia)

* [Évènements](https://events.paloaltonetworks.com/)

* [Préférences de communication](https://start.paloaltonetworks.com/preference-center)

* [Produits de A à Z](https://www.paloaltonetworks.fr/products/products-a-z)

* [Certifications produits](https://www.paloaltonetworks.com/legal-notices/trust-center/compliance)

* [Signaler une vulnérabilité](https://www.paloaltonetworks.com/security-disclosure)

* [Plan du site](https://www.paloaltonetworks.fr/sitemap)

* [Documentation technique](https://docs.paloaltonetworks.com/)

* [Unit 42](https://unit42.paloaltonetworks.com/)

* [Ne pas autoriser la vente ou le partage de mes données personnelles](https://panwedd.exterro.net/portal/dsar.htm?target=panwedd)
  ![Palo Alto Networks Logo](https://www.paloaltonetworks.fr/etc/clientlibs/clean/imgs/pan-logo-dark.svg)

* [Politique de confidentialité](https://www.paloaltonetworks.com/legal-notices/privacy)

* [Trust Center](https://www.paloaltonetworks.com/legal-notices/trust-center)

* [Conditions générales d'utilisation](https://www.paloaltonetworks.com/legal-notices/terms-of-use)

* [Documents](https://www.paloaltonetworks.com/legal)

Copyright © 2026 Palo Alto Networks. Tous droits réservés

* [![](https://www.paloaltonetworks.fr/etc/clientlibs/clean/imgs/social/youtube-black.svg)](https://www.youtube.com/user/paloaltonetworks)
* [![](https://www.paloaltonetworks.fr/etc/clientlibs/clean/imgs/social/twitter-x-black.svg)](https://twitter.com/PaloAltoNtwks)
* [![](https://www.paloaltonetworks.fr/etc/clientlibs/clean/imgs/social/facebook-black.svg)](https://www.facebook.com/PaloAltoNetworks/)
* [![](https://www.paloaltonetworks.fr/etc/clientlibs/clean/imgs/social/linkedin-black.svg)](https://www.linkedin.com/company/palo-alto-networks)
* [![](https://www.paloaltonetworks.fr/content/dam/pan/en_US/images/icons/podcast.svg)](https://unit42.paloaltonetworks.com/unit-42-threat-vector-podcast/)
* FR  
  Select your language  
  ![Play](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-play-icon.svg) ![Pause](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-pause-icon1.svg) ![Minimize](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-minimize.svg) ![Close button](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/close-modal.svg)

### Default Heading

Read the article ![Right Arrow](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/right-arrow.svg)  
Seekbar

![Play](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-play-icon.svg) ![Pause](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/player-pause-icon1.svg)  
![Volume](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-volume.svg)  
Volume
![Minimize](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-minimize.svg)
