[![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/vvs-stealer/)
* [Spanish (LATAM)](https://unit42.paloaltonetworks.com/es-la/vvs-stealer/)
* [French](https://unit42.paloaltonetworks.com/fr/vvs-stealer/)
* [Japanese](https://unit42.paloaltonetworks.com/ja/vvs-stealer/)
* [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/)

# Le VVS Discord Stealer utilise Pyarmor pour l'offuscation et l'évasion de détection

![Clock Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-clock.svg) 12 minutes de lecture  
Related Products  
[Advanced DNS Security](https://unit42.paloaltonetworks.com/fr/product-category/advanced-dns-security-fr/ "Advanced DNS Security")[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")[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:
  
  * [Pranay Kumar Chhaparwal](https://unit42.paloaltonetworks.com/fr/author/pranay-kumar-chhaparwal/)
  * [Lee Wei Yeong](https://unit42.paloaltonetworks.com/fr/author/lee-wei-yeong/)

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

* ![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:
  
  * [Discord](https://unit42.paloaltonetworks.com/fr/tag/discord/)
  * [Infostealer](https://unit42.paloaltonetworks.com/fr/tag/infostealer-fr/)
  * [Python](https://unit42.paloaltonetworks.com/fr/tag/python-fr/)
  * [Telegram](https://unit42.paloaltonetworks.com/fr/tag/telegram-fr/)

* [![Download Icon](https://unit42.paloaltonetworks.com/wp-content/themes/unit42-v6/dist/images/icons/icon-download.svg)](https://unit42.paloaltonetworks.com/fr/vvs-stealer/?pdf=download&lg=fr&_wpnonce=40dbae5d0f "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/vvs-stealer/?pdf=print&lg=fr&_wpnonce=40dbae5d0f "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=Le%20VVS%20Discord%20Stealer%20utilise%20Pyarmor%20pour%20l'offuscation%20et%20l'évasion%20de%20détection&body=Check%20out%20this%20article%20https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fvvs-stealer%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%2Fvvs-stealer%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%2Fvvs-stealer%2F&title=Le%20VVS%20Discord%20Stealer%20utilise%20Pyarmor%20pour%20l'offuscation%20et%20l'évasion%20de%20détection "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%2Fvvs-stealer%2F&text=Le%20VVS%20Discord%20Stealer%20utilise%20Pyarmor%20pour%20l'offuscation%20et%20l'évasion%20de%20détection "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%2Fvvs-stealer%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=Le%20VVS%20Discord%20Stealer%20utilise%20Pyarmor%20pour%20l'offuscation%20et%20l'évasion%20de%20détection%20https%3A%2F%2Funit42.paloaltonetworks.com%2Ffr%2Fvvs-stealer%2F "Share in Mastodon")

## Résumé exécutif

Cet article détaille notre analyse technique du VVS stealer, également stylisé VVS $tealer, y compris l'utilisation de l'offuscation et de l'évasion de détection par ses distributeurs.

Ce stealer est écrit en Python et cible les utilisateurs de Discord, exfiltrant des informations sensibles telles que les identifiants et les jetons (tokens) stockés dans les comptes Discord. Ce stealer était autrefois en développement actif et commercialisé sur Telegram dès avril 2025.

Le code du VVS stealer est offusqué par[Pyarmor](https://github.com/dashingsoft/pyarmor). Cet outil est utilisé pour offusquer les scripts Python afin d'entraver l'analyse statique et la détection basée sur les signatures. Pyarmor peut être utilisé à des fins légitimes, mais aussi exploité pour construire des logiciels malveillants furtifs.

Les auteurs de logiciels malveillants exploitent de plus en plus des techniques d'offuscation avancées pour échapper à la détection par les outils de cybersécurité, rendant leurs logiciels malveillants plus difficiles à analyser et à rétro-ingénierier. Cet article montre comment nous avons désoffusqué des échantillons du VVS stealer pour mieux comprendre ses opérations.

Du fait de la facilité d'utilisation de Python pour les auteurs de maliciels et de l'offuscation complexe utilisée par cette menace, le résultat est une famille de logiciels malveillants très efficace et furtive.

Les clients de Palo Alto Networks sont mieux protégés grâce aux produits et services suivants :

* [Advanced WildFire](https://docs.paloaltonetworks.com/wildfire)
* [Advanced URL Filtering](https://docs.paloaltonetworks.com/advanced-url-filtering/administration) et[Advanced DNS Security](https://docs.paloaltonetworks.com/dns-security)
* [Cortex XDR](https://docs-cortex.paloaltonetworks.com/p/XDR) et[XSIAM](https://docs-cortex.paloaltonetworks.com/p/XSIAM) préviennent les menaces décrites dans cet article en employant le[Malware Prevention Engine](https://docs-cortex.paloaltonetworks.com/r/Cortex-XDR/Cortex-XDR-4.x-Documentation/Malware-protection)

Si vous pensez avoir été compromis ou si vous avez une urgence, contactez l'[équipe de réponse aux incidents de Unit 42](https://start.paloaltonetworks.com/contact-unit42.html).

|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ****Sujets Unit 42 liés**** | [**Infostealer**](https://unit42.paloaltonetworks.com/fr/tag/infostealer-fr/)**,** [**Anti-analysis**](https://unit42.paloaltonetworks.com/tag/anti-analysis/)**, Discord, Pyarmor** |

## Introduction

Discord est une plateforme de messagerie sociale et de communication devenue une cible populaire pour les logiciels malveillants, comme le VVS stealer. Le VVS stealer est conçu pour voler les informations Discord et les données de navigateur d'une victime.

La Figure 1 montre les capacités annoncées du VVS stealer, notamment :

* Le vol de données Discord (jetons et informations de compte)
* L'interception de sessions Discord actives via injection
* L'extraction de données de navigateurs web (cookies, mots de passe, historique de navigation et détails de remplissage automatique)

![Collage de captures d'écran d'un ordinateur affichant des informations sur « VS Stealer sur Telegram », décrivant son utilisation comme outil de piratage, avec la liste des fonctionnalités et le détail des tarifs. Un lien de contact Telegram est également visible pour toute communication ultérieure.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-714260-170172-1.png) Figure 1. Publicité pour le VVS stealer, centrée sur Telegram.

Le stealer assure également sa persistance en s'installant automatiquement au démarrage. Il opère furtivement en affichant de faux messages d'erreur et en capturant des captures d'écran. Pour une enquête plus approfondie sur l'opération, veuillez vous référer à l'article de DeepCode,[Investigating VVS $tealer: A Python-Based Discord Malware](https://www.google.com/search?q=https://decodecybercrime.com/investigating-vvs-tealer-a-python-based-discord-malware).

## Analyse technique

Cette section analyse un échantillon du maliciel VVS stealer protégé par Pyarmor avec le hachage SHA-256 suivant :

* c7e6591e5e021daa30f949a6f6e0699ef2935d2d7c06ea006e3b201c52666e07

La Figure 2 présente un diagramme récapitulatif illustrant le flux de travail complet de l'analyse de l'échantillon.
![Organigramme montrant le processus d'extraction du bytecode Python d'un exécutable PyInstaller, sa décompilation en code source Python et le déchiffrement du bytecode Pyarmor en ELF.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-719432-170172-2.png) Figure 2. Vue d'ensemble du flux de travail pour l'analyse de l'échantillon du maliciel VVS stealer.

### **Première étape : Extraction** depuis**le binaire PyInstaller**

L'échantillon que nous avons analysé est distribué sous forme de paquet[PyInstaller](https://pyinstaller.org). PyInstaller est un outil qui regroupe une application Python et ses dépendances dans un paquet pour permettre l'exécution d'une application empaquetée sans installer de modules supplémentaires.

Toute installation standard de PyInstaller est livrée avec l'utilitaire intégré[pyi-archive\_viewer](https://www.google.com/search?q=https://pyinstaller.org/en/stable/advanced-topics.html%23using-pyi-archive-viewer). Nous avons utilisé cet utilitaire pour extraire et inspecter les fichiers suivants de notre échantillon :

* Le fichier bytecode Python nommé vvs
* Le fichier de bibliothèque de liens dynamiques (DLL) d'exécution Pyarmor nommé pyarmor\_runtime.pyd, situé dans le sous-dossier pyarmor\_runtime\_007444
  * Le fichier **init**.py accompagnant ce même sous-dossier, qui inclut les informations suivantes :
    * Version de Pyarmor : 9.1.4 ([Pro](https://www.google.com/search?q=https://pyarmor.readthedocs.io/en/latest/licenses.html%23license-types))
    * Numéro de licence unique : 007444
    * Horodatage : 2025-04-27T11:04:52.523525
    * Nom du produit : vvs
* Fichier DLL Python 3.11 nommé python311.dll
  * Les informations de version du fichier indiquent que la version de Python est la 3.11.5

PyInstaller stocke le bytecode Python (listé en 1.) sous sa forme brute. Cette forme brute fait référence à la séquence de bytecode commençant par la valeur e3. La valeur e3 est une combinaison à la fois du drapeau (flag) et du type, combinés via la constante FLAG\_REF.

Le type représenté par la valeur e3 est calculé comme suit : type = e3 \& ~FLAG\_REF. Cela signifie que la valeur e3 est en fait le type 0x63 (la lettre c), également connu sous le nom de constante d'énumération TYPE\_CODE. L'implémentation complète de cette dérivation peut être trouvée dans la[base de code CPython 3.11](https://www.google.com/search?q=https://github.com/python/cpython/blob/3.11/Python/marshal.c).

La Figure 3 ci-dessous montre que cet objet code sérialisé par le module [marshal](https://docs.python.org/3/library/marshal.html) est nu, manquant d'un en-tête de 16 octets accompagnateur (marqué en bleu). Pour fournir suffisamment d'éléments Python pour que le décompilateur ne rejette pas le fichier, nous devons restaurer au moins l'une des valeurs d'en-tête (le nombre magique de Python 3.11.5 au format 4 octets, little-endian) avant la décompilation, car le décompilateur Python attend un fichier bytecode Python valide (.pyc) comme entrée.
![Visualisation de données hexadécimales montrant des rangées de codes hexadécimaux avec certaines valeurs mises en évidence.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-721294-170172-3.jpeg) Figure 3. Fichier bytecode Python (.pyc) nommé vvs, avec son en-tête restauré.

Nous commençons notre analyse en décompilant le fichier bytecode Python (.pyc) nommé vvs pour récupérer son code source Python équivalent (.py).

### Deuxième étape : Décompilation vers le code source Python

[Pycdc](https://github.com/zrax/pycdc) est un décompilateur de bytecode Python écrit en C++. Il fait partie du projet Decompyle++. Il prend en charge la décompilation du bytecode Python 3.11 \<\< pour revenir à un code source Python valide et lisible par l'humain. \>\> (Source :[GitHub](https://github.com/zrax/pycdc/blob/master/README.markdown).)[PyLingual](https://pylingual.io) est un autre décompilateur de bytecode Python.

Après avoir cloné le dépôt de code et compilé la base de code, l'exécutable généré peut être invoqué comme suit pour décompiler le bytecode Python en code source Python via Pycdc :

* pycdc.exe -c -v "3.11.5" "vvs.pyc" \> "vvs.py"

Cela produira le code source Python décompilé montré dans la Figure 4.
![Capture d'écran d'une ligne de code Python impliquant une instruction d'importation depuis une bibliothèque nommée « pyarmor », avec du texte supplémentaire masqué.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-723296-170172-4.jpeg) Figure 4. Code source Python vvs décompilé.

Nous analysons ensuite le dernier argument de la fonction, qui peut être extrait via l'[ast.NodeVisitor](https://www.google.com/search?q=https://docs.python.org/3/library/ast.html%23ast.NodeVisitor) de Python 3.

### **Troisième étape : Démêler l'offuscation** Pyarmor

La charge utile (payload) commence par l'en-tête Pyarmor montré dans la Figure 5.
![Une capture d'écran affichant une section de code hexadécimal avec des caractères ASCII sur le côté droit, incluant une chaîne visible « PY00744... ».](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-725265-170172-5.jpeg) Figure 5. En-tête Pyarmor, avec des champs d'intérêt particuliers mis en évidence.

La cryptographie est effectuée tout du long en utilisant l'algorithme Advanced Encryption Standard (AES) avec une clé de 128 bits, opérant en mode Compteur (CTR) avec une valeur initiale de deux (c'est-à-dire, AES-128-CTR). Le Tableau 1 montre la décomposition des champs.

|-------------------------|-------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Décalages (Offsets)** | **Valeurs**             | **Description**                                                                                                                                                                               |
| 0x00 ... 0x07           | PY007444                | Signature de fichier contenant le numéro de licence unique                                                                                                                                    |
| 0x09                    | 03                      | Version majeure de Python                                                                                                                                                                     |
| 0x0a                    | 0b                      | Version mineure de Python                                                                                                                                                                     |
| 0x14                    | 09                      | Type de protection :  \* 09 si le[mode BCC](https://pyarmor.readthedocs.io/en/stable/topic/bccmode.html) de Pyarmor (brièvement expliqué dans la section suivante) est activé \* 08 sinon |
| 0x1c ... 0x1f           | 40 00 00 00             | Début de la charge utile ELF, au format little-endian                                                                                                                                         |
| 0x24 ... 0x27           | 12 c9 06 00             | Quatre premiers octets du nonce AES-128-CTR                                                                                                                                                   |
| 0x2c ... 0x33           | dc d2 98 a1 ea 11 fd f4 | Huit octets restants du nonce AES-128-CTR                                                                                                                                                     |
| 0x38 ... 0x3b           | a0 7f 02 00             | Fin de la charge utile ELF, au format little-endian                                                                                                                                           |

Tableau 1. Décomposition des champs présents dans l'en-tête Pyarmor.

Ce même motif (surligné en jaune) se répète une fois de plus après la fin de la charge utile ELF, pour extraire et déchiffrer la charge utile bytecode Pyarmor.

#### Mode BCC

Le mode BCC (probablement une abréviation de ByteCode-to-Compilation) convertit la plupart \<\< des fonctions et méthodes dans les scripts en fonctions C équivalentes. Ces fonctions C seront compilées directement en instructions machine, puis appelées par les scripts offusqués. \>\> (Source :[Documentation Pyarmor](https://pyarmor.readthedocs.io/en/stable/topic/bccmode.html).)

Le mode BCC est invoqué comme suit : pyarmor gen --enable-bcc script.py.

Ces fonctions C converties sont stockées dans un fichier ELF séparé, produit aux côtés du bytecode marshallé par Pyarmor.

Le mappage des constantes Python vers les fonctions BCC peut être obtenu en utilisant cette[implémentation](https://www.google.com/search?q=https://github.com/GDATAAdvancedAnalytics/Pyarmor-Tooling/blob/main/bcc_info.py). Par exemple, dans la méthode Python get\_encryption\_key(browser\_path), la constante **pyarmor\_bcc\_58580** mappe vers la fonction BCC bcc\_180, dont le corps de fonction est situé au décalage 0x4e70 du fichier ELF.

En se référant à[cette analyse](https://www.google.com/search?q=https://cyber.wtf/2025/05/30/pyarmor-bcc-notes) du contenu du fichier ELF, en particulier la structure bcc\_ftable, la Figure 6 montre une partie de la fonction BCC bcc\_180 décompilée :
![Capture d'écran représentant deux images côte à côte d'exemples de code Python complexe sur un écran d'ordinateur.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-727408-170172-6.png) Figure 6. Décompilation de la fonction BCC bcc\_180.

Nous pouvons grossièrement récupérer un équivalent du code original de la méthode Python get\_encryption\_key, comme montré dans la Figure 7.
![Capture d'écran de code Python dans un éditeur de texte, montrant une fonction permettant de récupérer la clé de déchiffrement pour les navigateurs Chromium avec la syntaxe mise en évidence.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-729500-170172-7.png) Figure 7. Code Python équivalent de la méthode get\_encryption\_key.

#### Format de bytecode marshallé

Le bytecode marshallé de Pyarmor 9 diffère du bytecode Python 3.11 standard de plusieurs manières. Premièrement, le bit 0x20000000 est défini dans le champ co\_flags pour indiquer qu'il est offusqué par Pyarmor. Deuxièmement, il y a un champ de données supplémentaire, dont la longueur est indiquée par la valeur de son premier octet.

De plus, [deopt\_code()](https://www.google.com/search?q=https://github.com/python/cpython/blob/3.11/Objects/codeobject.c%23L1473) doit être désactivé pour que la séquence de bytecode soit déchiffrée avec succès. Nous discuterons des paramètres cryptographiques dans une section ultérieure de cet article.

#### Structure de l'objet code

Les objets code Pyarmor sont spécialement conçus, en ce sens qu'ils devraient contenir certains artefacts. Il est courant de s'attendre à trouver l'instruction LOAD\_CONST __pyarmor\_enter_\*_\_ dans le préambule et l'instruction LOAD\_CONST __pyarmor\_exit_\*_\_ dans la fin du désassemblage. Ces deux instructions envelopperaient le bytecode chiffré, comme montré dans le Tableau 2.

|---------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| **Opération** | **Argument**                                                                                                                                 |
| ...                                                                                                                                                         ||
| LOAD\_CONST    | **pyarmor\_enter\_58592**                                                                                                                      |
| LOAD\_CONST    | \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00\\x00\\x20\\x16\\x0b\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00 |
| ... séquence de bytecode chiffrée (à examiner dans la section suivante) ...                                                                                 ||
| LOAD\_CONST    | **pyarmor\_exit\_58593**                                                                                                                       |
| LOAD\_CONST    | \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x05\\x00\\x00\\x20\\x16\\x0b\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00 |
| ...                                                                                                                                                         ||

Tableau 2. Instructions liées à Pyarmor dans le désassemblage de \<module\>.

Une fois la séquence de bytecode chiffrée déchiffrée, elle pourrait révéler des chaînes chiffrées ou des invocations de fonctions BCC. Les chaînes chiffrées (examinées dans une section ultérieure de cet article) sont précédées par une instruction LOAD\_CONST __pyarmor\_assert_\*__. Il y a aussi l'instruction LOAD\_CONST __pyarmor\_bcc_\*__ pour invoquer une fonction BCC (examinée plus tôt dans cet article).

#### Chiffrement de l'objet code

Les séquences de bytecode entre le marqueur de début (__pyarmor\_enter_\*__) et le marqueur de fin (__pyarmor\_exit_\*__) sont chiffrées en AES-128-CTR. La clé AES associée (273b1b1373cf25e054a61e2cb8a947b8)[est extraite de](https://www.google.com/search?q=https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot/blob/main/helpers/runtime.py) la DLL d'exécution Pyarmor liée au numéro de licence unique.

D'autre part, la clé XOR du nonce AES correspondant (2db99d18a0763ed70bbd6b3c) est uniquement spécifique à la charge utile bytecode Pyarmor, pour laquelle il[existe une implémentation](https://www.google.com/search?q=https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot/blob/main/pyc_module.cpp%23L360) de la logique d'extraction de cette valeur. Cette clé est XORée avec les 12 octets au marqueur de fin (__pyarmor\_exit_\*_\_) pour produire le nonce AES correct utilisé dans le déchiffrement.

#### Chiffrement des chaînes de caractères

De même, les constantes de chaîne de plus de huit caractères sont chiffrées en AES-128-CTR (appelé[\<\< mixed \>\> dans la terminologie Pyarmor](https://www.google.com/search?q=https://pyarmor.readthedocs.io/en/latest/tutorial/obfuscation.html%23more-options-to-protect-script)). La clé AES associée est également 273b1b1373cf25e054a61e2cb8a947b8, mais cette fois, le nonce AES correspondant (692e767673e95c45a1e6876d)[est calculé à partir de](https://www.google.com/search?q=https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot/blob/main/helpers/runtime.py) la DLL d'exécution Pyarmor liée au numéro de licence unique.

De plus, une valeur de préfixe 0x81 indique que la constante de chaîne est chiffrée. Sinon, une valeur de préfixe 0x01 est utilisée à la place.

Maintenant que la protection Pyarmor est désarmée, nous allons procéder à la présentation de certaines des capacités clés du VVS stealer dans la section suivante.

## Capacités du maliciel

Une fois les couches d'offuscation Pyarmor --- y compris le mode BCC et le chiffrement de chaînes AES-128-CTR --- retirées avec succès, nous avons pu exposer la logique Python sous-jacente. Ce code désoffusqué a révélé un stealer conçu non seulement pour l'exfiltration de données, mais aussi pour le détournement de session active et la persistance. La section suivante détaille les capacités opérationnelles spécifiques du VVS stealer qui ont été découvertes lors de cette analyse.

L'échantillon de maliciel expire après le 2026-10-31 23:59:59. Il cessera de fonctionner en se terminant prématurément.

L'échantillon de maliciel effectue toutes les requêtes HTTP en envoyant la chaîne User-Agent fixe Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36.

Nous allons maintenant donner un aperçu des principales capacités du maliciel, telles qu'annoncées sur Telegram.

### **Données** Discord

L'échantillon de maliciel recherche d'abord des jetons Discord potentiellement chiffrés. Les jetons Discord chiffrés sont des chaînes commençant par le préfixe [dQw4w9WgXcQ:](https://reddit.com/r/discordapp/comments/tyb1u0/discord_easter_egg_all_encrypted_discord_tokens). L'échantillon de maliciel utilise des expressions régulières pour former un motif à partir de ce préfixe de chaîne. Il utilise ensuite ce motif pour chercher à l'intérieur du contenu des fichiers avec les extensions .ldb ou .log, stockés dans le répertoire[LevelDB](https://en.wikipedia.org/wiki/LevelDB).

Ensuite, l'échantillon de maliciel déchiffre la valeur encrypted\_key dans le fichier Local State, via l'[interface de programmation d'application de protection des données (DPAPI)](https://en.wikipedia.org/wiki/Data_Protection_API). Avec cette valeur encrypted\_key déchiffrée comme paramètre de clé AES, l'échantillon de maliciel applique l'algorithme AES, opérant en mode Galois/Counter Mode (GCM), sur les jetons Discord chiffrés, pour les déchiffrer.

L'échantillon de maliciel utilise ensuite les jetons Discord déchiffrés pour interroger divers points de terminaison (endpoints) de l'interface de programmation d'application (API) Discord pour obtenir des informations sur l'utilisateur, notamment :

* Abonnement[Nitro](https://discord.com/nitro) (fonctionnalités Discord Premium)
* Méthodes de paiement
* ID utilisateur
* Nom d'utilisateur
* E-mail
* Numéro de téléphone
* Amis
* Guildes (serveurs)
* Statut de l'authentification multifacteur (MFA)
* Paramètres régionaux (Locale)
* Statut de vérification
* Image d'avatar
* Adresse IP (via le service[ipify](https://ipify.org))
* Nom de l'ordinateur

Après avoir rassemblé toutes ces informations, l'échantillon de maliciel procède à leur exfiltration au format JavaScript Object Notation (JSON). L'exfiltration a lieu via des requêtes HTTP POST vers les points de terminaison webhook prédéfinis (variable d'environnement %WEBHOOK% et URL de repli codées en dur).

Les webhooks sont \<\< un moyen facile de poster des messages dans des canaux sur Discord. Ils ne nécessitent pas d'utilisateur bot ou d'authentification pour être utilisés. \>\> (Source :[Portail des développeurs Discord](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks).)

### **Injection Dis** c**ord**

Le code responsable de cette fonctionnalité se trouve dans la classe Inj, probablement une abréviation de Injection.

Dans cette classe, l'échantillon de maliciel tue d'abord les processus de l'application Discord en cours d'exécution, s'il y en a. Il télécharge ensuite la charge utile JavaScript (JS) depuis un fichier distant nommé injection-obf.js (le suffixe -obf signifie probablement une version offusquée du script), remplaçant l'URL du point de terminaison webhook et discord\_desktop\_core, dans le répertoire de l'application Discord. Ce fichier JS est offusqué par l'[outil JavaScript Obfuscator](https://obfuscator.io) et peut être désoffusqué via le[désoffuscateur Obfuscator.io](https://obf-io.deobfuscate.io).

Certaines des fonctionnalités principales du code JS injecté sont mises en évidence dans les captures d'écran suivantes, en commençant par ses extraits de code de configuration et d'exfiltration, montrés dans la Figure 8.
![Capture d'écran d'un fichier de configuration JavaScript impliquant des URL et des chemins liés à une API Discord et à une passerelle d'autorisation distante. Le code est affiché dans un éditeur de texte avec coloration syntaxique.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-731261-170172-8.png) Figure 8. Configuration et exfiltration du JS injecté.

La Figure 8 montre le code JS injecté responsable de l'établissement de la persistance dans l'application Discord, basé sur le framework[Electron](https://electronjs.org). Ce framework utilise des archives Atom Shell Archive Format ([ASAR](https://electronjs.org/docs/latest/tutorial/asar-archives)) pour regrouper l'intégralité de la base de code de l'application dans un seul fichier, montré dans la Figure 9.
![Capture d'écran d'un extrait de code lié à une fonction d'initialisation logicielle, mentionnant des chemins et une configuration pour « app.js », « index.js » et « discord.js ». Le code est écrit en JavaScript.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-733153-170172-9.png) Figure 9. Code JS injecté pour effectuer la persistance.

La Figure 10 montre le code JS injecté responsable de la surveillance du trafic réseau via le protocole[Chrome DevTools](https://www.google.com/search?q=https://chromedevtools.github.io/devtools-protocol/tot/Network) (CDP).
![Capture d'écran de code logiciel dans un éditeur, affichant une fonction JavaScript liée au réseau.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-735070-170172-10.png) Figure 10. Code JS injecté pour surveiller le trafic réseau.

La Figure 11 montre les fonctions utilitaires de support et les hooks d'événement dans le code JS injecté. Les hooks d'événement sont des fonctions de rappel (callback) qui s'exécutent lorsque l'utilisateur de l'application Discord effectue une action spécifique. Les actions d'intérêt sont lorsque l'utilisateur consulte ses codes de secours, change son mot de passe ou ajoute une méthode de paiement. Les fonctions de rappel liées à ces actions sont capables de collecter les informations de compte et de facturation de l'utilisateur Discord.
![Capture d'écran d'un éditeur de code informatique affichant plusieurs lignes de code JavaScript, impliquant des fonctions liées à la gestion des données utilisateur et aux requêtes API.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-737027-170172-11.png) Figure 11. Code JS injecté des fonctions utilitaires et des hooks d'événement.

Par la suite, l'échantillon de maliciel redémarre un processus d'application Discord compromis via Update.exe, ce qu'il fait avec le commutateur de ligne de commande --processStart.

### **Données du navigateur web**

L'échantillon de maliciel cible une liste d'applications de navigateur web, notamment :

* Chrome
* Edge
* 7Star
* Amigo
* Brave
* CentBrowser
* Discord
* Epic Privacy Browser
* Iridium
* Kometa
* Lightcord
* Mozilla Firefox
* Opera
* Orbitum
* Sputnik
* Torch
* Uran
* Vivaldi
* Yandex

De ces cibles, l'échantillon de maliciel extrait les données suivantes, lorsqu'elles sont présentes :

* Remplissage automatique (Autofill)
* Cookies
* Historique
* Mots de passe

Une fois ces données extraites, l'échantillon de maliciel les prépare pour l'exfiltration en les compressant dans un seul fichier d'archive ZIP nommé \<USERNAME\>\_vault.zip. Il exfiltre ensuite ce fichier via des requêtes HTTP POST vers les points de terminaison webhook prédéfinis, similaire au processus d'exfiltration des données Discord.

### Persistance**au** démarrage

L'échantillon de maliciel se copie dans le dossier %APPDATA%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup pour obtenir une persistance au démarrage. Le maliciel reste sur l'appareil de l'utilisateur, lui permettant de continuer à exfiltrer des données si, par exemple, l'utilisateur tente d'installer une nouvelle copie de l'application Discord.

### **Fausse** erreur

L'échantillon de maliciel utilise l'API Win32, spécifiquement la fonction MessageBoxW dans la bibliothèque User32.dll, pour afficher une boîte de message modale concernant une fausse erreur fatale nécessitant le redémarrage de l'ordinateur. Une boîte de message modale est une petite fenêtre de dialogue nécessitant une interaction de l'utilisateur avant que l'application puisse continuer, comme montré dans la Figure 12.
![Boîte de dialogue de message d'erreur affichant « Fatal Error » avec le code d'erreur 0x80070002 et une suggestion de redémarrer l'ordinateur. Un bouton « OK » est présent pour acquittement.](https://unit42.paloaltonetworks.com/wp-content/uploads/2026/01/word-image-739112-170172-12.png) Figure 12. Une fausse boîte de message demandant à la victime de redémarrer l'ordinateur.

## Conclusion

Le VVS stealer démontre comment des outils comme Pyarmor, qui peuvent être utilisés à des fins légitimes, peuvent également être exploités pour construire des logiciels malveillants furtifs visant à détourner des identifiants pour des plateformes populaires telles que Discord. Son émergence signale un besoin pour les défenseurs de renforcer la surveillance autour du vol d'identifiants et de l'abus de compte.

### **Protection et atténuation Palo Alto Networks**

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

Les modèles d'apprentissage automatique et les techniques d'analyse d'[Advanced WildFire](https://docs.paloaltonetworks.com/wildfire) ont été revus et mis à jour à la lumière des indicateurs partagés dans cette recherche.

[Advanced URL Filtering](https://docs.paloaltonetworks.com/advanced-url-filtering/administration) et[Advanced DNS Security](https://docs.paloaltonetworks.com/dns-security) identifient les domaines et URL connus associés à cette activité comme malveillants.

[Cortex XDR](https://docs-cortex.paloaltonetworks.com/p/XDR) et[XSIAM](https://docs-cortex.paloaltonetworks.com/p/XSIAM) préviennent les menaces décrites dans cet article en employant le[Malware Prevention Engine](https://docs-cortex.paloaltonetworks.com/r/Cortex-XDR/Cortex-XDR-4.x-Documentation/Malware-protection). Cette approche combine plusieurs couches de protection, incluant[Advanced WildFire](https://docs.paloaltonetworks.com/wildfire), la protection contre les menaces comportementales (Behavioral Threat Protection) et le module d'analyse locale, pour empêcher les logiciels malveillants connus et inconnus de causer des dommages aux points de terminaison (endpoints).

Si vous pensez avoir été compromis ou si vous avez une urgence, contactez l'[équipe de réponse aux incidents de Unit 42](https://start.paloaltonetworks.com/contact-unit42.html) ou appelez :

* Amérique du Nord : Numéro vert : +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 : 000 800 050 45107
* Corée du Sud : +82.080.467.8774

Palo Alto Networks a partagé ces découvertes avec nos membres de la Cyber Threat Alliance (CTA). Les membres de la CTA utilisent ces renseignements pour déployer rapidement des protections pour leurs clients et pour perturber systématiquement les acteurs cybermalveillants. En savoir plus sur la[Cyber Threat Alliance](https://www.cyberthreatalliance.org).

## Indicateurs de compromission

Hachages SHA-256 des échantillons de maliciels :

* 307d9cefa7a3147eb78c69eded273e47c08df44c2004f839548963268d19dd87
* 7a1554383345f31f3482ba3729c1126af7c1d9376abb07ad3ee189660c166a2b
* c7e6591e5e021daa30f949a6f6e0699ef2935d2d7c06ea006e3b201c52666e07

URL de webhook Discord :

* hxxps\[://\]ptb.discord\[.\]com/api/webhooks/1360401843963826236/TkFvXfHFXrBIKT3EaqekJefvdvt39XTAxeOIWECeSrBbNLKDR5yPcn75uIqKEzdfs9o2
* hxxps\[://\]ptb.discord\[.\]com/api/webhooks/1360259628440621087/YCo9eVnIBOYSMn8Xr6zX5C7AJF22z26WljaJk4zr6IiThnUrVyfWCZYs6JjSC12IC8c0

## Ressources supplémentaires

* [Unpacking Pyarmor v8+ scripts](https://cyber.wtf/2025/02/12/unpacking-pyarmor-v8-scripts) -- Leonard Rapp et Hendrik Eckardt, G DATA Advanced Analytics GmbH
* [Obfuscated Malicious Python Scripts with PyArmor](https://isc.sans.edu/diary/31840) -- Xavier Mertens, SANS Internet Storm Center
  Retour en haut de page

### Étiquettes

* [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")
* [Telegram](https://unit42.paloaltonetworks.com/fr/tag/telegram-fr/ "Telegram")  
  [Threat Research Center](https://unit42.paloaltonetworks.com/fr/ "Threat Research") [SuivantDu linéaire au complexe : l'évolution du chiffrement de RansomHouse](https://unit42.paloaltonetworks.com/fr/ransomhouse-encryption-upgrade/ "Du linéaire au complexe : l’évolution du chiffrement de RansomHouse")

### SOMMAIRE

* 

### Sur le même thème

* [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/ "article - table of contents")
* [L'évolution de la cybermenace iranienne : des wipers MBR à l'instrumentalisation des identités](https://unit42.paloaltonetworks.com/fr/evolution-of-iran-cyber-threats/ "article - table of contents")
* [Exécution de code à distance dans des formats et bibliothèques IA/ML modernes](https://unit42.paloaltonetworks.com/fr/rce-vulnerabilities-in-ai-python-libraries/ "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 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)
