Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Shhhloader — システムコール シェルコード ローダー (作業中) | Kitploit
ツール/GitHubGitHub/icyguider/shhhloader
シェルコード
GitHubicyguider/shhhloader

Shhhloader

システムコール シェルコード ローダー (作業中)

リポジトリを見る
1.3k19872年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Shhhloader

Shhhloaderは開発中のシェルコードローダーです。生のシェルコードを入力として受け取り、AV/EDRを回避するためのさまざまな処理を行うC++スタブをコンパイルします。含まれているPythonビルダーは、Mingw-w64がインストールされている任意のLinuxシステムで動作します。

2024年1月25日編集: ShhhloaderはPoolParty variant 7をサポートするようになりました!また、Module StompingとPoolPartyを組み合わせて、実行されたシェルコードがバックされていないメモリに存在しないようにするオプションが追加されました。以下のビデオで、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種類のシェルコード実行方法 (PoolParty, PoolPartyModuleStomping, ThreadlessInject, ModuleStomping, QueueUserAPC, ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread)
  • PPID Spoofing
  • サードパーティDLLのブロック
  • KnownDLLs経由でのNTDLLのアンフック
  • SysWhispers2, SysWhispers3, & GetSyscallStub
  • SW2 & SW3用のAPIハッシュ化
  • コンパイル時文字列暗号化
  • Obfuscator-LLVM (OLLVM) サポート
  • 自動DLLプロキシ生成
  • Havoc C2フレームワーク統合
  • システムコール名のランダム化
  • シェルコードを英単語配列として保存
  • 動的キー生成によるXORエンコード
  • ロードされたDLL、ドメイン、ユーザー、ホスト名、システム列挙によるサンドボックス回避

以下は、ThreadlessInjectメソッドを使用してHavocビーコンをIEに注入し、Microsoft Defender for Endpoint (MDE) EDRでアラートやイベントを最小限に抑えながら実行したPoCビデオです(2023年4月3日録画):

動画を見る

以下は、DLLプロキシを介して実行されるModule Stompingインジェクション手法のデモビデオです(2022年8月9日録画):

動画を見る

Shhhloaderは、@jakobfriedlによるモジュールを介してHavoc C2フレームワークにも統合されています。以下はそのモジュールのデモビデオです:

動画を見る

既知の問題/注意事項:

  • PoolPartyインジェクションメソッドは現在、既存のプロセスに注入するように設定されています。そのため、-pフラグを使用して、ターゲットシステムで既に実行されていることが分かっている、または推測されるプロセスの名前を指定する必要があります。
  • PoolPartyインジェクションメソッドは、Sliver(約11MB)のような大きなシェルコードファイルでは機能しません。
  • ThreadlessInjectシェルコード実行方法は現在、一時停止されていないプロセスに注入する必要があります。-cpオプションが指定されている場合、これは自動的に行われます。いずれは一時停止されたプロセスでも動作する方法を見つけたいと考えています。
  • Havoc C2モジュールは現在、生のシェルコードファイルの代わりにリスナーを指定するとハングします。これは近いうちに修正される予定です。
  • Windows Defenderはこのツールで生成されたほとんどのファイルを検出するため、「検出されました!!!」というイシューを投稿しないでください。動作するものが得られるまで新しいオプションや機能を試してみてください。これらが追加された理由です:)。生成されたファイルをメモリ内で実行することも、これらの検出を回避する良い方法です。
  • Obfuscator-LLVM (OLLVM) は、clangがインラインアセンブリを処理する方法のため、SW2およびSW3と互換性がありません。これらの機能を一緒に使用しようとするユーザーを防ぐためのチェックが追加されています。現在、互換性を持たせる計画はありません。
  • 私のコードには非常に多くのバグがあります。重要な用途で使用する前に必ず事前にテストし、イシューを開く際にはできるだけ多くの情報を提供してください。(ありがとうございます!)

今後のアップデート予定:

  • ハードウェアブレークポイント (HWBP) システムコールオプション
  • 標準のWinAPI関数ではなくシステムコールを使用したプロセス作成
  • ThreadlessInjectを他のシェルコードインジェクション手法(例:ModuleStomping)と統合
  • コードをよりモジュール化し、読みやすくリファクタリング
  • Havoc C2モジュールのバグ修正
  • より良いプログラミングを学ぶことで無数のバグを修正 ;)

オプション: Obfuscator-LLVMフラグを使用するには、システムにwclangと一緒にインストールされている必要があります。これは少し面倒かもしれませんが、忍耐強く取り組めばできるはずです。以下は、Kali LinuxシステムにOLLVMのllvm-13.xブランチをインストールするために使用した手順です:

詳細を見る
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 Spoofing、サードパーティ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 による Shhhloader 用 Havoc C2 モジュールの作成
  • @_0xDeku による Windows スレッドプールを使用したプロセスインジェクション(PoolParty)に関する研究とコード: https://github.com/SafeBreach-Labs/PoolParty
  • @0xEr3bus による参照として使用した PoolParty BOF: https://github.com/0xEr3bus/PoolPartyBof