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

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

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

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

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

Категории

Все категории
Loading categories
ALPC-Enumerator — Инструмент пользовательского режима Windows для перечисления и классификации портов ALPC, включая процессы, защищённые PPL. | Kitploit
Инструменты/GitHubGitHub/talha-nazeef-ahmed/alpc-enumerator
РазведкаАнализ уязвимостейОбратная инженерияСбор информацииАнализ вредоносных программЦифровая криминалистикаRed Teaming
GitHubtalha-nazeef-ahmed/alpc-enumerator

Популярное

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

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

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

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

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

ALPC-Enumerator

Инструмент пользовательского режима Windows для перечисления и классификации портов ALPC, включая процессы, защищённые PPL.

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

Перечислитель ALPC-портов с учётом PPL

Инструмент пользовательского режима Windows для перечисления и классификации портов Advanced Local Procedure Call (ALPC), включая порты, принадлежащие процессам PPL (Protected Process Light), для которых стандартное дублирование дескрипторов не работает.

Стандартные инструменты перечисления часто полностью пропускают защищённые порты или порты с запретом доступа, создавая слепые зоны. Этот инструмент динамически определяет индекс типа объекта ALPC Port и при необходимости использует NtQueryInformationProcess для точной классификации портов, отклоняющих стандартные запросы на дублирование.

Варианты практического применения

Этот инструмент устраняет слепые зоны в стандартном перечислении IPC Windows для двух основных категорий пользователей:

  • Охота за угрозами и DFIR: Вредоносное ПО, взаимодействующее через ALPC, может перехватывать или запрещать доступ PROCESS_DUP_HANDLE, чтобы скрыть свою активность. Стандартные инструменты молча отбрасывают такие порты. Этот инструмент фиксирует сбой и вместо этого запрашивает структуру PS_PROTECTION. Если процесс запрещает доступ, но возвращает Type и Signer равными 0 (None), это не легитимный процесс Windows PPL — это крайне аномально, и его следует пометить для немедленного расследования.
  • Исследование уязвимостей: Точное картирование недокументированной поверхности атак RPC/ALPC требует абсолютной точности. Опора только на дублирование дескрипторов гарантированно приводит к пропуску наиболее привилегированных (и наиболее ценных) целей в системе.

Сводка выполнения и необработанные данные

Во время тестирования на реальной системе Windows инструмент обработал 58 916 открытых дескрипторов и выделил 2 618 портов ALPC:

  • 52 защищённых порта
  • 260 именованных портов
  • 346 портов, именованных путями
  • 1 960 анонимных портов

Необработанный вывод: Полный нефильтрованный вывод этого запуска доступен в alpc_enumerator_output.txt.

Примечание об анонимных портах: Вывод анонимных портов в консоль по умолчанию отключён в main.cpp, чтобы не раздувать вывод терминала тысячами записей. Если вам требуется вывод анонимных портов в реальном времени, раскомментируйте checkEntriesVectorForPrint(anonEntries, "Anonymous"); в строке ~451 перед компиляцией.

Проверка на уровне ядра

Чтобы доказать точность перечисления в пользовательском режиме, вывод инструмента был вручную сверен с отладчиком ядра Windows (WinDbg). Адреса объектов и уровни Signer PPL точно совпадают с данными ядра.

  • См. VERIFICATION.md для наглядного доказательства.
  • См. alpc_verification_log.txt для необработанного журнала сеанса WinDbg.

Сборка и запуск

  1. Откройте main.cpp в Visual Studio или скомпилируйте через MSVC.
  2. Соберите в режиме Release (x64).
  3. Запустите от имени администратора (требуется привилегия SeDebugPrivilege).

Технический подход

Вместо жёсткого кодирования индекса типа объекта ALPC (который ломается между сборками Windows) инструмент создаёт одноразовый порт ALPC и динамически запрашивает его тип, чтобы определить правильный индекс для хост-системы (например, индекс 46). Когда стандартное дублирование дескрипторов не срабатывает, он декодирует PS_PROTECTION, чтобы извлечь точные Type и Signer, необходимые для классификации портов без опоры на права доступа.

Полный технический разбор доступен по ссылке на Medium: https://medium.com/@sphinx_321/userland-alpc-enumeration-dynamic-ppl-aware-approach-283541194102

Будьте в курсе обновлений

Этот инструмент является частью моих текущих исследований ALPC/RPC и внутреннего устройства Windows. В ближайшем будущем я опубликую новые результаты и выпущу сопутствующие инструменты. Если вы нашли это полезным, подпишитесь на меня на GitHub или в моих социальных сетях ниже, чтобы узнавать о будущих публикациях.

Twitter LinkedIn

Лицензия

MIT

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