Entreprise d'experts en Sécurité Informatique : Audits et conseils en cybersécurité
Entreprise française de cybersécurité depuis 2004
☎ 03 60 47 09 81 - info@securiteinfo.com

Capa, analysez les fichiers exécutables Windows pour identifier les menaces


ANTIVIRUS CYBERCRIMINALITÉ MALWARE WINDOWS LINUX MACOS OPEN SOURCE RÉTRO-INGENIERIE CYBERSÉCURITÉ OUTIL D'ADMINISTRATION

Qu'est-ce que Capa ?


Capa détecte les fonctionnalités utilisées dans les fichiers exécutables.
Utilisez le sur un fichier PE ou un shellcode et il va vous dire ce qu'il pense que le programme est capable de faire.
Par exemple, il peut en déduire que le programme est un cheval de Troie, est capable d’installer des services, ou se base sur HTTP pour communiquer.

Veuillez lire l'article des fonctionnalités sur le premier article du blog capa.


$ capa.exe suspicious.exe
+------------------------+--------------------------------------------------------------------------------+ | ATT&CK Tactic | ATT&CK Technique | |------------------------+--------------------------------------------------------------------------------| | DEFENSE EVASION | Obfuscated Files or Information [T1027] | | DISCOVERY | Query Registry [T1012] | | | System Information Discovery [T1082] | | EXECUTION | Command and Scripting Interpreter::Windows Command Shell [T1059.003] | | | Shared Modules [T1129] | | EXFILTRATION | Exfiltration Over C2 Channel [T1041] | | PERSISTENCE | Create or Modify System Process::Windows Service [T1543.003] | +------------------------+--------------------------------------------------------------------------------+ +-------------------------------------------------------+-------------------------------------------------+ | CAPABILITY | NAMESPACE | |-------------------------------------------------------+-------------------------------------------------| | check for OutputDebugString error | anti-analysis/anti-debugging/debugger-detection | | read and send data from client to server | c2/file-transfer | | execute shell command and capture output | c2/shell | | receive data (2 matches) | communication | | send data (6 matches) | communication | | connect to HTTP server (3 matches) | communication/http/client | | send HTTP request (3 matches) | communication/http/client | | create pipe | communication/named-pipe/create | | get socket status (2 matches) | communication/socket | | receive data on socket (2 matches) | communication/socket/receive | | send data on socket (3 matches) | communication/socket/send | | connect TCP socket | communication/socket/tcp | | encode data using Base64 | data-manipulation/encoding/base64 | | encode data using XOR (6 matches) | data-manipulation/encoding/xor | | run as a service | executable/pe | | get common file path (3 matches) | host-interaction/file-system | | read file | host-interaction/file-system/read | | write file (2 matches) | host-interaction/file-system/write | | print debug messages (2 matches) | host-interaction/log/debug/write-event | | resolve DNS | host-interaction/network/dns/resolve | | get hostname | host-interaction/os/hostname | | create a process with modified I/O handles and window | host-interaction/process/create | | create process | host-interaction/process/create | | create registry key | host-interaction/registry/create | | create service | host-interaction/service/create | | create thread | host-interaction/thread/create | | persist via Windows service | persistence/service | +-------------------------------------------------------+-------------------------------------------------+

Téléchargement et utilisation de Capa


Téléchargez les versions stables et le programme déjà compilé ici. Vous pouvez utiliser le programme exécutable seul sans installation. Capa est un outil en ligne de commande qui doit se lancer à partir du terminal.

Pour utiliser Capa comme librairie ou l'intégrer avec un autre outil, voir doc/installation.md pour de plus amples instructions.

Pour plus d'informations a propos de l'utilisation de Capa, y compris son exécution dans l'environnement de script/pluguin IDA, voir doc/usage.md.

Exemple


Dans l'affichage du résultat ci-dessus, nous avons lancé Capa contre un programme exécutable inconnu (suspicious.exe), et l'outil nous indique que le programme peut envoyer des requêtes HTTP, décode des données avec XOR et BaAse64, installe des services et lance de nouveaux processus. Pris tous ensemble, cela nous faire penser que suspicious.exe peut être un chaval de Troie persistant. De plus, la prochaine étape d'analyse pourrait être de lancer suspicious.exe dans une sandbox et essayer de trouver le serveur de commande et de contrôle (CC).
En passant l'argument -vv flag (pour "very verbose", très bavard), Capa affiche exactement où se situe la preuve de ces fonctionnalités douteuse. C'est utile pour dux raisons :

λ capa.exe suspicious.exe -vv
...
execute shell command and capture output
namespace   c2/shell
author      matthew.williams@fireeye.com
scope       function
att&ck      Execution::Command and Scripting Interpreter::Windows Command Shell [T1059.003]
references  https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/ns-processthreadsapi-startupinfoa
examples    Practical Malware Analysis Lab 14-02.exe_:0x4011C0
function @ 0x10003A13
  and:
    match: create a process with modified I/O handles and window @ 0x10003A13
      and:
        or:
          api: kernel32.CreateProcess @ 0x10003D6D
        number: 0x101 @ 0x10003B03
        or:
          number: 0x44 @ 0x10003ADC
        optional:
          api: kernel32.GetStartupInfo @ 0x10003AE4
    match: create pipe @ 0x10003A13
      or:
        api: kernel32.CreatePipe @ 0x10003ACB
    or:
      string: cmd.exe /c  @ 0x10003AED
...


Capa utilise une collection de règles pour identifier les fonctionnalités d'un programme. Ces règles sont faciles à écrire, même pour les débutants en rétro-ingénierie. En créant vos règles, vous pouvez étendre les fonctionnalités que Capa reconnaît. D'un certain point de vue, les règles de Capa sont un mix entre les formats OpenIOC, Yara, et YAML.

Voici une exemple de règles utilisée par capa:
yaml
rule:
  meta:
    name: hash data with CRC32
    namespace: data-manipulation/checksum/crc32
    author: moritz.raabe@fireeye.com
    scope: function
    examples:
      - 2D3EDC218A90F03089CC01715A9F047F:0x403CBD
      - 7D28CB106CB54876B2A5C111724A07CD:0x402350  # RtlComputeCrc32
  features:
    - or:
      - and:
        - mnemonic: shr
        - number: 0xEDB88320
        - number: 8
        - characteristic: nzxor
      - api: RtlComputeCrc32


Le dépôt github.com/mandiant/capa-rules contient de centaines de règles de librairies standard qui sont distribuées avec Capa. SVP, merci d'écrire de nouvelles règles et de contribuer lorsque vous trouvez des techniques intéressantes dans un malware.

Si vous utilisez IDA Pro, vous pouvez utiliser le plugin IDA Pro pour Capa. Ce script ajoute de nouveaux élément à l'interface utilisateur d'IDA, y compris une vue interactive d'une hiérarchie des règles trouvées dans la base de données courante. Si vous cochez les cases, le plugin mettra en évidence les adresses associées à ces fonctionnalités. Nous utilisons ce plugin tout le temps, et allons directement sur les parties intéressantes du programme.

capa + IDA Pro integration

Plus d'informations


Sur Capa

Sur les règles de Capa


Téléchargement


Tags


ANTIVIRUS CYBERCRIMINALITÉ MALWARE WINDOWS LINUX MACOS OPEN SOURCE RÉTRO-INGENIERIE CYBERSÉCURITÉ OUTIL D'ADMINISTRATION

Inscription à notre lettre d'information


Inscrivez-vous à notre lettre d'information pour vous tenir au courant de nos actualités et de nos dernières trouvailles.


SecuriteInfo.com est une entreprise française de cybersécurité. Nous proposons différentes solutions matérielles et prestations de services permettant de sécuriser les données des Systèmes d'Information d'entreprises ou de collectivités. Notre périmètre d'intervention couvre l'intégralité de votre système d'information : Sécurité périmétrique, réseaux, accès distants, VPN, solutions anti-spam et anti-malwares, différents audits réseaux et systèmes, vérification de la politique de sécurité, hébergement sécurisé ...
Facebook SecuriteInfo.com
Twitter de SecuriteInfo.com
Github de SecuriteInfo.com
Calculs scientifiques distribués contre les maladies, équipe SecuriteInfo.com
Depuis 2015, SecuriteInfo.com soumet et analyse des malwaressur VirusTotal
Depuis 2020, SecuriteInfo.com participe à la lutte antivirale avec nos amis suisses de Malware Baazar (Abuse.ch)
© 2000-2026 - Tous droits réservés SecuriteInfo.com