Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
capa — Инструмент статического и динамического анализа на основе правил, который выявляет возможности в файлах PE, ELF, .NET и shellcode, сопоставляя их с техниками MITRE ATT&CK для триажа вредоносного ПО. | Kitploit
Инструменты/GitHubGitHub/mandiant/capa
Статический анализДинамический анализ (песочница)Обратная инженерияАнализ вредоносных программАнализ Бинарных ФайловРазведка угроз
GitHubmandiant/capa

capa

Инструмент статического и динамического анализа на основе правил, который выявляет возможности в файлах PE, ELF, .NET и shellcode, сопоставляя их с техниками MITRE ATT&CK для триажа вредоносного ПО.

Репозиторий
6.1k7143 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Веб-сайт | Скачать | Веб-интерфейс

PyPI - Python Version Last release Number of rules CI status Downloads License


capa определяет возможности исполняемых файлов. Запустите его против PE, ELF, .NET-модуля, файла shellcode или отчёта песочницы, и он расскажет, что, по его мнению, может делать программа. Например, он может предположить, что файл является бэкдором, способен устанавливать службы или использует HTTP для связи.

Чтобы интерактивно просматривать результаты capa в браузере, используйте capa Explorer Web.

Если вы хотите просматривать или писать правила capa, переходите в репозиторий capa-rules. В противном случае читайте дальше.

Ниже вы найдёте список наших записей в блоге capa с дополнительными подробностями.

пример вывода 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 | |-------------------------------------------+-------------------------------------------------| | 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 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 | +-------------------------------------------+-------------------------------------------------+

root@kitploit:~
# загрузка и использование

Загружайте стабильные версии автономных бинарных файлов capa [здесь](https://github.com/mandiant/capa/releases). Вы можете запускать автономные бинарные файлы без установки. capa — это инструмент командной строки, который следует запускать из терминала.

Чтобы использовать capa как библиотеку или интегрировать с другим инструментом, смотрите [doc/installation.md](https://github.com/mandiant/capa/blob/master/doc/installation.md) для дальнейших инструкций по установке.

**Документация:** [Использование и советы](https://github.com/mandiant/capa/blob/HEAD/doc/usage.md) · [Установка](https://github.com/mandiant/capa/blob/HEAD/doc/installation.md) · [Ограничения](https://github.com/mandiant/capa/blob/HEAD/doc/limitations.md) · [ЧаВО](https://github.com/mandiant/capa/blob/HEAD/doc/faq.md)

# capa Explorer Web
[capa Explorer Web](https://mandiant.github.io/capa/explorer/) позволяет вам интерактивно изучать результаты capa в вашем веб-браузере. Помимо онлайн-версии, вы можете загрузить автономный HTML-файл для локального использования без подключения к интернету.

![capa Explorer Web screenshot](https://raw.githubusercontent.com/mandiant/capa/master/doc/img/capa_web_explorer.png)

Более подробная информация о веб-интерфейсе доступна в [README capa Explorer Web](https://github.com/mandiant/capa/blob/master/web/explorer/README.md).

# пример

В приведённом выше примере вывода мы запускаем capa против неизвестного бинарного файла (`suspicious.exe`), и инструмент сообщает, что программа может отправлять HTTP-запросы, декодировать данные с помощью XOR и Base64, устанавливать службы и порождать новые процессы. В совокупности это наводит на мысль, что `suspicious.exe` может быть постоянным бэкдором. Поэтому следующим шагом анализа может быть запуск `suspicious.exe` в изолированной среде и попытка восстановить сервер управления и контроля.

## подробные результаты

При передаче флага `-vv` (для очень подробного вывода) capa сообщает точное место, где были найдены доказательства этих возможностей. Это полезно как минимум по двум причинам:

  - это помогает объяснить, почему мы должны доверять результатам, и позволяет нам проверить выводы, и
  - это показывает, где в бинарном файле опытный аналитик может изучать с помощью IDA Pro```
$ capa.exe suspicious.exe -vv
...
execute shell command and capture output
namespace   c2/shell
author      [email protected]
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
function @ 0x4011C0
  and:
    match: create a process with modified I/O handles and window @ 0x4011C0
      and:
        number: 257 = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW @ 0x4012B8
        or:
          number: 68 = StartupInfo.cb (size) @ 0x401282
        or: = API functions that accept a pointer to a STARTUPINFO structure
          api: kernel32.CreateProcess @ 0x401343
    match: create pipe @ 0x4011C0
      or:
        api: kernel32.CreatePipe @ 0x40126F, 0x401280
    optional:
      match: create thread @ 0x40136A, 0x4013BA
        or:
          and:
            os: windows
            or:
              api: kernel32.CreateThread @ 0x4013D7
        or:
          and:
            os: windows
            or:
              api: kernel32.CreateThread @ 0x401395
    or:
      string: "cmd.exe" @ 0x4012FD
...

dynamic capa

capa также поддерживает обнаружение динамических возможностей для нескольких песочниц, включая:

  • CAPE (поддерживаемые форматы отчетов: .json, .json_, .json.gz)
  • DRAKVUF (поддерживаемые форматы отчетов: .log, .log.gz)
  • VMRay (поддерживаемые форматы отчетов: архив анализа .zip)

Чтобы воспользоваться этой функцией, отправьте ваш файл в одну из поддерживаемых песочниц, затем загрузите и запустите capa для сгенерированного файла отчета. Эта функция позволяет capa сопоставлять возможности с динамическими и статическими признаками, которые песочница зафиксировала во время выполнения.

Вот пример запуска capa для упакованного файла, а затем запуска capa для отчета CAPE, сгенерированного для того же упакованного файла:```yaml $ capa 05be49819139a3fdcdbddbdefd298398779521f3d68daa25275cc77508e42310.exe WARNING:capa.capabilities.common:-------------------------------------------------------------------------------- WARNING:capa.capabilities.common: This sample appears to be packed. WARNING:capa.capabilities.common: WARNING:capa.capabilities.common: Packed samples have often been obfuscated to hide their logic. WARNING:capa.capabilities.common: capa cannot handle obfuscation well using static analysis. This means the results may be misleading or incomplete. WARNING:capa.capabilities.common: If possible, you should try to unpack this input file before analyzing it with capa. WARNING:capa.capabilities.common: Alternatively, run the sample in a supported sandbox and invoke capa against the report to obtain dynamic analysis results. WARNING:capa.capabilities.common: WARNING:capa.capabilities.common: Identified via rule: (internal) packer file limitation WARNING:capa.capabilities.common: WARNING:capa.capabilities.common: Use -v or -vv if you really want to see the capabilities identified by capa. WARNING:capa.capabilities.common:--------------------------------------------------------------------------------

$ capa 05be49819139a3fdcdbddbdefd298398779521f3d68daa25275cc77508e42310.json

┍━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑ │ ATT&CK Tactic │ ATT&CK Technique │ ┝━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┥ │ CREDENTIAL ACCESS │ Credentials from Password Stores T1555 │ ├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────┤ │ DEFENSE EVASION │ File and Directory Permissions Modification T1222 │ │ │ Modify Registry T1112 │ │ │ Obfuscated Files or Information T1027 │ │ │ Virtualization/Sandbox Evasion::User Activity Based Checks T1497.002 │ ├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────┤ │ DISCOVERY │ Account Discovery T1087 │ │ │ Application Window Discovery T1010 │ │ │ File and Directory Discovery T1083 │ │ │ Query Registry T1012 │ │ │ System Information Discovery T1082 │ │ │ System Location Discovery::System Language Discovery T1614.001 │ │ │ System Owner/User Discovery T1033 │ ├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────┤ │ EXECUTION │ System Services::Service Execution T1569.002 │ ├────────────────────────┼────────────────────────────────────────────────────────────────────────────────────┤ │ PERSISTENCE │ Boot or Logon Autostart Execution::Registry Run Keys / Startup Folder T1547.001 │ │ │ Boot or Logon Autostart Execution::Winlogon Helper DLL T1547.004 │ │ │ Create or Modify System Process::Windows Service T1543.003 │ ┕━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙

┍━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┑ │ Capability │ Namespace │ ┝━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┥ │ check for unmoving mouse cursor (3 matches) │ anti-analysis/anti-vm/vm-detection │ │ gather bitkinex information │ collection/file-managers │ │ gather classicftp information │ collection/file-managers │ │ gather filezilla information │ collection/file-managers │ │ gather total-commander information │ collection/file-managers │ │ gather ultrafxp information │ collection/file-managers │ │ resolve DNS (23 matches) │ communication/dns │ │ initialize Winsock library (7 matches) │ communication/socket │ │ act as TCP client (3 matches) │ communication/tcp/client │ │ create new key via CryptAcquireContext │ data-manipulation/encryption │ │ encrypt or decrypt via WinCrypt │ data-manipulation/encryption │ │ hash data via WinCrypt │ data-manipulation/hashing │ │ initialize hashing via WinCrypt │ data-manipulation/hashing │ │ hash data with MD5 │ data-manipulation/hashing/md5 │ │ generate random numbers via WinAPI │ data-manipulation/prng │ │ extract resource via kernel32 functions (2 matches) │ executable/resource │ │ interact with driver via control codes (2 matches) │ host-interaction/driver │ │ get Program Files directory (18 matches) │ host-interaction/file-system │ │ get common file path (575 matches) │ host-interaction/file-system │ │ create directory (2 matches) │ host-interaction/file-system/create │ │ delete file │ host-interaction/file-system/delete │ │ get file attributes (122 matches) │ host-interaction/file-system/meta │ │ set file attributes (8 matches) │ host-interaction/file-system/meta │ │ move file │ host-interaction/file-system/move │ │ find taskbar (3 matches) │ host-interaction/gui/taskbar/find │ │ get keyboard layout (12 matches) │ host-interaction/hardware/keyboard │ │ get disk size │ host-interaction/hardware/storage │ │ get hostname (4 matches) │ host-interaction/os/hostname │ │ allocate or change RWX memory (3 matches) │ host-interaction/process/inject │ │ query or enumerate registry key (3 matches) │ host-interaction/registry │ │ query or enumerate registry value (8 matches) │ host-interaction/registry │ │ delete registry key │ host-interaction/registry/delete │ │ start service │ host-interaction/service/start │ │ get session user name │ host-interaction/session │ │ persist via Run registry key │ persistence/registry/run │ │ persist via Winlogon Helper DLL registry key │ persistence/registry/winlogon-helper │ │ persist via Windows service (2 matches) │ persistence/service │ ┕━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┙

root@kitploit:~
# правила capa
capa использует набор правил для выявления возможностей в программе.
Эти правила легко писать, даже для новичков в реверс-инжиниринге.
Создавая правила, вы можете расширить возможности, которые распознает capa.
В некотором смысле правила capa представляют собой смесь форматов OpenIOC, Yara и YAML.

Вот пример правила, используемого capa:```yaml
rule:
  meta:
    name: create TCP socket
    namespace: communication/socket/tcp
    authors:
      - [email protected]
      - [email protected]
      - [email protected]
    scopes:
      static: basic block
      dynamic: call
    mbc:
      - Communication::Socket Communication::Create TCP Socket [C0001.011]
    examples:
      - Practical Malware Analysis Lab 01-01.dll_:0x10001010
  features:
    - or:
      - and:
        - number: 6 = IPPROTO_TCP
        - number: 1 = SOCK_STREAM
        - number: 2 = AF_INET
        - or:
          - api: ws2_32.socket
          - api: ws2_32.WSASocket
          - api: socket
      - property/read: System.Net.Sockets.TcpClient::Client

Репозиторий github.com/mandiant/capa-rules содержит сотни стандартных правил, которые поставляются с capa. Изучите, как писать правила, и добавляйте новые записи, когда найдёте интересные техники в вредоносном ПО.

Плагин для IDA Pro: capa explorer

Если вы используете IDA Pro, то можете воспользоваться плагином capa explorer. capa explorer помогает выявлять интересные участки программы и создавать новые правила capa, используя характеристики, извлечённые непосредственно из вашей базы данных IDA Pro. Он также использует ваши локальные изменения в .idb для извлечения более точных характеристик, например, когда вы переименовываете глобальную переменную, содержащую динамически разрешённый адрес API.

capa + IDA Pro integration

Интеграция с Ghidra

capa поддерживает использование Ghidra (через PyGhidra) в качестве бэкенда для извлечения характеристик. Это позволяет запускать capa для бинарных файлов, используя аналитический движок Ghidra.

Вы можете запускать и просматривать результаты capa в интерфейсе Ghidra с помощью capa explorer для Ghidra.

Вы также можете запускать capa из командной строки, используя бэкенд Ghidra.

Статьи в блогах

  • Riding Dragons: capa использует Ghidra
  • Dynamic capa: исследование поведения исполняемых файлов во время выполнения с помощью CAPE Sandbox
  • capa v4: расширяем охват .NET (поддержка .NET)
  • ELFant в комнате – capa v3 (поддержка ELF)
  • capa 2.0: лучше, сильнее, быстрее
  • capa: автоматическое определение возможностей вредоносного ПО

Дополнительная информация

capa

  • Установка
  • Использование
  • Ограничения
  • Руководство по участию

Правила capa

  • репозиторий capa-rules
  • формат правил capa-rules

Тестовые файлы capa

Репозиторий capa-testfiles содержит данные, которые мы используем для тестирования кода и правил capa.

Список рассылки

Подпишитесь на список рассылки FLARE, чтобы получать объявления сообщества! Отправьте письмо с темой «subscribe» на адрес [email protected].

Скачать инструмент