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

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

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

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

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

Категории

Все категории
Loading categories
PrivescCheck — Скрипт для перечисления путей повышения привилегий в Windows | Kitploit
Инструменты/GitHubGitHub/itm4n/privesccheck
Повышение привилегийАнализ уязвимостейАудит конфигурацииСбор информацииПост-эксплуатацияТестирование на ПроникновениеТоп в Пост-эксплуатация №16Топ в Повышение привилегий №2
GitHubitm4n/privesccheck
3.9k5071867 ч 48 мин назадПроверено Kitploit

Популярное

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

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

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

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

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

PrivescCheck

Скрипт для перечисления путей повышения привилегий в Windows

Репозиторий

PrivescCheck

Быстрое выявление распространённых Windows уязвимостей и проблем конфигурации, которые не всегда покрываются публичными стандартами безопасности, а также сбор полезной информации для задач эксплуатации и пост-эксплуатации.

[!IMPORTANT] Важный аспект, о котором следует помнить при использовании этого инструмента: все проверки контроля доступа выполняются в контексте текущего пользователя. Поэтому, если скрипт запущен с правами администратора, многие проверки уязвимостей фактически пропускаются, чтобы избежать ложных результатов.

🚀 Быстрый старт

Скачайте скрипт здесь: PrivescCheck.ps1

[!TIP] Ссылку выше также можно использовать непосредственно в терминале PowerShell с помощью (New-Object Net.WebClient).DownloadString(...).

Вариант использования 1 (Пентест): Выполнить только базовые проверки

Есть ли очевидный способ повысить привилегии локально?

root@kitploit:~
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck"

Вариант использования 2 (Исследование): Выполнить расширенные проверки + создать отчёты в читаемом формате

Есть ли дополнительная информация, которую можно использовать для пост-эксплуатации или для поиска уязвимостей в стороннем ПО?

root@kitploit:~
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML"

Вариант использования 3 (Аудит): Выполнить все проверки + создать все отчёты

Есть ли проблемы конфигурации, которые не покрываются распространёнными стандартами безопасности?

root@kitploit:~
powershell -ep bypass -c ". .\PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML"

📖 Подробное использование

root@kitploit:~
Invoke-PrivescCheck [-Extended] [-Audit] [-Experimental] [-Report <PREFIX>]
    [-Format <FORMAT>[,...]] [-Risky] [-Silent] [-Force]

    -Extended
        Включить в сканирование все проверки типа "extended" (см. README).

    -Audit
        Включить в сканирование все проверки типа "audit".

    -Experimental
        Включить в сканирование все проверки типа "experimental". Используйте
        только если вы знаете, что делаете.

    -Report <PREFIX>
        Создать по крайней мере один файл отчёта. По умолчанию имя выходного
        файла будет "PREFIX.txt". Расширение добавляется автоматически
        в зависимости от формата отчёта (см. "-Format <FORMAT>[,...]").

    -Format <FORMAT>[,...]
        Указать формат выходного файла(ов) отчёта. Если не задано, значение
        по умолчанию — "TXT". Поддерживаемые форматы: "TXT", "HTML", "CSV"
        и "XML".

    -Risky
        Включить проверки, помеченные как "рискованные", т.е. проверки,
        которые, вероятно, вызовут блокирующее действие со стороны решения
        для защиты конечных точек. Используйте с осторожностью.

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

    -Force
        Принудительное выполнение и игнорирование предупреждений. Обычно
        скрипт останавливается, если он выполняется с правами администратора.
        Используйте эту опцию, чтобы выполнить его в любом случае.

Формат отчёта > TXT (-Format TXT)

Используйте опцию -Report <PREFIX> (с -Format TXT), чтобы указать, что вы хотите создать отчёт в виде обычного текста. Вывод аналогичен тому, что вы видите в терминале, за исключением того, что он содержит только ASCII-символы для лучшей (ретро-)совместимости со всеми текстовыми редакторами.

Скриншот отчёта в виде обычного текста, созданного PrivescCheck

Формат отчёта > HTML (-Format HTML)

Используйте опцию -Report <PREFIX> с -Format HTML, чтобы указать, что вы хотите создать HTML-отчёт. Выходной файл можно открыть в веб-браузере. Он более удобен для визуализации данных, чем отчёт в виде обычного текста. Кроме того, он предлагает возможности сортировки и фильтрации!

Скриншот HTML-отчёта, созданного PrivescCheck

Формат отчёта > CSV (-Format CSV) и XML (-Format XML)

Используйте опцию -Report <PREFIX> с -Format CSV или -Format XML, чтобы указать, что вы хотите создать отчёт в формате CSV или XML. Выходной файл предназначен для упрощения разбора результатов автоматизированными инструментами создания отчётов.

[!NOTE] Хотя формат вывода не документирован (пока), вы можете легко разобраться в нём, проанализировав структуру уже созданного файла. Вы можете использовать значение Id каждой проверки для их уникальной идентификации.

Тип проверки > Base

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

Тип проверки > Extended (-Extended)

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

Тип проверки > Audit (-Audit)

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

💡 Советы и хитрости

Политика выполнения PowerShell

По умолчанию политика выполнения PowerShell установлена в значение Restricted на клиентах и RemoteSigned на серверах при запуске нового процесса powershell.exe. Эти политики блокируют выполнение (неподписанных) скриптов, но их можно переопределить в текущей области следующим образом.

root@kitploit:~
Set-ExecutionPolicy Bypass -Scope Process -Force
. .\PrivescCheck.ps1

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

root@kitploit:~
Get-Content .\PrivescCheck.ps1 | Out-String | Invoke-Expression

PowerShell версии 2

Распространённый способ обойти Constrained Language Mode заключается в использовании PSv2, поскольку он не реализует эту защиту. Поэтому значительная часть усилий по разработке направлена на поддержание этой ретро-совместимости.

[!NOTE] Хотя PowerShell версии 2 всё ещё включён по умолчанию в последних версиях Windows (Удаление PowerShell 2.0 из Windows), он не может работать без .Net framework версии 2.0, который требует ручной установки.

Таймаут Metasploit

Если вы запускаете этот скрипт в сеансе Meterpreter, вы, скорее всего, получите ошибку "timeout". Это связано с тем, что Metasploit использует значение таймаута по умолчанию 15 секунд, чего недостаточно для завершения типичного выполнения скрипта.

root@kitploit:~
meterpreter > load powershell
Loading extension powershell...Success.
meterpreter > powershell_import /local/path/to/PrivescCheck.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_execute "Invoke-PrivescCheck"
[-] Error running command powershell_execute: Rex::TimeoutError Operation timed out.

Можно задать другое значение таймаута с помощью опции -t команды sessions (документация). В следующем примере для сеанса с ID 1 установлен таймаут 2 минуты, но вы можете захотеть задать ещё большее значение.

root@kitploit:~
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"

🏗️ Сборка

Обновление данных

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

root@kitploit:~
powershell -ep bypass ". .\build\Build.ps1; Update-LolDriverFile"

Сборка скрипта

Сборка скрипта так же проста, как выполнение команды ниже. Выходной файл будет сохранён в папке .\dist\.

root@kitploit:~
powershell -ep bypass ". .\build\Build.ps1; Invoke-Build -Name PrivescCheck"

Скрипт сборки использует генератор псевдослучайных чисел со случайно сгенерированным зерном для выбора имени переменной для каждого модуля. Если вы хотите получать воспроизводимые результаты между сборками, вы можете повторно использовать ранее сгенерированное зерно с помощью опции -NoNewSeed.

root@kitploit:~
powershell -ep bypass ". .\build\Build.ps1; Invoke-Build -Name PrivescCheck -NoNewSeed"

Скрипт сборки использует AES-шифрование со случайно сгенерированным ключом для обфускации содержимого каждого модуля. Если вы хотите получать воспроизводимые результаты между сборками, вы можете повторно использовать ранее сгенерированный ключ с помощью опции -NoNewKey.

root@kitploit:~
powershell -ep bypass ". .\build\Build.ps1; Invoke-Build -Name PrivescCheck -NoNewKey"

📑 Благодарности

  • Список слов — CBHue/PyFuscation
  • Список известных уязвимых драйверов — https://www.loldrivers.io/
Скачать инструмент