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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/kevoreilly/capev2
Динамический анализ (песочница)Криминалистика памятиАнализ уязвимостейСетевая криминалистикаОбратная инженерияОтладчикиФорензикаАнализ вредоносных программОбучение и Образование
GitHubkevoreilly/capev2

CAPEv2

Конфигурация вредоносного ПО и извлечение полезной нагрузки

3.4k5978 ч 48 мин назадПроверено Kitploit

Популярное

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

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

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

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

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

CAPE: Извлечение конфигурации и полезной нагрузки вредоносного ПО - Документация

CAPE — это песочница для вредоносного ПО.

Песочница используется для запуска вредоносных файлов в изолированной среде, одновременно инструментируя их динамическое поведение и собирая криминалистические артефакты.

CAPE была создана на основе Cuckoo v1, которая предоставляет следующие ключевые возможности на платформе Windows:

  • Поведенческая инструментация на основе перехвата API
  • Захват файлов, созданных, изменённых и удалённых во время выполнения
  • Захват сетевого трафика в формате PCAP
  • Классификация вредоносного ПО на основе поведенческих и сетевых сигнатур
  • Снимки экрана рабочего стола, сделанные во время выполнения вредоносного ПО
  • Полные дампы памяти целевой системы

CAPE дополняет традиционный вывод песочницы Cuckoo несколькими ключевыми дополнениями:

  • Автоматическая динамическая распаковка вредоносного ПО
  • Классификация вредоносного ПО на основе YARA-сигнатур распакованных полезных нагрузок
  • Статическое и динамическое извлечение конфигурации вредоносного ПО
  • Автоматический отладчик, программируемый через YARA-сигнатуры, позволяющий:
    • Пользовательские распаковщики/извлекатели конфигурации
    • Динамические контрмеры против антипесочниц
    • Трассировки инструкций
  • Интерактивный рабочий стол

Существует бесплатный демонстрационный экземпляр онлайн, который может использовать любой желающий:

https://capesandbox.com - Для активации учётной записи обратитесь к https://twitter.com/capesandbox

Немного истории

Cuckoo Sandbox начиналась как проект Google Summer of Code в 2010 году в рамках The Honeynet Project. Изначально она была спроектирована и разработана Клаудио Гуарниери (Claudio Guarnieri), первая бета-версия была опубликована в 2011 году. В январе 2014 года была выпущена Cuckoo v1.0.

2015 год стал поворотным, ознаменовавшись значительным форком в истории Cuckoo. Разработка оригинального монитора и метода перехвата API была остановлена в основном проекте Cuckoo. Он был заменён альтернативным монитором с использованием формата сигнатур на основе restructuredText, компилируемого с помощью цепочки инструментов Linux, созданного Юррианом Бремером (Jurriaan Bremer).

Примерно в то же время был создан форк под названием Cuckoo-modified Брэдом «Spender» Спенглером (Brad 'Spender' Spengler), продолживший разработку оригинального монитора со значительными улучшениями, включая поддержку 64-бит и, что важно, внедрение компилятора Microsoft Visual Studio.

В том же году началась разработка динамического инструмента командной строки для извлечения конфигурации и полезной нагрузки под названием CAPE в Context Information Security, автором стал Кевин О'Рейли (Kevin O'Reilly). Название было придумано как аббревиатура от 'Config And Payload Extraction' (Конфигурация и извлечение полезной нагрузки), а первоначальные исследования были сосредоточены на использовании перехватчиков API, предоставляемых библиотекой Microsoft Detours, для захвата распакованных вредоносных полезных нагрузок и конфигурации. Однако стало очевидно, что одних перехватчиков API недостаточно для обеспечения мощности и точности, необходимых для распаковки полезных нагрузок или конфигураций из произвольного вредоносного ПО.

По этой причине началось исследование новой концепции отладчика, позволяющей точно контролировать и инструментировать вредоносное ПО, избегая при этом использования интерфейсов отладки Microsoft, чтобы быть максимально скрытным. Этот отладчик был интегрирован в доказательный концепт инструмента командной строки на основе Detours, объединившись с перехватчиками API и обеспечив очень мощные возможности.

Когда начальная работа показала, что можно заменить Microsoft Detours на движок перехвата API от Cuckoo-modified, родилась идея CAPE Sandbox. С добавлением отладчика, автоматической распаковки, классификации на основе YARA и встроенного извлечения конфигурации, в сентябре 2016 года на 44con, CAPE Sandbox была впервые публично выпущена: CAPE версия 1.

Летом 2018 года проекту повезло увидеть начало огромных вкладов от Андрея «doomedraven» Бруховецкого, давнего участника Cuckoo. В 2019 году он начал гигантскую задачу портирования CAPE на Python 3 и в октябре того же года была выпущена CAPEv2.

CAPE постоянно разрабатывается и улучшается, чтобы идти в ногу с достижениями как в области вредоносного ПО, так и в возможностях операционных систем. В 2021 году была добавлена возможность программировать отладчик CAPE во время детонации с помощью динамических YARA-сканирований, что позволяет создавать динамические обходные пути для методов антипесочницы. Windows 10 стала операционной системой по умолчанию, а другие значительные дополнения включают интерактивный рабочий стол, захват полезной нагрузки AMSI (Anti-Malware Scan Interface), «перехват системных вызовов» на основе Microsoft Nirvana и контрмеры против прямых/косвенных системных вызовов на основе отладчика.

Классификация

image

Вредоносное ПО может быть классифицировано в CAPE с помощью трёх механизмов:

  • YARA-сканирование распакованных полезных нагрузок
  • Suricata-сканирование сетевых захватов
  • Поведенческие сигнатуры, сканирующие вывод перехвата API

Извлечение конфигурации

image

Парсинг может выполняться с использованием собственного фреймворка CAPE, также поддерживаются следующие фреймворки: RATDecoders, DC3-MWCP, MalDuck или MaCo

Особое примечание о фреймворках парсинга конфигурации:

  • Из-за природы вредоносного ПО, которое постоянно меняется при выпуске любой новой версии, что-то может сломаться!
  • Мы рекомендуем использовать фреймворк CAPE, который представляет собой чистый Python с точкой входа def extract_config(data):, которая будет вызвана cape_utils.py, и без каких-либо сложностей.
    • В качестве бонуса вы можете повторно использовать свои извлекатели в других проектах.

Автоматическая распаковка

image

CAPE использует многие методы или поведение вредоносного ПО для захвата распакованных полезных нагрузок:

  • Внедрение в процесс
    • Внедрение шелл-кода
    • Внедрение DLL
    • Подмена процесса (Process Hollowing)
    • Доппельгангер процесса (Process Doppelganging)
  • Извлечение или декомпрессия исполняемых модулей или шелл-кода в памяти

Эти поведения приводят к захвату полезных нагрузок, которые внедряются, извлекаются или декомпрессируются для дальнейшего анализа. Кроме того, CAPE автоматически создаёт дамп процесса для каждого процесса или, в случае DLL, образ модуля DLL в памяти. Это полезно для образцов, упакованных простыми упаковщиками, где часто дамп образа модуля полностью распакован.

В дополнение к стандартным механизмам «пассивной» распаковки CAPE, можно включить «активную» распаковку, которая использует точки останова для обнаружения записи в недавно выделенные или защищённые области памяти, чтобы захватить распакованные полезные нагрузки как можно раньше до начала выполнения. Это включается через флажок в веб-интерфейсе или указанием опции unpacker=2 и по умолчанию отключено, так как может повлиять на качество детонации.

CAPE можно программировать через YARA-сигнатуры для распаковки конкретных упаковщиков. Например, упаковщики типа UPX очень распространены, и хотя в CAPE они приводят к пассивному захвату распакованных полезных нагрузок, захват по умолчанию происходит после того, как распакованная полезная нагрузка начала выполняться. Поэтому, обнаружив упаковщики, производные от UPX, динамически с помощью пользовательской YARA-сигнатуры и установив точку останова на последней инструкции упаковщика, можно захватить полезную нагрузку в её оригинальной точке входа (OEP) до того, как она начала выполняться.

image

image

Опция dump-on-api позволяет выгрузить модуль, когда он вызывает определённую функцию API, которая может быть указана в веб-интерфейсе (например, dump-on-api=DnsQuery_A).

Отладчик

Отладчик позволил CAPE развиваться за пределы своих первоначальных возможностей, которые теперь включают динамические обходы защиты от обхода. Поскольку современное вредоносное ПО часто пытается избежать анализа в песочницах, например, используя временные ловушки для виртуализации или обнаружения перехвата API, CAPE позволяет разрабатывать динамические контрмеры, объединяя действия отладчика внутри YARA-сигнатур для обнаружения уклоняющегося вредоносного ПО во время его детонации и выполняя манипуляции с потоком управления, чтобы заставить образец полностью детонировать или пропустить уклоняющиеся действия.

image image

Быстрый доступ к отладчику возможен с помощью опций отправки bp0 – bp3, принимающих значения RVA или VA для установки точек останова, после чего будет выведена краткая трассировка инструкций, управляемая опциями count и depth (например, bp0=0x1234,depth=1,count=100). image

Чтобы установить точку останова в точке входа модуля, используется ep вместо адреса (например, bp0=ep). Альтернативно, break-on-return позволяет установить точку останова на адресе возврата перехваченного API (например, break-on-return=NtGetContextThread). Необязательный параметр base-on-api позволяет установить базовый образ для точек останова RVA по вызову API (например, base-on-api=NtReadFile,bp0=0x2345).

image

Опции action0 – action3 позволяют выполнять действия при срабатывании точек останова, такие как дамп областей памяти (например, action0=dumpebx) или изменение потока управления выполнением (например, action1=skip). Документация CAPE содержит дополнительные примеры таких действий.

capemon

Репозиторий, содержащий код монитора CAPE, является отдельным.

Сводка обновлений журнал изменений

Вклад сообщества

Существует репозиторий сообщества с сигнатурами, содержащий несколько сотен сигнатур, разработанных сообществом CAPE. Все новые функции сообщества должны отправляться в этот репозиторий. Позже они могут быть перенесены в ядро, если разработчики смогут и захотят их поддерживать.

Пожалуйста, внесите свой вклад в этот проект, помогая создавать новые сигнатуры, парсеры или обходы для дополнительных семейств вредоносного ПО. В настоящее время в работе многое, так что следите за обновлениями.

Огромное спасибо @D00m3dR4v3n за самостоятельный порт CAPE на Python 3.

Рекомендации по установке и скрипты для оптимальной производительности

  • Python3

    • agent.py протестирован с python (3.7.2|3.8) x86. Внутри ВМ следует использовать x86 версию python!
    • хост протестирован с python3 версиями 3.10, 3.12, но более новые версии тоже должны работать
  • Только rooter должен выполняться от root, остальное — от пользователя cape. Запуск от root испортит права доступа.

  1. Ознакомьтесь с документацией и обязательно прочитайте ВСЕ конфигурационные файлы внутри папки conf!
  2. Для наилучшей совместимости мы настоятельно рекомендуем устанавливать на Ubuntu 24.04 LTS и использовать Windows 10 или Windows 11 23H2 в качестве целевой ОС.
  3. kvm-qemu.sh и cape2.sh ДОЛЖНЫ выполняться из сессии tmux, чтобы избежать проблем с ОС при разрыве ssh-соединения.
  4. KVM рекомендуется в качестве гипервизора.
  • Замените <username> на реальный шаблон.
  • Вам нужно заменить все <WOOT> внутри!
  • Прочитайте его! Вы должны понимать, что он делает! В заголовке скрипта есть конфигурация.
  • sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.log
  1. Для установки самой CAPE используйте cape2.sh со всеми оптимизациями
    • Прочитайте и поймите, что он делает! Это не серебряная пуля от всех ваших проблем! В заголовке скрипта есть конфигурация.
    • sudo ./cape2.sh base 2>&1 | tee cape.log
  2. После установки всего сохраните оба журнала установки как золото!
  3. Настройте CAPE, внеся изменения в конфигурационные файлы внутри папки conf.
  4. Перезапустите все службы CAPE, чтобы применить изменения конфигурации и запустить CAPE правильно!
    • Службы CAPE
      • cape.service
      • cape-processor.service
      • cape-web.service
      • cape-rooter.service
      • Чтобы перезапустить любую службу, используйте systemctl restart <имя_службы>
      • Чтобы увидеть журнал службы, используйте journalctl -u <имя_службы>
    • Для отладки любой проблемы остановите соответствующую службу и запустите команду, которая запускает эту службу, вручную, чтобы увидеть больше логов. Проверьте -h для меню помощи. Запуск службы в режиме отладки (-d) также может помочь.
  5. Перезагрузитесь и наслаждайтесь!
  • Все скрипты содержат помощь -h, но, пожалуйста, проверьте скрипты, чтобы понять, что они делают.

Как создать ВМ с помощью virt-manager, см. документацию по конфигурации

  • пошаговое руководство

Основная зависимость виртуальной машины

  • choco.bat

Как обновить

  • CAPE: git pull
  • community: python3 utils/community.py -waf см. -h перед выполнением, чтобы убедиться, что вы понимаете

Как обновиться с большим количеством пользовательских небольших модификаций, которые не могут быть публичными?

С rebase

root@kitploit:~
git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# разрешить конфликты (rebase) при необходимости
git reset HEAD~1

С merge

root@kitploit:~
# убедитесь, что репозиторий kevoreilly добавлен как удалённый (нужно выполнить только один раз)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# убедитесь, что все ваши изменения закоммичены в ветке, в которую вы будете сливать
git commit -a -m '<ваше сообщение коммита>'
# получите изменения из репозитория kevoreilly
git fetch kevoreilly
# слейте ветку master kevoreilly в вашу текущую ветку
git merge kevoreilly/master
# разрешите конфликты слияния, если необходимо
# отправьте в ваш репозиторий, если хотите
git push

Как цитировать эту работу

Если вы используете CAPEv2 в своей работе, пожалуйста, цитируйте её, как указано в меню GitHub «Cite this repository».

Особое примечание о сторонних зависимостях:

  • Они становятся головной болью, особенно те, которые используют pefile, так как каждый фиксирует версию, которую хочет.
    • Наше предложение: клонировать/форкнуть их, удалить зависимость pefile, так как она уже установлена. Вуаля, больше никакой боли.

Документация

  • ReadTheDocs
  • DeepWiki — сгенерировано ИИ, некоторые моменты могут быть неверны, но в целом довольно точно.
Скачать инструмент