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

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

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

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

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

Категории

Все категории
Loading categories
SharpWhispers — Портирование SysWhispers2 на C#. Он использует SharpASM для поиска code caves для выполнения стаба системного вызова. | Kitploit
Инструменты/GitHubGitHub/secforce/sharpwhispers
Обход IDS/IPSШелл-кодПост-эксплуатацияRed TeamingРазработка Полезной Нагрузки
GitHubsecforce/sharpwhispers

SharpWhispers

Портирование SysWhispers2 на C#. Он использует SharpASM для поиска code caves для выполнения стаба системного вызова.

Репозиторий
1121763 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

SharpWhispers

LOGO

Портирование SysWhispers2 на C#.

Он использует SharpASM для поиска code caves под выполнение заглушки системного вызова.

Технические подробности читайте в блог-посте: https://www.secforce.com/blog/sharpasm-sharpwhispers/

Требования

  • Visual Studio
  • .NET Framework >= 3.5
  • Python3

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

root@kitploit:~

   ______               _      ____   _                    
  / __/ /  ___ ________| | /| / / /  (_)__ ___  ___ _______
 _\ \/ _ \/ _ `/ __/ _ \ |/ |/ / _ \/ (_-</ _ \/ -_) __(_-<
/___/_//_/\_,_/_/ / .__/__/|__/_//_/_/___/ .__/\__/_/ /___/
                 /_/                    /_/                

@d_glenx
@SECFORCE_LTD

=============================================================


usage: SharpWhispers.py [-h] [-p PRESET] [-f FUNCTIONS] -o OUT_FILE

optional arguments:
  -h, --help            show this help message and exit
  -p PRESET, --preset PRESET
                        Preset ("all", "common", "dinvoke")
  -f FUNCTIONS, --functions FUNCTIONS
                        Comma-separated functions
  -o OUT_FILE, --out-file OUT_FILE
                        Output basename (w/o extension)

Инструкции по созданию проекта Visual Studio приведены здесь

Базовый пример внедрения в процесс приведён здесь

Пресеты

На данный момент JSON-файлы содержат данные для генерации 33 системных вызова.

Примечание: пресет All содержит подмножество всех системных вызовов.

All

root@kitploit:~
==== System Calls Imported ====

==[DInvoke]==
[i] Number of Delegates: 13

NtCreateThreadEx
NtCreateSection
NtUnmapViewOfSection
NtMapViewOfSection
NtQueryInformationProcess
NtOpenProcess
NtAllocateVirtualMemory
NtFreeVirtualMemory
NtQueryVirtualMemory
NtProtectVirtualMemory
NtWriteVirtualMemory
NtReadVirtualMemory
NtOpenFile

==[Additional]==
[i] Number of Delegates: 20

NtOpenThread
NtQueueApcThread
NtOpenSection
NtSuspendThread
NtQueryInformationFile
NtSetContextThread
NtResumeProcess
NtOpenProcessToken
NtWaitForMultipleObjects
NtQueryDirectoryFile
NtAdjustPrivilegesToken
NtQuerySystemInformation
NtDeviceIoControlFile
NtResumeThread
NtCreateProcess
NtSuspendProcess
NtGetContextThread
NtClose
NtQueryInformationThread
NtTestAlert

Common

root@kitploit:~
NtCreateThreadEx
NtCreateSection
NtUnmapViewOfSection
NtMapViewOfSection
NtQueryInformationProcess
NtAllocateVirtualMemory
NtFreeVirtualMemory
NtProtectVirtualMemory
NtWriteVirtualMemory
NtOpenFile
NtReadVirtualMemory
NtQueryVirtualMemory
NtOpenProcess

DInvoke

root@kitploit:~
NtCreateThreadEx
NtCreateSection
NtUnmapViewOfSection
NtMapViewOfSection
NtQueryInformationProcess
NtOpenProcess
NtAllocateVirtualMemory
NtFreeVirtualMemory
NtQueryVirtualMemory
NtProtectVirtualMemory
NtWriteVirtualMemory
NtReadVirtualMemory
NtOpenFile

Шаблоны

Delegates.cs

Генерируется динамически

Содержит делегаты системных вызовов, которые необходимо сгенерировать.

PEB.cs

Зависит от SharpASM

Вспомогательный код для получения адреса PEB с помощью ASM.

SharpASM.cs

Содержит код для динамического вызова ASM в c#. Функцию public static IntPtr callASM(byte[] stub) можно использовать для вызова шеллкода, передавая байтовый массив.

SharpWhispers.cs

Генерируется динамически — скрипт генерирует случайное зерно (seed) для хеширования имён системных вызовов

Содержит код для получения номеров системных вызовов с использованием техники от ElephantSe4l (код портирован из SysWhispers2).

Syscalls.cs

Зависит от SharpASM

Содержит код для динамического выполнения системных вызовов с помощью ASM.

Также содержит обёртки для системных вызовов (например, Syscall.NtAllocateVirtualMemory) (Генерируются динамически)

Типы данных DInvoke

Генерируются динамически

Выходные файлы SharpWhispers можно использовать напрямую в проекте C#. Необходимые типы данных представляют собой подмножество типов, определённых в проекте DInvoke (некоторые типы фактически заимствованы из минимизированного проекта Rastamouse), что позволяет уменьшить поверхность обнаружения. Типы данных определены в пространстве имён SharpWhisper.Data, чтобы избежать пересечения с определениями DInvoke.

Примечание: типы данных генерируются только при необходимости (т.е. если системному вызову требуется тип данных), чтобы минимизировать поверхность обнаружения.

Для генерации необходимых типов данных используются следующие шаблоны:

  • TypedefsNative.cs
  • TypedefsPE.cs
  • TypedefsWin32.cs
Скачать инструмент