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

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

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

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

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

Категории

Все категории
Loading categories
Shhhloader — Загрузчик шеллкода через системные вызовы (в разработке) | Kitploit
Инструменты/GitHubGitHub/icyguider/shhhloader
Шелл-код
GitHubicyguider/shhhloader

Shhhloader

Загрузчик шеллкода через системные вызовы (в разработке)

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

Популярное

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

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

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

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

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

Shhhloader

Shhhloader — это загрузчик shellcode, находящийся в разработке. Он принимает сырой shellcode на вход и компилирует заглушку на C++, которая выполняет множество различных действий для обхода AV/EDR. Включённый сборщик на Python будет работать в любой системе Linux с установленным Mingw-w64.

Редактирование от 25.01.24: Shhhloader теперь поддерживает вариант 7 PoolParty! Также добавлена опция, которая объединяет PoolParty с Module Stomping, чтобы предотвратить размещение выполненного shellcode в незарезервированной памяти. Смотрите ниже видео, демонстрирующее этот новый метод внедрения против Defender ATP:

Смотреть видео
root@kitploit:~
┳┻|
┻┳|
┳┻|
┻┳|
┳┻| _
┻┳| •.•)  - Shhhhh, AV might hear us! 
┳┻|⊂ノ   
┻┳|
usage: Shhhloader.py [-h] [-p explorer.exe] [-m QueueUserAPC] [-u] [-w] [-nr] [-ns] [-l] [-v] [-sc GetSyscallStub] [-d] [-dp apphelp.dll] [-s domain]
                     [-sa testlab.local] [-o a.exe] [-pp explorer.exe] [-ppv] [-np] [-cp] [-td ntdll.dll] [-ef NtClose]
                     file

ICYGUIDER'S CUSTOM SYSCALL SHELLCODE LOADER

positional arguments:
  file                  File containing raw shellcode

options:
  -h, --help            show this help message and exit
  -p explorer.exe, --process explorer.exe
                        Process to inject into (Default: explorer.exe)
  -m QueueUserAPC, --method QueueUserAPC
                        Method for shellcode execution (Options: PoolPartyModuleStomping, PoolParty, ThreadlessInject, ModuleStomping, QueueUserAPC,
                        ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread) (Default: QueueUserAPC)
  -u, --unhook          Unhook NTDLL in current process
  -w, --word-encode     Save shellcode in stub as array of English words
  -nr, --no-randomize   Disable syscall name randomization
  -ns, --no-sandbox     Disable sandbox checks
  -l, --llvm-obfuscator
                        Use Obfuscator-LLVM to compile stub
  -v, --verbose         Enable debugging messages upon execution
  -sc GetSyscallStub, --syscall GetSyscallStub
                        Syscall execution method (Options: SysWhispers2, SysWhispers3, GetSyscallStub, None) (Default: GetSyscallStub)
  -d, --dll             Generate a DLL instead of EXE
  -dp apphelp.dll, --dll-proxy apphelp.dll
                        Create Proxy DLL using supplied legitimate DLL (File must exist in current dir)
  -s domain, --sandbox domain
                        Sandbox evasion technique (Options: sleep, domain, hostname, username, dll) (Default: sleep)
  -sa testlab.local, --sandbox-arg testlab.local
                        Argument for sandbox evasion technique (Ex: WIN10CO-DESKTOP, testlab.local)
  -o a.exe, --outfile a.exe
                        Name of compiled file

PPID Spoofing:
  -pp explorer.exe, --ppid explorer.exe
                        Parent process to use for PPID Spoofing (Default: explorer.exe)
  -ppv, --ppid-priv     Enable spoofing for privileged parent process (Disabled by default)
  -np, --no-ppid-spoof  Disable PPID spoofing

ThreadlessInject:
  -cp, --create-process
                        Create process instead of injecting into existing one
  -td ntdll.dll, --target-dll ntdll.dll
                        Target DLL containing export function to overwrite
  -ef NtClose, --export-function NtClose
                        Export function to overwrite

Возможности:

  • 10 различных методов выполнения shellcode (PoolParty, PoolPartyModuleStomping, ThreadlessInject, ModuleStomping, QueueUserAPC, ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread)
  • Спуфинг PPID
  • Блокировка DLL сторонних разработчиков
  • Снятие перехвата NTDLL через KnownDLLs
  • SysWhispers2, SysWhispers3 и GetSyscallStub
  • Хэширование API для SW2 и SW3
  • Шифрование строк на этапе компиляции
  • Поддержка Obfuscator-LLVM (OLLVM)
  • Автоматическая генерация прокси-библиотек DLL
  • Интеграция с Havoc C2 Framework
  • Рандомизация имён системных вызовов
  • Хранение shellcode в виде массива английских слов
  • XOR-кодирование с динамической генерацией ключа
  • Обход песочницы через загруженные DLL, домен, пользователя, имя хоста и системное перечисление

Смотрите ниже видео PoC метода ThreadlessInject, используемого для внедрения Havoc beacon в Internet Explorer без генерации предупреждений и с минимальными событиями в Microsoft Defender for Endpoint (MDE) EDR (Записано 03.04.2023):

Смотреть видео

Смотрите ниже видео, демонстрирующее технику внедрения Module Stomping, выполняемую через проксирование DLL (Записано 09.08.2022):

Смотреть видео

Shhhloader также был интегрирован в Havoc C2 Framework через модуль от @jakobfriedl. Смотрите ниже видео, демонстрирующее модуль:

Смотреть видео

Известные проблемы/Примечания:

  • Методы внедрения PoolParty в настоящее время настроены на внедрение в существующий процесс. Поэтому вы должны использовать флаг -p, чтобы указать имя процесса, который, как вы знаете или подозреваете, уже работает на целевой системе.
  • Методы внедрения PoolParty не будут работать с большими файлами shellcode, такими как sliver (~11 МБ).
  • Метод выполнения shellcode ThreadlessInject в настоящее время должен внедряться в неприостановленный процесс. Это делается автоматически, если указан параметр "-cp". Я надеюсь вскоре разобраться, как заставить его работать с приостановленными процессами.
  • Модуль Havoc C2 в настоящее время зависает при указании Listener вместо файла сырого shellcode. Надеюсь, это скоро будет исправлено.
  • Windows Defender будет обнаруживать большинство файлов, созданных этим инструментом, поэтому, пожалуйста, не создавайте задачу с сообщением "DETECTED!!!". Экспериментируйте с новыми опциями и функциями, пока не получите то, что работает; они были добавлены не просто так :). Выполнение сгенерированного файла в памяти также является хорошим способом обхода этих обнаружений.
  • Obfuscator-LLVM (OLLVM) несовместим с SW2 и SW3 из-за того, как clang обрабатывает встроенный ассемблер. В настоящее время нет планов по их совместимости; добавлены проверки, чтобы предотвратить попытки использования этих функций вместе.
  • В моём коде очень много ошибок. Пожалуйста, тестируйте всё заранее, прежде чем использовать для чего-то важного, и, пожалуйста, предоставляйте как можно больше информации при открытии задачи. (СПАСИБО!)

Планируемые обновления:

  • Опция системного вызова с аппаратной точкой останова (HWBP)
  • Создание процессов с использованием системных вызовов вместо стандартной функции WinAPI
  • Интеграция ThreadlessInject с другими методами внедрения shellcode (например, ModuleStomping)
  • Рефакторинг кода для большей модульности и читаемости
  • Исправление ошибок в модуле Havoc C2
  • Исправление бесчисленных ошибок путём улучшения навыков программирования ;)

ОПЦИОНАЛЬНО: Чтобы использовать флаг Obfuscator-LLVM, вы должны установить его в своей системе вместе с wclang. Я считаю, что это может быть немного хлопотно, но вы должны справиться с небольшим упорством. Вот пошаговая инструкция, которую я использовал для установки ветки llvm-13.x OLLVM в моей системе Kali Linux:

Смотреть подробности
root@kitploit:~
# Clone and Run CMake
git clone -b llvm-13.x https://github.com/heroims/obfuscator.git
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF ../obfuscator/llvm/

# Configure CMake and Compile OLLVM
export clang_build_dir=$(cd ../; pwd)/obfuscator/clang
sed -i 's/LLVM_TOOL_CLANG_BUILD:BOOL=OFF/LLVM_TOOL_CLANG_BUILD:BOOL=ON/g' CMakeCache.txt
sed -i "s|LLVM_EXTERNAL_CLANG_SOURCE_DIR:PATH=|LLVM_EXTERNAL_CLANG_SOURCE_DIR:PATH=$clang_build_dir|g" CMakeCache.txt
make -j7

# ONCE COMPILED, BACKUP ORIGINAL CLANG BINARIES
mv /usr/bin/clang /usr/bin/clang13.0.1
mv /usr/bin/clang++ /usr/bin/clang++13.0.1

# Then in OLLVM build/bin dir, copy the newly build clang bins
cp bin/clang /usr/bin/clang
cp bin/clang++ /usr/bin/clang++

# Then install wclang
cd ..
git clone https://github.com/tpoechtrager/wclang.git
cd wclang/
cmake -DCMAKE_INSTALL_PREFIX=_prefix_ .
make
make install
export wclang_path=$(pwd)/_prefix_/bin
echo "export PATH=$wclang_path:$PATH" >> ~/.bashrc
export PATH=$wclang_path:$PATH

# Then backup original lib files
cp -R /lib/llvm-13/lib/clang/13.0.1/include/ /lib/llvm-13/lib/clang/13.0.1/include_backup/

# Finally in the OLLVM build/bin/lib/clang/13.0.1/ dir, copy the include folder
cd ../build/lib/clang/13.0.1/
cp -R include/ /lib/llvm-13/lib/clang/13.0.1/

Вероятно, есть способ сделать это лучше, но это сработало для меня. Если у вас возникнут проблемы, просто продолжайте пытаться и убедитесь, что вы можете запустить x86_64-w64-mingw32-clang++ -v и в выводе будет "Obfuscator-LLVM" или "heroims". К сожалению, у меня нет времени помогать отдельным лицам, которым может потребоваться дополнительная помощь, но вы можете попробовать прочитать эту задачу в моём репозитории Nimcrypt2, где пара пользователей разобралась, как это сделать в своих системах.

Приветствия и благодарности:

  • @Jackson_T за его потрясающий проект SysWhispers: https://github.com/jthuraisamy/SysWhispers
  • @FalconForceTeam за их инструмент генерации системных вызовов, поддерживающий SysWhispers2: https://github.com/FalconForceTeam/SysWhispers2BOF
  • @snovvcrash за их проект DInjector, который я использовал в качестве шаблона для многих включённых техник внедрения: https://github.com/snovvcrash/DInjector
  • @Cerbersec за их проект Ares, чей код я использовал для спуфинга PPID, блокировки DLL сторонних разработчиков и обхода песочницы: https://github.com/Cerbersec/Ares
  • @spotheplanet за их запись в блоге о получении заглушек системных вызовов ntdll с диска во время выполнения: https://www.ired.team/offensive-security/defense-evasion/retrieving-ntdll-syscall-stubs-at-run-time
  • @_RastaMouse за его код и статью о Module Stomping, которые я портировал на C++: https://offensivedefence.co.uk/posts/module-stomping/
  • @s4ntiago_p за их проект NanoDump и, в частности, скрипт randomize_sw2_seed.py: https://github.com/helpsystems/nanodump
  • @skadro-official за их проект skCrypter, который этот инструмент использует для шифрования строк на этапе компиляции: https://github.com/skadro-official/skCrypter
  • @_EthicalChaos_ за их проект ThreadlessInject:
Скачать инструмент
https://github.com/CCob/ThreadlessInject
  • 0xLegacyy за их версию ThreadlessInject в формате BOF: https://github.com/iilegacyyii/ThreadlessInject-BOF
  • @D1rkMtr за их коллекцию по снятию перехвата ntdll: https://github.com/TheD1rkMtr/ntdlll-unhooking-collection
  • @KlezVirus за их проект SysWhispers3: https://github.com/klezVirus/SysWhispers3
  • @jakobfriedl за создание модуля Havoc C2 для Shhhloader
  • @_0xDeku за их исследование и код, касающиеся внедрения процессов с использованием пулов потоков Windows (PoolParty): https://github.com/SafeBreach-Labs/PoolParty
  • @0xEr3bus за их PoolParty BOF, который использовался в качестве справочного материала: https://github.com/0xEr3bus/PoolPartyBof