Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/powershellmafia/powersploit
Privilege EscalationReconnaissancePayload GenerationPersistence MechanismsLateral MovementShellcodePost-ExploitationPenetration TestingArchived
GitHubpowershellmafia/powersploit

PowerSploit

PowerSploit - A PowerShell Post-Exploitation Framework

Репозиторий
13.1k4.7k6 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Этот проект больше не поддерживается

PowerSploit — это набор модулей Microsoft PowerShell, которые могут использоваться для помощи тестировщикам на проникновение на всех этапах оценки. PowerSploit состоит из следующих модулей и скриптов:

Выполнение кода

Выполнение кода на целевой машине.

Invoke-DllInjection

Внедряет DLL в идентификатор процесса по вашему выбору.

Invoke-ReflectivePEInjection

Рефлексивно загружает Windows PE-файл (DLL/EXE) в процесс PowerShell или рефлексивно внедряет DLL в удаленный процесс.

Invoke-Shellcode

Внедряет шелл-код в идентификатор процесса по вашему выбору или локально в PowerShell.

Invoke-WmiCommand

Выполняет блок скрипта PowerShell на целевом компьютере и возвращает его форматированный вывод, используя WMI в качестве канала C2.

Модификация скриптов

Изменение и/или подготовка скриптов к выполнению на скомпрометированной машине.

Out-EncodedCommand

Сжимает, кодирует в Base-64 и генерирует вывод командной строки для полезной нагрузки скрипта PowerShell.

Out-CompressedDll

Сжимает, кодирует в Base-64 и выводит сгенерированный код для загрузки управляемой DLL в память.

Out-EncryptedScript

Шифрует текстовые файлы/скрипты.

Remove-Comment

Удаляет комментарии и лишние пробелы из скрипта.

Персистентность

Добавление возможностей персистентности в скрипт PowerShell

New-UserPersistenceOption

Настройка параметров персистентности на уровне пользователя для функции Add-Persistence.

New-ElevatedPersistenceOption

Настройка параметров персистентности с повышенными привилегиями для функции Add-Persistence.

Add-Persistence

Добавление возможностей персистентности в скрипт.

Install-SSP

Установка DLL поставщика поддержки безопасности (SSP).

Get-SecurityPackages

Перечисление всех загруженных пакетов безопасности (SSP).

Обход антивируса

Антивирус бессилен против PowerShell!

Find-AVSignature

Поиск одно-байтовых сигнатур антивируса тем же методом, что и DSplit из "class101".

Экфильтрация

Все ваши данные принадлежат мне!

Invoke-TokenManipulation

Выводит список доступных токенов входа. Создает процессы с токенами входа других пользователей и имитирует токены входа в текущем потоке.

Invoke-CredentialInjection

Создание сеансов входа с использованием учетных данных в открытом виде без генерации подозрительного события 4648 (явный вход с учетными данными).

Invoke-NinjaCopy

Копирует файл с раздела NTFS путем чтения необработанного тома и разбора структур NTFS.

Invoke-Mimikatz

Рефлексивно загружает Mimikatz 2.0 в память с помощью PowerShell. Может использоваться для дампа учетных данных без записи чего-либо на диск. Может использоваться для любой функциональности, предоставляемой Mimikatz.

Get-Keystrokes

Записывает нажатые клавиши, время и активное окно.

Get-GPPPassword

Извлекает пароль в открытом виде и другую информацию для учетных записей, распространяемых через групповые политики.

Get-GPPAutologon

Извлекает имя пользователя и пароль для автоматического входа из registry.xml, если они распространяются через групповые политики.

Get-TimedScreenshot

Функция, которая делает снимки экрана через регулярные промежутки времени и сохраняет их в папку.

New-VolumeShadowCopy

Создает новую теневую копию тома.

Get-VolumeShadowCopy

Выводит пути устройств всех локальных теневых копий томов.

Mount-VolumeShadowCopy

Монтирует теневую копию тома.

Remove-VolumeShadowCopy

Удаляет теневую копию тома.

Get-VaultCredential

Отображает объекты учетных данных хранилища Windows, включая веб-учетные данные в открытом виде.

Out-Minidump

Генерирует полный дамп памяти процесса в формате minidump.

Get-MicrophoneAudio

Записывает аудио с системного микрофона и сохраняет на диск.

Хаос

Вызов общего хаоса с помощью PowerShell.

Set-MasterBootRecord

Доказательство концепции, которое перезаписывает главную загрузочную запись сообщением по вашему выбору.

Set-CriticalProcess

Вызывает синий экран на вашей машине при выходе из PowerShell.

Повышение привилегий

Инструменты для помощи в повышении привилегий на целевой системе.

PowerUp

Обширный набор общих проверок на повышение привилегий, а также некоторые векторы атак.

Разведка

Инструменты для помощи на этапе разведки при тестировании на проникновение.

Invoke-Portscan

Выполняет простой сканер портов с использованием обычных сокетов, основанный (довольно) свободно на nmap.

Get-HttpStatus

Возвращает HTTP-статусы и полный URL для указанных путей при предоставлении словаря.

Invoke-ReverseDnsLookup

Сканирует диапазон IP-адресов на наличие DNS-записей PTR.

PowerView

PowerView — это набор функций для перечисления и эксплуатации сети и домена Windows.

Recon\Dictionaries

Коллекция словарей, используемых для помощи на этапе разведки при тестировании на проникновение. Словари взяты из следующих источников.

  • admin.txt - http://cirt.net/nikto2/
  • generic.txt - http://sourceforge.net/projects/yokoso/files/yokoso-0.1/
  • sharepoint.txt - http://www.stachliu.com/resources/tools/sharepoint-hacking-diggity-project/

Лицензия

Проект PowerSploit и все отдельные скрипты распространяются по лицензии BSD 3-Clause, если не указано иное.

Использование

Для получения подробной информации об использовании обратитесь к встроенной справке в каждом отдельном скрипте.

Чтобы установить этот модуль, поместите всю папку PowerSploit в один из каталогов модулей. Пути к модулям PowerShell по умолчанию перечислены в переменной окружения $Env:PSModulePath.

Путь к модулям для пользователя по умолчанию: "$Env:HomeDrive$Env:HOMEPATH\Documents\WindowsPowerShell\Modules" Путь к модулям для компьютера по умолчанию: "$Env:windir\System32\WindowsPowerShell\v1.0\Modules"

Чтобы использовать модуль, введите Import-Module PowerSploit

Чтобы увидеть импортированные команды, введите Get-Command -Module PowerSploit

Если вы используете PowerShell v3 и хотите убрать назойливое предупреждение «Вы действительно хотите запускать скрипты, загруженные из Интернета?», после того как поместили PowerSploit в путь модуля, выполните следующую однострочную команду: $Env:PSModulePath.Split(';') | % { if ( Test-Path (Join-Path $_ PowerSploit) ) {Get-ChildItem $_ -Recurse | Unblock-File} }

Для справки по каждой отдельной команде используйте Get-Help.

Примечание: Инструменты, содержащиеся в этом модуле, были разработаны таким образом, чтобы их можно было запускать по отдельности. Включение их в модуль просто повышает их портативность.

Правила внесения вклада

Нам нужны вклады! Если у вас есть отличная идея для PowerSploit, мы будем рады добавить её. Новые дополнения потребуют следующего:

  • Скрипт должен соответствовать руководству по стилю. Любые исключения должны иметь явное и обоснованное объяснение.
  • Манифест модуля должен быть обновлён для отражения новой функции.
  • Краткое описание функции должно быть добавлено в этот README.md.
  • Для всех новых функций должны быть предоставлены тесты Pester. Примеры можно найти в папке Tests, но мы ищем тесты, которые как минимум охватывают основы, проверяя ожидаемый/неожиданный ввод/вывод и правильность работы функции. Убедитесь, что функция проходит все тесты (желательно в нескольких ОС) перед отправкой pull request. Спасибо!

Руководство по стилю скриптов

Для всех текущих и будущих участников PowerSploit: прошу вас следовать этому руководству по стилю при написании скриптов/модулей.

  • Избегайте Write-Host любой ценой. Функции/командлеты PowerShell — это не утилиты командной строки! Pull request-ы, содержащие код с Write-Host, не будут рассматриваться. Вместо этого выводите пользовательские объекты. Для получения дополнительной информации о создании пользовательских объектов прочтите эти статьи:

    • http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/19/create-custom-objects-in-your-powershell-script.aspx
    • http://technet.microsoft.com/en-us/library/ff730946.aspx
  • Если вы хотите отображать отладочную информацию на экране, используйте Write-Verbose. Пользователь всегда может добавить -Verbose.

  • Всегда предоставляйте подробную встроенную справку для каждого скрипта. Также не забудьте указать своё имя и лицензию BSD 3-Clause (если нет чрезвычайных обстоятельств, препятствующих применению лицензии BSD).

  • Убедитесь, что все функции следуют правильному соглашению «глагол-существительное» в PowerShell. Используйте Get-Verb для вывода списка стандартных глаголов, используемых PowerShell. Исключения из поддерживаемых глаголов будут рассматриваться в индивидуальном порядке.

  • Я предпочитаю, чтобы имена переменных были написаны заглавными буквами и были максимально описательными.

  • Соблюдайте логические отступы между блоками кода. Используйте отступы, чтобы сделать код более читаемым.

  • Если вы повторяете код, напишите функцию.

  • Перехватывайте все ожидаемые ошибки и выдавайте осмысленный вывод. Если ошибка должна остановить выполнение скрипта, используйте 'Throw'. Если ошибка не останавливает выполнение, используйте Write-Error.

  • Если вы пишете скрипт, который взаимодействует с Win32 API, старайтесь избегать компиляции C# с помощью Add-Type. По возможности используйте модуль PSReflect.

  • Не используйте жестко заданные пути. Скрипт должен работать «из коробки». Никто не должен модифицировать код, если только он сам этого не хочет.

  • Желательна совместимость с PowerShell v2.

  • Используйте позиционные параметры и делайте параметры обязательными, когда это имеет смысл. Например, я ожидаю что-то вроде следующего:

    • [Parameter(Position = 0, Mandatory = $True)]
Скачать инструмент
  • Не используйте псевдонимы, если только это не имеет смысла для получения входных данных из конвейера. Они делают код более сложным для чтения людям, не знакомым с конкретным псевдонимом.

  • Старайтесь не делать команды слишком длинными. Например, конвейер — естественное место для разрыва строки.

  • Не переусердствуйте с встроенными комментариями. Используйте их только тогда, когда некоторые аспекты кода могут сбить с толку читателя.

  • Вместо использования Out-Null для подавления нежелательного/нерелевантного вывода сохраняйте его в $null. Это дает небольшой прирост производительности.

  • Используйте значения по умолчанию для параметров, когда это имеет смысл. В идеале скрипт должен работать без параметров.

  • Если скрипт создает сложные пользовательские объекты, включите файл ps1xml, который правильно форматирует вывод объекта.