Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dynmx — Détection basée sur des signatures de caractéristiques de logiciels malveillants basées sur des séquences d'appels d'API Windows. C'est comme YARA pour les traces d'API de sandbox ! | Kitploit
Outils/GitHubGitHub/0x534a/dynmx
Analyse Dynamique (Sandboxing)Analyse de Malware
GitHub0x534a/dynmx

dynmx

Détection basée sur des signatures de caractéristiques de logiciels malveillants basées sur des séquences d'appels d'API Windows. C'est comme YARA pour les traces d'API de sandbox !

Voir le dépôt
85670il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Prototype dynmx

dynmx (prononcé dynamics) est une approche de détection basée sur des signatures pour les caractéristiques comportementales des logiciels malveillants, fondée sur les séquences d'appels API Windows. De manière simplifiée, vous pouvez considérer dynmx comme une sorte de YARA pour les traces d'appels API (appelées journaux de fonctions) provenant de sandboxes de logiciels malveillants. Ainsi, la base de données pour l'approche de détection n'est pas constituée par les échantillons de logiciels malveillants eux-mêmes, analysés de manière statique, mais par des données générées lors d'une analyse dynamique de l'échantillon dans une sandbox. Actuellement, dynmx prend en charge les journaux de fonctions des sandboxes suivantes :

  • VMRay (journal de fonctions, format texte et XML)
  • CAPEv2 (fichier report.json)
  • Cuckoo (fichier report.json)

L'approche de détection est décrite en détail dans le mémoire de master Signature-Based Detection of Behavioural Malware Features with Windows API Calls. Ce projet est l'implémentation prototype de cette approche, développée dans le cadre du mémoire de master. Les signatures sont définies manuellement par des analystes de logiciels malveillants dans le DSL de signature dynmx et peuvent être détectées dans les journaux de fonctions à l'aide de cet outil. Les fonctionnalités et la syntaxe du DSL de signature dynmx se trouvent également dans le mémoire de master. De plus, vous trouverez des exemples de signatures dynmx dans le dépôt dynmx-signatures. En plus de détecter les caractéristiques des logiciels malveillants basées sur les appels API, dynmx peut extraire les ressources OS utilisées par le logiciel malveillant (un modèle d'activité d'accès). Ces ressources sont extraites en examinant les appels API et en reconstituant les opérations sur les ressources OS. Actuellement, les ressources OS des catégories système de fichiers, registre et réseau sont prises en compte dans le modèle.

Exemple

Dans la section suivante, des exemples sont présentés pour la détection de caractéristiques de logiciels malveillants et pour l'extraction de ressources.

Détection

Pour cet exemple, nous choisissons l'échantillon de logiciel malveillant avec la somme de hachage SHA-256 c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3. Selon MalwareBazaar, l'échantillon appartient à la famille de logiciels malveillants Amadey. Un rapport d'analyse VMRay public de cet échantillon est disponible, qui fournit également le journal de fonctions tracé par VMRay. Ce journal de fonctions sera notre base de données pour la détection.

Si nous souhaitons savoir si l'échantillon de logiciel malveillant utilise une technique d'injection appelée Process Hollowing, nous pouvons essayer de détecter la signature dynmx suivante dans le journal de fonctions.```yaml dynmx_signature: meta: name: process_hollow title: Process Hollowing description: Detection of Process hollowing malware feature detection: proc_hollow: # Create legit process in suspended mode - api_call: ["CreateProcess[AW]", "CreateProcessInternal[AW]"] with: - argument: "dwCreationFlags" operation: "flag is set" value: 0x4 - return_value: "return" operation: "is not" value: 0 store: - name: "hProcess" as: "proc_handle" - name: "hThread" as: "thread_handle" # Injection of malicious code into memory of previously created process - variant: - path: # Allocate memory with read, write, execute permission - api_call: ["VirtualAllocEx", "VirtualAlloc", "(Nt|Zw)AllocateVirtualMemory"] with: - argument: ["hProcess", "ProcessHandle"] operation: "is" value: "$(proc_handle)" - argument: ["flProtect", "Protect"] operation: "is" value: 0x40 - api_call: ["WriteProcessMemory"] with: - argument: "hProcess" operation: "is" value: "$(proc_handle)" - api_call: ["SetThreadContext", "(Nt|Zw)SetContextThread"] with: - argument: "hThread" operation: "is" value: "$(thread_handle)" - path: # Map memory section with read, write, execute permission - api_call: "(Nt|Zw)MapViewOfSection" with: - argument: "ProcessHandle" operation: "is" value: "$(proc_handle)" - argument: "AccessProtection" operation: "is" value: 0x40 # Resume thread to run injected malicious code - api_call: ["ResumeThread", "(Nt|Zw)ResumeThread"] with: - argument: ["hThread", "ThreadHandle"] operation: "is" value: "$(thread_handle)" condition: proc_hollow as sequence

Sur la base de la signature, nous pouvons trouver certaines fonctionnalités DSL qui rendent *dynmx* puissant :
* Définition de séquences d'appels API avec chemins alternatifs
* Correspondance des noms de fonctions d'appels API avec des expressions régulières
* Correspondance des valeurs d'argument et de retour avec plusieurs opérateurs
* Stockage de variables, par exemple pour suivre les handles dans la séquence d'appels API
* Définition d'une condition de détection avec des opérateurs booléens (`AND`, `OR`, `NOT`)

Si nous exécutons *dynmx* avec la signature montrée ci-dessus contre la fonction de l'échantillon `c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3`, nous obtenons la sortie suivante indiquant que la signature a été détectée.```
$ python3 dynmx.py detect -i 601941f00b194587c9e57c5fabaf1ef11596179bea007df9bdcdaa10f162cac9.json -s process_hollow.yml


    |
  __|         _  _    _  _  _
 /  |  |   | / |/ |  / |/ |/ |  /\/
 \_/|_/ \_/|/  |  |_/  |  |  |_/ /\_/
          /|
          \|
            
 Ver. 0.5 (PoC), by 0x534a


[+] Parsing 1 function log(s)
[+] Loaded 1 dynmx signature(s)
[+] Starting detection process with 1 worker(s). This probably takes some time...

[+] Result
process_hollow	c0832b1008aa0fc828654f9762e37bda019080cbdd92bd2453a05cfb3b79abb3.txt

Nous pouvons entrer plus en détail en définissant le format de sortie sur detail. Maintenant, nous pouvons voir la séquence exacte d'appels API qui a été détectée dans le journal de la fonction. De plus, nous pouvons voir que la signature a été détectée dans le processus 51f0.exe.``` $ python3 dynmx.py -f detail detect -i 601941f00b194587c9e57c5fabaf1ef11596179bea007df9bdcdaa10f162cac9.json -s process_hollow.yml

Télécharger l’outil