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

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

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

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

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

Категории

Все категории
Loading categories
CobaltWhispers — CobaltWhispers — это скрипт aggressor, который использует набор Beacon Object Files (BOF) для Cobalt Strike с целью выполнения инъекций в процессы, обеспечения персистентности и других задач, применяя прямые системные вызовы (SysWhispers2) для обхода EDR/AV. | Kitploit
Инструменты/GitHubGitHub/nvisosecurity/cobaltwhispers
Механизмы персистентностиОбход IDS/IPSПост-эксплуатацияКомандование и УправлениеRed TeamingРазработка Полезной НагрузкиСостязательная Атака
GitHubnvisosecurity/cobaltwhispers

Популярное

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

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

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

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

Смотреть все инструменты →

CobaltWhispers

CobaltWhispers — это скрипт aggressor, который использует набор Beacon Object Files (BOF) для Cobalt Strike с целью выполнения инъекций в процессы, обеспечения персистентности и других задач, применяя прямые системные вызовы (SysWhispers2) для обхода EDR/AV.

Репозиторий
2403543 лет назадПроверено Kitploit
Поделиться

CobaltWhispers

Автор: @Cerbersec

CobaltWhispers — это агрессор-скрипт, использующий набор Beacon Object Files для Cobalt Strike с целью выполнения инъекций в процессы, закрепления в системе и других задач, применяя прямые системные вызовы для обхода EDR/AV.

CobaltWhispers работает на основе SysWhispers2 и InlineWhispers2
CobaltWhispers основан на StayKit, а также наработках Hasherezade и Forrest Orr.

CobaltWhispers был создан в рамках стажировки в Red Team компании NVISO Security. Соответствующие статьи в блоге можно найти здесь (process-injection) и здесь (kernel karnage).

Компиляция из исходников

Для компиляции CobaltWhispers требуются следующие инструменты:

  • MingW-w64 — apt install mingw-w64
  • Make — apt install make
  • Python3
  • SysWhispers2
  • InlineWhispers2
  • Для работы каждого проекта необходимы 3 файла, сгенерированных SysWhispers2 / InlineWhispers2:

    • syscalls-asm.h
    • syscalls.c
    • syscalls.h

    Эти файлы можно сгенерировать в соответствии с документацией InlineWhispers2, однако это не оптимальный способ, поскольку будет включено много неиспользуемого кода:

    root@kitploit:~
    git clone https://github.com/Sh0ckFR/InlineWhispers2 && cd InlineWhispers2
    cd SysWhispers2/ && python3 syswhispers.py --preset all -o syscalls_all && cd ..
    python3 InlineWhispers2.py
    
    

    Вместо этого используйте SysWhispers2 для генерации выходных файлов только для необходимых API, а затем вручную (или с помощью скрипта) передайте их в InlineWhispers2, который преобразует их в нужный формат. Дополнительную информацию см. в прилагаемом makefile, либо используйте прилагаемые файлы на свой страх и риск.

    Инъекции

    SpawnProcess

    Тип полезной нагрузкиЦельНадёжность (0-5)Требуются права администратораПримечания
    --5НетНаследует права родительского процесса

    Описание

    Создаёт новый процесс в приостановленном состоянии с включённым Code Integrity Guard (CIG) для блокировки бинарных файлов, не подписанных Microsoft. Подменяет указанный родительский процесс. Возвращается PID.

    Параметры

    Родительский процесс: имя процесса, который будет задан как родительский
    Расположение исполняемого файла: полный путь к исполняемому файлу на диске, используемому для создания нового процесса


    CreateRemoteThread

    Тип полезной нагрузкиЦельНадёжность (0-5)Требуются права администратораПримечания
    Shellcode/RawPID5Нет-

    Описание

    Внедряет полезную нагрузку в удалённый процесс с помощью NtCreateThreadEx

    Параметры

    PID процесса: идентификатор удалённого процесса
    Расположение полезной нагрузки: расположение полезной нагрузки в бинарном виде на диске (условно | необязательно)
    Полезная нагрузка b64: исходный шеллкод в виде строки в кодировке base64 (условно | необязательно)
    Listener: Listener для генерации полезной нагрузки (условно)

    Для генерации Beacon-полезной нагрузки следует указать Listener. Если требуется ручная полезная нагрузка, её необходимо указать через путь к бинарному файлу на диске или в виде шеллкода в кодировке Base64.


    QueueUserAPC

    Тип полезной нагрузкиЦельНадёжность (0-5)Требуются права администратораПримечания
    Shellcode/RawPID2НетВозможен крах целевого процесса

    Описание

    Внедряет полезную нагрузку в удалённый процесс с помощью NtQueueApcThread

    Параметры

    PID процесса: идентификатор удалённого процесса
    Потоки: количество потоков, в которые будет добавлен вызов APC
    Расположение полезной нагрузки: расположение полезной нагрузки в бинарном виде на диске (условно | необязательно)
    Полезная нагрузка b64: исходный шеллкод в виде строки в кодировке base64 (условно | необязательно)
    Listener: Listener для генерации полезной нагрузки (условно)

    Для генерации Beacon-полезной нагрузки следует указать Listener. Если требуется ручная полезная нагрузка, её необходимо указать через путь к бинарному файлу на диске или в виде шеллкода в кодировке Base64.


    MapViewOfSection

    Тип полезной нагрузкиЦельНадёжность (0-5)Требуются права администратораПримечания
    Shellcode/RawПроцесс-заместитель5Нет-

    Описание

    Внедряет полезную нагрузку в процесс-заместитель с помощью NtMapViewOfSection

    Параметры

    Родительский процесс: имя процесса, который будет задан как родительский
    Расположение исполняемого файла: расположение исполняемого файла на диске, используемого для создания нового процесса
    Расположение полезной нагрузки: расположение полезной нагрузки в бинарном виде на диске (условно | необязательно)
    Полезная нагрузка b64: исходный шеллкод в виде строки в кодировке base64 (условно | необязательно)
    Listener: Listener для генерации полезной нагрузки (условно)

    Для генерации Beacon-полезной нагрузки следует указать Listener. Если требуется ручная полезная нагрузка, её необходимо указать через путь к бинарному файлу на диске или в виде шеллкода в кодировке Base64.


    TransactedHollowing

    Тип полезной нагрузкиЦельНадёжность (0-5)Требуются права администратораПримечания
    PEПроцесс-заместитель5НетТребуется полезная нагрузка в формате x64 PE

    Описание

    Внедряет полезную нагрузку в процесс-заместитель с использованием транзакционных секций и отображаемых представлений. Обновляются удалённая точка входа и PEB, отсутствуют аномальные участки памяти и необычные права доступа к памяти. Дополнительную информацию см. здесь.

    Параметры

    Родительский процесс: имя процесса, который будет задан как родительский
    Расположение исполняемого файла: расположение исполняемого файла на диске, используемого для создания нового процесса
    Расположение полезной нагрузки: расположение полезной нагрузки в формате x64 PE на диске (условно | необязательно)
    Полезная нагрузка b64: полезная нагрузка в формате x64 PE в виде строки в кодировке base64 (условно | необязательно)
    Listener: Listener для генерации полезной нагрузки (условно)

    Для генерации Beacon-полезной нагрузки следует указать Listener. Если требуется ручная полезная нагрузка, её необходимо указать через путь к x64 PE на диске или в виде x64 PE в кодировке Base64.


    PhantomDLLHollowing

    В НАСТОЯЩЕЕ ВРЕМЯ НЕ РЕАЛИЗОВАНО

    Тип полезной нагрузкиЦельНадёжность (0-5)Требуются права администратораПримечания
    Position Independent Shellcode (PIC)Процесс-заместитель5ДаДля открытия системных DLL с правами на запись требуются повышенные привилегии

    Описание

    Внедряет полезную нагрузку в процесс-заместитель с использованием транзакционных секций в сочетании с DLL hollowing. Дополнительную информацию см. здесь.

    Параметры

    Родительский процесс: имя процесса, который будет задан как родительский
    Расположение исполняемого файла: расположение исполняемого файла на диске, используемого для создания нового процесса
    Расположение полезной нагрузки: расположение полезной нагрузки в бинарном виде на диске (условно | необязательно)
    Полезная нагрузка b64: исходный шеллкод в виде строки в кодировке base64 (условно | необязательно)
    Listener: Listener для генерации полезной нагрузки (условно)

    Для генерации Beacon-полезной нагрузки следует указать Listener. Если требуется ручная полезная нагрузка, её необходимо указать через путь к бинарному файлу на диске или в виде шеллкода в кодировке Base64.


    Закрепление (Persistence)

    ElevatedRegKey

    Описание

    Создаёт или изменяет ключ реестра в указанном расположении.

    • HKLM:Software\Microsoft\Windows\CurrentVersion\Run
    • HKLM:Software\Microsoft\Windows\CurrentVersion\RunOnce

    Параметры

    Имя ключа: имя значения
    Команда: команда, которая будет выполнена при использовании реестра
    Ключ реестра: расположение, где будет создан ключ реестра
    Скрытый: добавляет нулевой байт в начало имени ключа; вызывает ошибки в regedit
    Очистка: удаляет созданный ключ

    Для очистки требуются имя ключа и ключ реестра (расположение).


    ElevatedUserInitRegKey

    Описание

    Создаёт или изменяет ключ реестра в указанном расположении.

    • HKLM:Software\Microsoft\Windows NT\CurrentVersion\Winlogon [UserInit]

    Параметры

    Имя ключа: имя значения
    Команда: команда, которая будет выполнена при использовании реестра
    Ключ реестра: расположение, где будет создан ключ реестра
    Скрытый: добавляет нулевой байт в начало имени ключа; вызывает ошибки в regedit
    Очистка: удаляет созданный ключ

    Для очистки требуются имя ключа и ключ реестра (расположение).
    UserInit: автоматически задаёт «Имя ключа» и «Ключ реестра».


    UserRegKey

    Описание

    Создаёт или изменяет ключ реестра в указанном расположении.

    • HKCU:Software\Microsoft\Windows\CurrentVersion\Run
    • HKCU:Software\Microsoft\Windows\CurrentVersion\RunOnce

    Параметры

    Имя ключа: имя значения
    Команда: команда, которая будет выполнена при использовании реестра
    Ключ реестра: расположение, где будет создан ключ реестра
    Скрытый: добавляет нулевой байт в начало имени ключа; вызывает ошибки в regedit
    Очистка: удаляет созданный ключ

    Для очистки требуются имя ключа и ключ реестра (расположение).


    UserInitMprRegKey

    Описание

    Создаёт или изменяет ключ реестра в указанном расположении.

    • HKCU:Environment [UserInitMprLogonScript]

    Параметры

    Имя ключа: имя значения
    Команда: команда, которая будет выполнена при использовании реестра
    Ключ реестра: расположение, где будет создан ключ реестра
    Скрытый: добавляет нулевой байт в начало имени ключа; вызывает ошибки в regedit
    Очистка: удаляет созданный ключ

    Для очистки требуются имя ключа и ключ реестра (расположение).
    UserInitMprLogonScript: автоматически задаёт «Имя ключа» и «Ключ реестра».


    Перехват COM-обработчика запланированной задачи

    Описание

    Перехватывает COM-обработчик запланированной задачи. Создаёт ключ реестра в HKCU:\Software\Classes\CLSID\\InprocServer32, указывающий на DLL.

    Параметры

    Class ID: CLSID, соответствующий CLSID COM-обработчика задачи
    Путь к DLL: путь к DLL, которая должна быть загружена
    Очистка: удаляет созданный ключ


    Драйверы

    DisableDSE

    Надёжность (0-5)Требуются права администратораПримечания
    4ДаМожет вызвать BSOD целевой системы

    Описание

    Загружает уязвимый подписанный драйвер с произвольным чтением/записью памяти ядра (NalDrv/iqvm64.sys). Изменяет флаг g_CiEnabled в ntoskrnl.exe или флаг g_CiOptions в CI.dll для отключения проверки подписи драйверов (Driver Signature Enforcement, DSE).
    Загружает неподписанный драйвер (Interceptor/Interceptor.sys), затем восстанавливает значения флагов DSE. Как подписанный, так и неподписанный драйвер записываются на диск.

    ДрайверКонтрольная сумма MD5
    iqvm64.sys1898ceda3247213c084f43637ef163b3
    Interceptor.sys508c8943359717cfa0c77b61ebea2118

    Параметры

    Расположение уязвимого драйвера: расположение уязвимого подписанного драйвера в бинарном виде на диске
    Расположение вредоносного драйвера: расположение вредоносного неподписанного драйвера в бинарном виде на диске
    Имя уязвимого драйвера: имя, используемое для создания ключа реестра '\Registry\Machine\System\CurrentControlSet\Services\'
    Имя устройства уязвимого драйвера: имя, используемое для связи с драйвером '\DosDevices\'
    Имя вредоносного драйвера: имя, используемое для создания ключа реестра '\Registry\Machine\System\CurrentControlSet\Services\'
    Имя устройства вредоносного драйвера: имя, используемое для связи с драйвером '\DosDevices\'
    Целевой путь: временный путь для записи файлов уязвимого и вредоносного драйверов


    UnloadDriver

    Надёжность (0-5)Требуются права администратораПримечания
    5Да-

    Описание

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

    Параметры

    Ключ реестра драйвера: ключ реестра, используемый для выгрузки драйвера '\Registry\Machine\System\CurrentControlSet\Services\'
    Путь установки драйвера: расположение драйвера на диске


    Intercept

    Надёжность (0-5)Требуются права администратораПримечания
    4НетМожет вызвать BSOD целевой системы

    Описание

    Information: запрос информации у драйвера Interceptor
    Hook: перехват основных функций целевого драйвера (IRP)
    Unhook: восстановление основных функций целевого драйвера
    Patch: патч целевых callback-функций ядра
    Restore: восстановление целевых callback-функций ядра

    Параметры: Information

    Vendors: показать поддерживаемых производителей
    Modules: запросить список всех загруженных драйверов
    Hooked modules: показать все перехваченные драйверы
    Callbacks: запросить все зарегистрированные callback-функции

    Параметры: Hook

    Index: перехватить драйвер по индексу (см.: information - modules)
    Name: перехватить драйвер по имени устройства (\Device\Name)
    Values: список индексов через запятую (условно)
    Name: имя устройства целевого драйвера (условно)

    Значение Values обязательно при выборе «Index». Значение Name обязательно при выборе «Name».

    Параметры: Unhook

    Index: снять перехват с драйвера по индексу (см.: information - hooked modules)
    All: снять перехват со всех перехваченных драйверов
    Values: список индексов через запятую (условно)

    Значение Values обязательно при выборе «Index».

    Параметры: Patch

    Vendor: пропатчить все callback-функции, связанные с модулями производителя
    Module: пропатчить все callback-функции, связанные с модулями
    Process: пропатчить callback-функции процесса
    Thread: пропатчить callback-функции потоков
    Image: пропатчить callback-функции образов
    Registry: пропатчить callback-функции реестра
    Object process: пропатчить callback-функции объекта процесса
    Object thread: пропатчить callback-функции объекта потока
    Values: список индексов через запятую (см.: information - callbacks) (условно)
    Name: список имён модулей через запятую или имя одного производителя (см.: information - vendors) (условно)

    Значение Values обязательно при выборе «process», «thread», «image», «registry», «object process» или «object thread». Значение Name обязательно при выборе «vendor» или «module».

    Параметры: Restore

    Vendor: восстановить все callback-функции, связанные с модулями производителя
    Module: восстановить все callback-функции, связанные с модулями
    Process: восстановить callback-функции процесса
    Thread: восстановить callback-функции потоков
    Image: восстановить callback-функции образов
    Registry: восстановить callback-функции реестра
    Object process: восстановить callback-функции объекта процесса
    Object thread: восстановить callback-функции объекта потока
    All: восстановить все callback-функции
    Values: список индексов через запятую (см.: information - callbacks) (условно)
    Name: список имён модулей через запятую или имя одного производителя (см.: information - vendors) (условно)

    Значение Values обязательно при выборе «process», «thread», «image», «registry», «object process» или «object thread». Значение Name обязательно при выборе «vendor» или «module».


    Скачать инструмент