Этот скрипт направлен на выявление локальных уязвимостей эскалации привилегий (LPE), которые обычно связаны с проблемами конфигурации Windows или плохими практиками. Он также может собрать полезную информацию для некоторых задач по эксплуатации и после эксплуатации.
После загрузки сценария и копирования его на целевой машине Windows запустите его, используя одну из приведенных ниже команд.
Примечание
Вам не нужно клонировать весь репозиторий. Файл PrivescCheck.ps1 - это автономный сценарий PowerShell, который содержит весь код, необходимый PrivescCheck для запуска.
Важный
В приведенных ниже командах первое . (DOT) используется для «точечного поиска» сценария, так что функции и командлеты могут использоваться в текущей области (см. Функцию SOURSHELL Dot Sourcing).
Быстро выявить важные вопросы, такие как уязвимости эскалации местных привилегий.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck "Определите важные вопросы, но также собирайте дополнительную информацию и сохраните результаты, чтобы сообщать о файлах, которые легко читать.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML "Выполните расширенные проверки и проверки аудита, а также сохраните результаты для читаемых на людях отчетов, а также машиночитаемых файлов, которые впоследствии можно анализировать для автоматизированного генерации отчетов.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML " Все чеки, реализованные в PrivesCcheck, имеют тип . Это значение и флаги, указанные в командной строке, будут определять, запускаются ли они или нет.
Проверки Base типа всегда будут выполняться, если сценарий не будет запущен в качестве администратора. Они в основном предназначены для выявления уязвимостей по эскалации привилегий или других важных вопросов.
Проверки типа Extended могут быть выполнены только в том случае, если в командной строке указана опция -Extended . Они в основном предназначены для предоставления дополнительной информации, которая может быть полезна для развития эксплойта или после эксплуатации.
Проверки Audit типа могут быть выполнены только в том случае, если в командной строке указана опция -Audit . Они в основном предназначены для предоставления информации, которая соответствует актуальной в контексте аудита конфигурации.
Проверки типа Experimental могут быть выполнены только в том случае, если в командной строке указана опция -Experimental . Это нестабильные проверки, которые нуждаются в дальнейшей работе. Используйте их с осторожностью.
По умолчанию политика выполнения PowerShell настроена на Restricted клиентов и RemoteSigned на серверах, когда начинается новый процесс powershell.exe . Эти политики блокируют выполнение (без знаковых) сценариев, но они могут быть переопределены в рамках текущего действия следующим образом.
Set-ExecutionPolicy Bypass - Scope Process - Force
. .PrivescCheck.ps1Тем не менее, этот трюк не работает, когда политика выполнения осуществляется через ГПО. В этом случае, после начала нового сеанса PowerShell, вы можете загрузить сценарий следующим образом.
Get-Content .PrivescCheck.ps1 | Out-String | Invoke-ExpressionОбщий способ обойти ограниченный языковой режим состоит в начале версии PowerShell версии 2, поскольку он не реализует эту защиту. Следовательно, значительная часть усилий по разработке входит в поддержание этой совместимости.
Примечание
Хотя PowerShell версия 2 по -прежнему включена по умолчанию на недавних версиях Windows, она не может работать без версии .NET Framework версии 2.0, которая требует ручной установки.
Если вы запустите этот скрипт в сеансе счетчика, вы, вероятно, получите ошибку «тайм -аут». Metasploit имеет значение «тайм -аут ответа», которое по умолчанию установлено на 15 секунд, но этот скрипт занимает гораздо больше времени для работы в большинстве сред.
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 (документация). В следующем примере для сеанса установлен тайм -аут 2 минуты с ID 1 .
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"