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

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

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

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

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

Категории

Все категории
Loading categories
Anvil — Anvil — это инструмент оценки поверхности атаки для толстых клиентских приложений Windows, ориентированный в первую очередь на анализ в рантайме. Он создан для специалистов по тестированию на проникновение и исследователей безопасности, проводящих целевые оценки безопасности приложений. Инструмент охватывает несколько классов атак за один целевой запуск. | Kitploit
Инструменты/GitHubGitHub/shellkraft/anvil
Повышение привилегийРазведкаАнализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеАнализ Бинарных ФайловRed Teaming
GitHubshellkraft/anvil

Anvil

Репозиторий
37445 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Anvil — это инструмент оценки поверхности атаки для толстых клиентских приложений Windows, ориентированный в первую очередь на анализ в рантайме. Он создан для специалистов по тестированию на проникновение и исследователей безопасности, проводящих целевые оценки безопасности приложений. Инструмент охватывает несколько классов атак за один целевой запуск.

Поделиться

logo


Повышение привилегий и оценка поверхности атак для толстых клиентов Windows, основанные на анализе выполнения.

Anvil — это инструмент для повышения привилегий и оценки поверхности атак для толстых клиентов Windows, основанный на анализе выполнения. Вместо слепого сканирования файловой системы он сочетает захват Procmon с Windows AccessCheck, чтобы сообщать только о тех путях, которые наблюдаются во время выполнения и подтверждены как доступные для записи стандартными пользователями, устраняя шум ложных срабатываний, свойственный универсальным инструментам перечисления.


Содержание

  • Ключевые возможности
  • Как это работает
  • Модули
  • Требования
  • Инструменты Sysinternals
  • Установка
  • Распространение
  • Использование
  • Примеры
  • Вывод
  • Модель серьёзности
  • Фильтры
  • Отказ от ответственности

Ключевые возможности

Большинство инструментов для оценки толстых клиентов охватывают один или два класса атак. Anvil построен на идее, что наблюдение во время выполнения, проверка на эксплуатацию через ACL и широкая поверхность атак должны быть объединены в одном целевом запуске — с конвейером проверок, который делает выводы применимыми на практике.

Конвейер от ложных срабатываний

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

Жёсткие проверки

  • Уровень целостности процесса должен быть High или SYSTEM IL
  • Путь не должен находиться внутри System32, SysWOW64 или Program Files
  • Каталог доступен для записи стандартным пользователем — проверка через Windows API AccessCheck

Логические проверки модулей

  • Символическая ссылка: флаги опции (Supersede, OverwriteIf и т.д.) + защита от записи между пользователями
  • COM: CLSID реестра сопоставляется с отсутствующим или доступным для записи путём DLL
  • Бинарный файл: проверка порядка PATH — записываемые записи, стоящие до System32
  • Некавыченный путь: подтверждение, что промежуточные фиктивные каталоги доступны для записи, исключение путей к .sys ядра

Как это работает

  1. Определение цели
    Инструмент определяет путь к исполняемому файлу цели (из --exe, --service или --pid). Если это служба, извлекается ServiceInfo с текущим PID и состоянием.

  2. Захват Procmon

    • Для службы запускается Procmon, затем служба чисто перезапускается (с ожиданием смены состояния). Захватывается новый PID.
    • Для обычного EXE процесс запускается с уровнем целостности Medium (с использованием дублированного токена Explorer) для имитации стандартного пользователя. PID записывается.

    Уровень целостности процесса считывается сразу после запуска (пока процесс жив) и сохраняется в контексте.

  3. Анализ с фильтрами по модулю
    Каждый модуль запрашивает отфильтрованный экспорт CSV из Procmon, используя свой собственный файл .pmc (хранится в filters/). CSV анализируется, и применяется ряд проверок:

    • Целостность ≥ High
    • Путь не находится в защищённом системном каталоге
    • Каталог доступен для записи стандартным пользователем (AccessCheck)
    • Дополнительная логика, характерная для модуля (например, опция для символьных ссылок, корреляция реестр-файл для COM)
  4. Статическая корреляция
    Модуль com выполняет дополнительный статический проход — сканирование целевого бинарного файла на наличие встроенных CLSID и проверку каждого из них против HKLM и HKCU — чтобы выявить возможности перехвата, не проявившиеся во время захвата. Они помечаются тегом .


Architecture

root@kitploit:~
flowchart TB
    %% Phase 1
    subgraph Phase1["Phase 1: Target & Runtime Discovery"]
        TR["Target Resolver<br/>--exe / --service / --pid"] -->
        IL["Integrity Gate<br/>Medium-IL launch / Service restart"] -->
        PM["Procmon Engine<br/>Runtime FS / Reg / Pipe events"]
    end

    %% Phase 2
    subgraph Phase2["Phase 2: Signal Reduction"]
        direction LR
        PF["Per-Module PMC Filters<br/>High-signal traces only"] -->
        CSV["Filtered CSV Export"]
    end

    %% Phase 3
    subgraph Phase3["Phase 3: Exploitability Gates"]
        HG["Hard Gates<br/>High-Integrity target<br/>Not protected path"] -->
        ACL["AccessChk Validation<br/>Writable by standard user"] -->
        LG["Logic Gates<br/>Module-specific rules"]
    end

    %% Phase 4
    subgraph Phase4["Phase 4: Correlation"]
        RT["Runtime Findings"]
        ST["Static Correlation<br/>COM: CLSID binary scan / registry"]
    end

    %% Phase 5
    subgraph Phase5["Phase 5: Reporting"]
        SV["Severity Engine<br/>P1–P5"] --> OUT["Console Output"]
        SV --> JSON["JSON Report"]
        SV --> HTML["HTML Report"]
    end

    %% Cross-phase flow
    PM --> PF
    CSV --> HG
    LG --> RT
    ST -.-> RT
    RT --> SV

    %% Styling
    classDef p1 fill:#0f2a44,stroke:#4cc9f0,color:#e6f1ff
    classDef p2 fill:#2b193d,stroke:#f72585,color:#fde8f3
    classDef p3 fill:#1f2d1c,stroke:#7ae582,color:#eaf7ea
    classDef p4 fill:#3a1f1f,stroke:#ffb703,color:#fff3d6
    classDef p5 fill:#0b2e2a,stroke:#00f5d4,color:#e6fffb

    class Phase1 p1
    class Phase2 p2
    class Phase3 p3
    class Phase4 p4
    class Phase5 p5
    linkStyle default stroke:#9aa4b2,stroke-width:2px

Сравнение



Модули

Все модули, основанные на Procmon, требуют соответствующий файл фильтра .pmc в каталоге filters/ (см. Фильтры).


Требования

Python

  • Python 3.8 или новее
  • Должен запускаться от Администратора
  • Windows 10 / Server 2016 или новее

Пакеты Python

Anvil самостоятельно устанавливает свои две зависимости при первом запуске. Вы также можете установить их вручную:

root@kitploit:~
pip install rich pefile
root@kitploit:~
pip install rich>=13.0 pefile>=2023.2.7

Инструменты Sysinternals

Anvil использует три бинарных файла Sysinternals.

Порядок разрешения

При каждом запуске Anvil разрешает каждый инструмент в следующем порядке приоритета:

  1. Явный флаг — --procmon, --handle или --accesschk (см. ниже)
  2. Кэш реестра — HKCU\Software\Anvil (записывается при первом успешном разрешении)
  3. PATH — стандартный поиск с помощью where
  4. Автозагрузка — загружается с live.sysinternals.com и сохраняется в %LOCALAPPDATA%\Anvil\sysinternals\

После разрешения инструмента любым способом его путь записывается в кэш реестра. Последующие запуски пропускают шаги 1–3 и сразу используют кэшированный путь.

Ошибка загрузки

Если инструмент не может быть загружен (нет интернета, брандмауэр или прокси), Anvil выводит структурированную ошибку и немедленно завершает работу. Отображается сообщение с перечислением отсутствующих инструментов и флагом, который следует использовать.

Предоставление бинарных файлов вручную

Укажите путь к любому бинарному файлу через его флаг. Anvil скопирует его в %LOCALAPPDATA%\Anvil\sysinternals\ и запишет путь в кэш реестра — после первого запуска флаг больше никогда не понадобится.

root@kitploit:~
python anvil.py --exe "C:\App\target.exe" --procmon   "D:\Tools\Procmon64.exe" --handle    "D:\Tools\handle.exe" --accesschk "D:\Tools\accesschk.exe"

Установка

root@kitploit:~
# Клонируйте репозиторий
git clone https://github.com/shellkraft/Anvil.git
cd Anvil

# Запуск — зависимости установятся автоматически при первом сканировании
python.exe anvil.py

Совет: Всегда запускайте терминал с правами Администратора перед запуском Anvil.


Распространение

Компиляция в автономный исполняемый файл

Требует PyInstaller (pip install pyinstaller):

root@kitploit:~
python -m PyInstaller --onefile --console --add-data "filters;filters" --add-data "modules/logo.png;." --icon .\modules\logo.ico --name Anvil anvil.py

Выходной бинарный файл будет находиться в dist\Anvil.exe. Установка Python на целевой машине не требуется.

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

Готовый бинарный файл

Готовый Anvil.exe доступен на странице Релизов — если доверие случайным бинарным файлам из интернета вписывается в вашу модель угроз.

ВерсияSHA-256VirusTotal
V1.0.00ecf5a62...4/72

SHA-256 можно проверить с помощью certutil -hashfile Anvil.exe SHA256 (Windows) или sha256sum Anvil.exe (Linux).


Использование

root@kitploit:~
python anvil.py [--exe PATH | --service NAME | --pid PID] [options]

Цель (обязательно одна)

ФлагОписание
--exe PATHЦелевой исполняемый файл. Запускается с Medium IL для захвата Procmon.
--service NAMEИмя службы Windows. EXE определяется из реестра; служба перезапускается для захвата запуска.
--pid PIDПодключиться к уже запущенному процессу. Procmon захватывает текущую активность.

Выбор модулей

ФлагПо умолчаниюОписание
--modules LISTallСписок модулей для запуска через запятую.

Имена модулей: dll, com, registry, binary, configs, installdir, memory, symlink, unquoted, pesec, pipes

Пути Sysinternals

Захват

ФлагПо умолчаниюОписание
--procmon-runtime SEC30Окно захвата Procmon в секундах. Увеличьте для медленно запускающихся приложений.

Вывод


Примеры

Базовое сканирование настольного приложения:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --report report.html

Более длинное окно захвата для медленно запускающегося приложения:

root@kitploit:~
python anvil.py --exe "C:\Program Files\MyApp\myapp.exe" --procmon-runtime 60 --scan-install-dir

Цель — служба Windows:

root@kitploit:~
python anvil.py --service MyAppSvc --modules dll,binary,unquoted,registry

Подключение к уже запущенному процессу:

root@kitploit:~
python anvil.py --pid 4872 --report report.html --verbose

Запуск только определённых модулей:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules dll,symlink,unquoted

Сканирование памяти процесса на дополнительные пользовательские строки:

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --modules memory --memory-strings "InternalSecret,DevPassword"

Изолированная машина — предоставить Sysinternals вручную (копируется один раз):

root@kitploit:~
python anvil.py --exe "C:\App\app.exe" --procmon "E:\Sysint\Procmon64.exe" --handle "E:\Sysint\handle.exe" --accesschk "E:\Sysint\accesschk.exe"

Вывод

Терминал

Цветовая кодировка по серьёзности с опциональными блоками деталей при --verbose. Требуется пакет rich (устанавливается автоматически).

Image

JSON (--report findings.json)

Машиночитаемый массив объектов находок:

root@kitploit:~
[
  {
    "severity": "P1",
    "module": "DLL Hijacking",
    "message": "[System→User] Phantom DLL: version.dll",
    "detail": "DLL name   : version.dll\nAttempted  : C:\\ProgramData\\MyApp\\version.dll\n..."
  }
]

HTML (--report report.html) [Рекомендуется]

Автономный однофайловый отчёт с:

  • Исполнительным резюме и разбивкой по серьёзности
  • Таблицами находок по модулям
  • Фильтрацией по серьёзности или классу уязвимости
  • Полными деталями при раскрытии
  • Метаданными сканирования (цель, временные метки, уровень целостности)
Image

Модель серьёзности


Фильтры

Все файлы фильтров .pmc включены в каталог filters/ репозитория — настройка не требуется. Модули на базе Procmon подхватят их автоматически.

Пересоздание фильтра

Если файл фильтра потерян или повреждён, пересоздайте его в Procmon, используя указанные выше правила: Filter → Filter… для настройки условий, затем File → Export Configuration… и сохраните в filters/<name>.pmc.

Anvil автоматически подхватит файл .pmc при следующем запуске этого модуля.


Отказ от ответственности

Anvil предназначен для исследований в области безопасности, охоты за багами и авторизованных тестов на проникновение. Используйте его только на системах, которые вам принадлежат или на которые у вас есть явное письменное разрешение.

Эксплуатационные замечания

  • Anvil перезапускает службы во время захвата — это кратковременно прерывает целевую службу на проверяемой машине.
  • Модуль памяти подключается к живому процессу; убедитесь, что это допустимо в целевой среде перед запуском.
  • Требуется запуск от Администратора — убедитесь, что это соответствует правилам взаимодействия для оценки.
Скачать инструмент
[Static Correlation]
  • Формирование отчёта
    Результаты выводятся в терминал (с цветовой кодировкой) и, при необходимости, записываются в JSON или автономный HTML-отчёт.

  • ВозможностьAnviLSpartacusRobberwinPEASProcmon
    Автоматическое обнаружение✅✅✅✅❌
    Обнаружение на основе выполнения✅❌❌❌✅
    Обнаружение фантомных DLL✅✅❌❌◐
    Анализ с учётом порядка поиска✅❌❌❌❌
    Проверка возможности записи на основе ACL✅ (AccessChk)◐◐Basic❌
    Фильтрация сигналов по модулям✅ (.pmc filters)❌❌❌❌
    Устранение ложных срабатываний (конвейер проверок)✅❌❌❌❌
    Перезапуск службы и повторный захват PID✅❌❌❌❌
    Имитация пользователя с Medium IL✅❌❌❌❌
    Хайджекинг DLL (с учётом толстых клиентов)✅❌❌◐❌
    Корреляция хайджекинга COM✅❌❌❌❌
    Анализ ACL именованных каналов / олицетворения✅❌❌❌❌
    Обнаружение атак на символьные ссылки / соединения✅❌◐◐❌
    Секреты в памяти (сканирование живого процесса)✅❌❌◐❌
    Анализ безопасности / обхода защиты PE✅❌❌◐❌
    Оценка повышения привилегий (не эксплуатация)✅✅✅❌❌
    Автоматизированная эксплуатация❌✅✅❌❌
    Оценка достоверности / серьёзности✅ (P1–P5)❌❌❌❌
    Анализ конкретной цели (exe / svc / pid)✅❌❌❌✅
    Структурированные отчёты (JSON / HTML)✅❌❌TXT❌
    Самостоятельный бинарный дистрибутив✅✅✅✅✅
    МодульФлагЧто проверяется
    Хайджекинг DLLdllСобытия CreateFile для .dll — фантомные DLL и загруженные DLL в записываемых каталогах
    Хайджекинг COMcomКлючи реестра COM-сервера, доступные для записи стандартным пользователям; бинарное сканирование ProgID
    Хайджекинг бинарных файловbinaryСобытия CreateFile для .exe — подкладывание фантомных EXE и каталоги с записываемыми EXE
    Небезопасные конфигурацииconfigsДоступ к файлам конфигурации (.ini, .xml, .json, .yaml и т.д.) из записываемых каталогов
    Каталог установкиinstalldirКорневой ACL, EXE с манифестом повышения и записываемые подкаталоги
    Строки в памятиmemoryСканирование памяти живого процесса на предмет учётных данных, токенов, ключей API, JWT, строк подключения
    Атаки на символьные ссылкиsymlinkВекторы соединений и символьных ссылок в записываемых путях temp / appdata
    Некавыченный путь службыunquotedСлужбы с некавыченными ImagePaths, где промежуточные фиктивные каталоги доступны для записи
    Повышение через реестрregistryКлючи реестра, доступные для записи стандартным пользователям, управляющие поведением службы/приложения
    Флаги безопасности PEpesecОтсутствие ASLR, DEP, CFG, SafeSEH и Authenticode на целевых бинарных файлах
    ACL именованных каналовpipesИменованные каналы с разрешительными DACL или ACE, допускающими олицетворение
    Бинарный файлИспользуется модулемЗагрузка
    Procmon64.exeВсе модули на базе ProcmonProcessMonitor.zip
    handle.exeМодуль ACL именованных каналовHandle.zip
    accesschk.exeМодуль ACL именованных каналов — перечисление DACL каналовAccessChk.zip
    ФлагОписание
    --procmon PATHПуть к Procmon64.exe. Копируется в %LOCALAPPDATA%\Anvil\sysinternals\
    --handle PATHПуть к handle.exe. Копируется в %LOCALAPPDATA%\Anvil\sysinternals\
    --accesschk PATHПуть к accesschk.exe. Копируется в %LOCALAPPDATA%\Anvil\sysinternals\
    ФлагПо умолчаниюОписание
    --report FILE—Создать отчёт — расширение определяет формат: .json для JSON, .html (или любое другое) для автономного HTML-отчёта.
    --verboseвыклВыводить полные блоки с деталями находок в терминале.
    --no-colorвыклОтключить цветной вывод ANSI.
    --skip-authenticodeвыклПропустить проверку подписей Authenticode (быстрее для больших каталогов установки).
    --scan-install-dirвыклВключить все DLL в каталоге установки в проверки безопасности PE.
    --memory-strings STR,...—Дополнительные строки для поиска в памяти процесса (через запятую).
    УровеньМеткаТипичный CVSSЗначение
    P1Критический8.0 – 8.8Автоматически срабатывающее повышение привилегий (без действий пользователя)
    P2Высокий7.0 – 7.9Эксплуатируется с взаимодействием пользователя или более слабым триггером
    P3Неверная конфигурация4.0 – 6.9Некавыченные пути, отсутствие средств защиты — напрямую не эксплуатируется
    P4Низкое влияние0.1 – 3.9Информационные векторы с ограниченным реальным влиянием
    P5ИнформационныйN/AКонтекст и наблюдения, не являющиеся уязвимостями
    ФайлМодульКлючевые правила фильтра
    filters/dll.pmcХайджекинг DLLOperation is CreateFile, Path ends with .dll
    filters/binary.pmcХайджекинг бинарных файловOperation is CreateFile, Path ends with .exe
    filters/config.pmcНебезопасные конфигурацииOperation is CreateFile (фильтр расширений в коде)
    filters/com.pmcХайджекинг COMOperation is RegQueryKey, Path contains HKLM
    filters/symlink.pmcАтаки на символьные ссылкиOperation is CreateFile