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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
AsmLdr — 高度な回避機能を備えた動的shellcodeローダー | Kitploit
ツール/GitHubGitHub/0xninjacyclone/asmldr
ペイロード生成IDS/IPS回避シェルコードポストエクスプロイトレッドチーミングペイロード開発
GitHub0xninjacyclone/asmldr

AsmLdr

高度な回避機能を備えた動的shellcodeローダー

リポジトリを見る
34651511ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

AsmLdr: Windows x64向け動的シェルコードローダー

概要

AsmLdrは、x64アセンブリ言語で実装された高度なシェルコードローダーで、Windows x64環境向けに設計されています。その主な目的は、暗号化されたペイロードを実行しながら、高度なアンチウイルスソフトウェア、エンドポイント検出および応答(EDR)システム、サンドボックス、デバッガによる検出を最小限に抑えることです。これは、モジュール、API、システムコールを実行時に動的に解決することで実現され、インポートテーブルやハードコードされたアドレスなどの静的依存関係を排除します。このアプローチにより、検出プロファイルの低いコンパクトなバイナリが作成されます。

ローダーはモジュールストンピングを使用して既存DLLの実行可能セクションにシェルコードを配置し、ペイロードをメモリ上で復号化し、スタックスプーフィングを伴う間接システムコールを介して実行します。アンチデバッグ対策、通常のアプリケーションパターンを模倣するタイミング調整、Windowsイベントトレーシング(ETW)のバイパスなどの回避機能が含まれます。これらの機能により、レッドチーム活動やセキュリティ研究のためのツールとなっています。

倫理的免責事項: このプロジェクトは教育および研究目的のみを対象としています。PEBトラバーサル、エクスポートテーブルの解析、syscallのアンフッキング、メモリ保護の操作といったWindowsの低レベルの内部構造を示すものです。管理された環境(例: VM)でのみ使用してください。悪意のある活動への悪用は違法かつ非倫理的です。著者は悪用による責任を負いません。

主な機能

AsmLdrは、ステルス性の高いペイロード実行と回避のためのさまざまな機能を提供します。各機能について、その役割と利点を中心に以下に説明します。

初期化とブートストラップ

  • PEBとntdllの発見: ローダーは検出を避けるため、標準的なアクセス方法を使用せずにPEBを特定します。
    • プライマリ方式(スタックスキャン): スタック上の戻りアドレスを調べ、PEBにつながる有効なポインタを特定します。見つかると、モジュールリストからntdllのベースアドレスを取得し、システムコール処理を設定します。
    • フォールバック方式(PEヘッダースキャン): プライマリが失敗した場合、メモリ上でPEファイルシグネチャを検索してntdll.dllを見つけ、システムコールを使用してPEBの場所を確認します。

動的解決メカニズム

  • PEBトラバーサルによるモジュール解決: ローダーはPEBのモジュールチェーンを辿って実行中のモジュールを列挙します。Unicode比較でモジュール名を照合し、目的のDLLのベースアドレスを見つけて返します。この方法は標準の読み込み関数をバイパスし、傍受のリスクを低減します。

  • エクスポートテーブルからのAPI解決: ローダーはDLLのエクスポートディレクトリを調べて関数を特定します。ハッシュを使用するか、必要に応じて長さ検証付きの直接的な名前チェックでAPIを照合し、類似した関数名の混同を防ぎます。これにより、事前にリンクされたインポートに依存せずに関数のアドレスを取得できます。

回避技術

  • アンチデバッグ保護: ローダーは複数のチェックを通じてデバッグを検出し、いずれかが解析を示す場合はクリーンに終了します。

    • Kernel32 APIチェック: デバッガの存在とリモートアタッチを照会し、検出された場合は終了します。
    • PEBフラグ検査: プロセスフラグを調べてデバッグの兆候(デバッグモードが有効になっているなど)を確認し、設定されていれば停止します。
    • ハードウェアブレークポイント検出: スレッドのデバッグレジスタを取得して設定されたブレークポイントを確認し、アクティブなものがあれば停止します。
    • デバッグポート照会: プロセスにアタッチされたデバッグポートが存在するか調べ、存在する場合は終了します。
    • 検出時の終了: いずれかのアラートで、スタックを復元して早期に戻り、挙動が露見しないようにします。
  • 解析耐性のためのジャンクコード生成: ローダーは重要でない操作のシーケンスを実行して逆アセンブル上に紛らわしいパターンを生成し、ランタイム効率に影響を与えずに静的解析を困難にします。

  • タイミングと挙動の正規化: ローダーはシステム速度を測定して通常のアプリケーションパターンに一致する模擬ワークロードを実行し、正規プロセスに紛れ込むのに役立てます。また、重要なアクションの前に短い一時停止を行い、実行タイミングを正規化します。

  • ETWロギングのバイパス: ローダーはETWロギングAPIにハードウェアブレークポイントを設定し、イベントログ呼び出しをインターセプトしてスキップすることで、システムログへの痕跡を防ぎます。

システムコール処理

  • 多層アンフッキング: ローダーは、関数を直接確認するか、フックされている場合は近くのコードをスキャンするか、ntdll内のパターンを数えて番号を推定し、既知の例外を調整することで、有効なシステムコール番号(SSN)を動的に取得します。

    使用される技術:

    • Hell's Gate
    • (Halo's/Tartarus) Gate
    • Veles' Reek
  • 間接システムコールとスタックスプーフィング: ローダーはntdll内でシステムコール用のクリーンなコードパスを見つけ、最大32の操作をチェーンしてコールスタックを隠し、トレースを回避します。完了後は元の状態を復元します。

ペイロードの注入と実行

  • DLLホローウィング: ローダーは対象DLLを取り込み、コードセクションへの書き込みを一時的に許可し、暗号化されたシェルコードを挿入して復号化し、保護を実行専用にリセットします。

  • メモリ内復号化: ローダーは、注入したメモリ内で繰り返し鍵パターンを直接適用してシェルコードを復号化します。

  • ユーティリティ関数: ローダーには、文字列長の測定、文字列の比較(標準またはワイド文字)、ルックアップ用の名前のハッシュ化、メモリポインタの検証、タイミング制御用のタイムスタンプ読み取りを行うユーティリティが含まれています。

その他の機能

  • RWXメモリ権限は使用されず、ステルス性のためにRWとRXを切り替えるだけです。
  • IATなし。単一の静的にリンクされたAPIも使用せず、フックや静的解析を回避します。
  • AsmLdrはコンソールや疑わしいものを表示せず、バックグラウンドで静かに実行されます。
  • 必要なAPI呼び出しはすべて難読化のためにハッシュを使用して解決されます。

シェルコード準備の方法

Pythonスクリプトgenerate.pyは、生のシェルコードファイルを暗号化します。アライメント用のパディングを追加し、キーを作成または使用して、各バイトを繰り返し周期でキーとXORします。出力ファイルshellcode.asmは、サイズ、暗号化データとキーの配列、および実行時にデータをロードするルーチンを定義します。ローダーの復号化はこのプロセスをメモリ上で踏襲します。キーが長いほど待機時間が長くなることに注意してください。

使用方法

準備

生のシェルコードバイナリ(例: payload.bin)を準備します。python generate.py payload.bin [optional_key] を実行して shellcode.asm を生成します。

カスタマイズ

szDllName(evader.asm内のUnicode hexワード)を変更して、urlmon.dllなどの代替DLLを指定します。str_hashロジックを使用して新しいAPIのDJB2ハッシュを再計算します。デバッグ時はマクロ(例: KILL_DEBUGGERS)をコメントアウトします。

制限と注意事項

AsmLdrはWindows 10/11 x64向けに最適化されています。カーネル更新によりオフセット(例: PEB+0x18)やNTDLLパターン(例: 0xb8d18b4c)が変わる可能性があるため、検証が必要です。エラー処理はNTSTATUS戻り値(例: <0は失敗)に依存しており、組み込みのロギングはありません。ジャンク操作や偽装操作はCPUサイクルを消費するため、リソース制約のあるシステムではリソースモニタに警告される可能性があります。管理された環境でのみ使用してください。

ツールをダウンロード