
PowerShell Runspace Инструментарий для пост-эксплуатации
PowerShell Runspace Post Exploitation Toolkit
Версия: 2.6 Лицензия: BSD 3-Clause
p0wnedShell — это враждебное хост-приложение PowerShell, написанное на C#, которое не полагается на powershell.exe, а выполняет команды и функции PowerShell в среде выполнения runspace (.NET). Оно включает множество враждебных модулей PowerShell и бинарников, чтобы упростить процесс пост-эксплуатации. Мы попытались создать «всё в одном» инструмент пост-эксплуатации, который можно использовать для обхода всех средств защиты (или хотя бы некоторых) и который включает все необходимые инструменты. Вы можете использовать его для проведения современных атак в среде Active Directory и повышения осведомлённости вашей Blue Team, чтобы они могли построить правильные стратегии защиты.
Чтобы скомпилировать p0wnedShell, откройте этот проект в Microsoft Visual Studio и соберите его для платформы x64/x86. Вы можете изменить следующие параметры AutoMasq перед компиляцией:
public static bool AutoMasq = true;
public static string masqBinary = @"C:\Windows\Notepad.exe";
Если AutoMasq установлен в false, просто запустите исполняемый файл — он будет работать в обычном режиме. Если AutoMasq включён, вы можете переименовать исполняемый файл p0wnedShell в имя процесса, под который вы маскируетесь (masqBinary), чтобы он имел вид этого процесса (например, notepad.exe).
Используя опциональный аргумент командной строки "-parent", вы можете запустить p0wnedShell с другим идентификатором родительского процесса. Комбинируя опцию маскировки PEB и другой идентификатор родительского процесса (например, svchost), вы можете придать p0wnedShell вид легитимного сервиса ;)
Примечание: запуск p0wnedShell с другим идентификатором родительского процесса пока не работает из сессии Meterpreter/shell... пока!
Изменение идентификатора родительского процесса также можно использовать для порождения процесса p0wnedShell с привилегиями системы,
например, используя lsass в качестве родительского процесса.
Для этого вам потребуются права администратора с повышенным UAC.
C:\p0wnedShell>p0wnedShellx64.exe -parent
[+] Пожалуйста, введите допустимое имя родительского процесса.
[+] Например: C:\p0wnedShell\p0wnedShellx64.exe -parent svchost
C:\p0wnedShell>p0wnedShellx64.exe -parent lsass
Для запуска в виде x86 бинарника и обхода Applocker (автор этого отличного обхода — Casey Smith, он же subTee):
cd \Windows\Microsoft.NET\Framework\v4.0.30319 (или папка с более новой версией .NET)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx86.exe
Для запуска в виде x64 бинарника и обхода Applocker:
cd \Windows\Microsoft.NET\Framework64\v4.0.30319 (или папка с более новой версией .NET)
InstallUtil.exe /logfile= /LogToConsole=false /U C:\p0wnedShell\p0wnedShellx64.exe
Функции PowerShell в пределах Runspace загружаются в память из Base64-закодированных и сжатых строк.
Бинарники загружаются в память с помощью ReflectivePEInjection (массивы байтов сжимаются с помощью Gzip и сохраняются внутри p0wnedShell как Base64-закодированные строки).
p0wnedShell во многом основан на инструментах и знаниях таких людей, как harmj0y, ребята из Powersploit, Sean Metcalf, SubTee, Nikhil Mittal, Besimorhino, Benjamin Delpy, Breenmachine, FoxGlove Security, Kevin Robertson, FuzzySecurity, James Forshaw и всех остальных, кого я забыл. Поэтому им огромное спасибо, а также нашим друзьям из Редмонда за предоставление очень мощного хакерского языка.
Чтобы сообщить об ошибке или запросить функцию, свяжитесь со мной по адресу:
Cornelis at dePlaa.com или @Cn33lis