Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ICMP-Ghost-A-Fileless-x64-Assembly-C2-Agent — ファイルレス x64 Assembly C2 フレームワーク。デュアルチャネル ICMP/DNS プロトコルピボット、ダイレクト syscall 実行、および ptrace ベースのプロセスインジェクションにより、ステルスなコマンド実行とデータ流出を実現します。 | Kitploit
ツール/GitHubGitHub/jm00nj/icmp-ghost-a-fileless-x64-assembly-c2-agent
特権昇格エクスプロイトフレームワークIDS/IPS回避シェルコードポストエクスプロイトコマンド&コントロールレッドチーミングペイロード開発

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
jm00nj/icmp-ghost-a-fileless-x64-assembly-c2-agent

ICMP-Ghost-A-Fileless-x64-Assembly-C2-Agent

ファイルレス x64 Assembly C2 フレームワーク。デュアルチャネル ICMP/DNS プロトコルピボット、ダイレクト syscall 実行、および ptrace ベースのプロセスインジェクションにより、ステルスなコマンド実行とデータ流出を実現します。

リポジトリを見るウェブサイト
88183720日前Kitploit レビュー済み
 ________  ___  ___  ________  ________  _________       ________  ________   
|\   ____\|\  \|\  \|\   __  \|\   ____\|\___   ___\    |\   ____\|\_____  \  
\ \  \___| \ \  \\\  \ \  \|\  \ \  \___|\|___ \  \_|    \ \  \___|\|____|\  \ 
 \ \  \  __ \ \   __  \ \  \\\  \ \_____  \   \ \  \      \ \  \     ____\_\  \
  \ \  \|\  \ \  \ \  \ \  \\\  \|____|\  \   \ \  \      \ \  \___|\____ \  \
   \ \ \_______ \ \__\ \__\ \_______\____\_\  \   \ \__\      \ \______\\_________\
    \ \_______|\|__|\|__|\|_______|\_________\   \|__|       \|______|\_________|
                                 \|_________|                                   

ファイルレス、純粋なx64アセンブリで記述されたC2インプラント。デュアルチャネル(ICMP/DNS)アーキテクチャを採用。libc不要、ディスク不要。標準的なEDRフックには不可視。


Architecture Language Protocol Protocol OS Version Suricata GitHub stars GitHub license GitHub repo size

Ghost-C2

概要

⭐️ この研究が役に立ったと思われたら、今後の開発を支援するためにスターを付けていただけると幸いです。

🚨 完全な技術研究およびソースコードはこちら: このリポジトリは概要です。完全なアーキテクチャ解説、W^Xメモリ回避の詳細、VTable実装については、公式プロジェクトページをご覧ください:ICMP-Ghost 技術解説

Ghost-C2 は、libc に依存せず、純粋な x64 Linux アセンブリで完全に記述されたコマンド&コントロールフレームワークです。すべての操作は直接システムコールを経由します。インポートテーブル、動的リンカの痕跡、ディスクへの書き込みは一切ありません。

当初は生の ICMP ステルスチャネルとして構築されましたが、バージョン 3.6.2 ではデュアルチャネルプロトコルピボッティングアーキテクチャを導入しました。オペレータは、静かな ICMP Raw Socket と回避的な DNS UDP トンネリングの間で、インプラントの通信チャネルをシームレスに切り替えることができます。インプラントは RAM 上のみに存在し、カスタム ptrace ベースのローダーを介して実行中のシステムプロセスに注入されます。

このプロジェクトは、カーネルに触れることなく、ユーザー空間のステルス性とネットワーク状態同期をどこまで追求できるかを探求するために構築されました。


アーキテクチャ

ghost-c2-architecture
┌─────────────────────────────────────────────────────────────┐
│                      オペレータマシン                        │
│                                                             │
│   ┌──────────────┐                                          │
│   │  client.asm  │  ← ターミナルUI: IP/ドメイン + コマンド  │
│   │  (オペレータ  │    ペイロードをローリングXORで暗号化      │
│   │   コンソール) │    状態同期: ICMP モード / DNS モード    │
│   └──────┬───────┘                                          │
│          │                                                  │
└──────────┼──────────────────────────────────────────────────┘
           │  チャネル1: Raw ICMP (ステートレス、ポート不要)
           │  チャネル2: DNS UDP ポート53 (非対称)
┌──────────┼──────────────────────────────────────────────────┐
│          │              ターゲットマシン                     │
│          ▼                                                  │
│   ┌──────────────┐     ┌─────────────────────────────────┐  │
│   │  loader.asm  │────▶│         sniff.asm (PIC)         │  │
│   │  (ファントム  │     │         RAMのみに存在           │  │
│   │   ローダー)   │     │         ホストプロセス内部      │  │
│   └──────────────┘     └────────────────┬────────────────┘  │
│                                         │                   │
│   1. /procをスキャンし対象PIDを特定       │ ICMP/DNSを待受    │
│   2. ptrace ATTACH                       │ 認証を検証        │
│   3. リモートmmap (RW) を強制             │ コマンドを復号    │
│   4. PICシェルコードを注入                │ fork + execve    │
│   5. mprotect → RX                       │ memfd_create     │
│   6. RIPをシェルコードにリダイレクト       │ 圧縮(DPCM-RLE)   │
│   7. ptrace DETACH → 終了                │ 暗号化&フラグ化  │
│                                         │ 応答を送信        │
└─────────────────────────────────────────┼───────────────────┘
                                          │  暗号化トラフィック
                                          ▼
                                   [ client.asm ]
                                   受信&検証
                                   ペイロード復号
                                   解凍(ハイブリッド)
                                   再組立て&表示

コンポーネント

client.asm — オペレータコンソール

攻撃側の端末です。UI、動的メモリ管理、ターゲット状態同期を担当します。パケットをICMP Echo RequestまたはDNS TXTクエリとして送出できます。フラグメント化された応答を待ち受け、バッファオーバーフローを防止し、出力を再構築します。「アクティブターゲット再接続」モジュールにより、孤立したセッションを救出できます。

sniff.asm — PICインプラントエージェント

ターゲット上で動作するインプラントです。生のバイナリ(位置独立、ELFヘッダなし)としてコンパイルされるため、任意のメモリアドレスに注入できます。内部のVTableを動的に更新し、オペレータからのピボットコマンドに応じてICMPスニッフィングとUDP DNSバインディングを切り替えます。

Phantom_Loader/loader.asm — 注入エンジン

配信メカニズムです。/procをスキャンし、comm名で対象プロセスを見つけ、多段階ptraceステートマシンを使用してPICシェルコードを注入します。注入後はクリーンに終了し、痕跡を残しません。


ステルス&回避テクニック

デュアルチャネルプロトコルピボッティング (ICMP ↔ DNS)

Ghost-C2 v3.6.2 では、エージェントを失うことなくネットワークプロトコルをホットスワップできます。特定のピボットコマンドを送信することで、マスターとエージェントの両方のVTableが動的に上書きされます。

  • !D (DNSにピボット): 両ノードがICMPソケットを閉じ、UDPポート53通信を初期化します。厳格なレイヤ3フィルタリングを回避し、企業のDNSトラフィックに溶け込むのに最適です。
  • !I (ICMPにピボット): エージェントはUDPソケットを閉じ、ポートバインディングを解除し、静かなRaw Socketスニッフィングに戻ります。「ファントム」ステルスモードに最適です。

DPCM-RLE ハイブリッド x64 圧縮機

Ghost-C2 のデータ送信エンジンは、x86-64 アセンブリで高度に最適化されたハイブリッド圧縮・エンコード層を利用しています。

  • DPCM (Differential Pulse Code Modulation): 参照文字と後続文字の数学的差分(デルタ)を計算・送信し、データエントロピーを低減します。
  • RLE (Run-Length Encoding): 連続するスペースや反復ブロックをビットレベルで圧縮します。
  • 結果: データペイロード全体を40%~55%削減し、ネットワークフットプリントと注入パケット数を最小限に抑えます。

ICMP プロトコル模倣

送出されるすべてのICMPパケットは、標準的なLinuxのpingと見分けがつかないように構成されています。

  • 動的なRDTSCタイムスタンプはstruct timevalを模倣します。
  • 正確なLinux iputilsパディング(0x10~0x1F)により、基本的なヒューリスティックファイアウォールを回避します。

ローリングXOR暗号

双方向の通信は、段階的にシフトするQWORD鍵で暗号化されます。これによりシャノンエントロピーが低く抑えられます(AESでは約8.0のスコアがDPIの異常を引き起こすのとは対照的です)。ローリングXORは、自然にノイズの多いデータのように見えるエントロピーを生成します。暗号定数もS-boxもなく、YARAがマッチするものは何もありません。

非対称認証

インプラントは、ID + SEQ ≠ 45,000 のICMPパケットをすべて無視します。インプラントの応答パケットでは ID + SEQ = 55,000 となります。これによりOSのエコー混乱を防ぎ、インターネットスキャナーやハニーポットをフィルタリングします。

memfd_create によるファイルレス実行

コマンド出力がディスクに触れることはありません。シェル出力は匿名RAMファイル(memfd_create)でキャプチャされ、[shm]という名前で、/proc/PID/fd内の正当な共有メモリマッピングに溶け込みます。

W^X メモリ注入(ファントムローダー)

RWXメモリを禁止する最新のカーネル緩和策を打破します。ローダーは2段階アプローチ(Remote mmap で RW → 注入 → Remote mprotect で RX)を使用します。どのページもWとXが同時になることはありません。

libc フリーのシステムコール難読化

すべてのシステムコール番号は2つの命令に分割され、静的解析や単純なgrepベースのスキャナーを無効化します。


武器化:エージェントの設定とビルド

厳格なOPSECを維持するため、Ghost-C2エージェント(sniff.asm)は外部設定を使用しません。コンパイルおよび注入の前に、マスターC2のIP、ポート、デコイDNSドメインをアセンブリコード内で直接定義する必要があります。

ステップ1: OPSEC変数の設定

sniff.asm を開き、.text セグメントの最下部までスクロールします。(注:エージェントは厳密に位置独立コード(PIC)であるため、.dataセグメントはありません。すべての設定変数はインラインで格納されています。)

以下の値をマスターサーバーに合わせて変更します。

  • IPアドレス: db 127, 0, 0, 1 をマスターのIPに変更します。
  • UDPポート: dw 0xB414(ポート5300)を、希望するポートにネットワークバイトオーダーで変更します(例:ポート53の場合は 0x3500)。

ステップ2: 生のシェルコードにアセンブル

nasm -f bin sniff.asm -o shellcode.bin

ステップ3: シェルコードのフォーマット

python3 -c "data = open('shellcode.bin', 'rb').read(); lines = ['\tdb ' + ', '.join(f'0x{b:02x}' for b in data[i:i+12]) for i in range(0, len(data), 12)]; open('c2_payload.txt', 'w').write('\n'.join(lines))"

ステップ4: ペイロードの暗号化(ローリングXOR)

  1. 生成された c2_payload.txt の内容をコピーします。
  2. xor.py を開き、raw_asm 変数の内容をコピーしたシェルコードに置き換えます。
  3. python3 xor.py を実行し、暗号化された出力をコピーします。

ステップ5: ファントムローダーへの注入

  1. loader.asm を開きます。
  2. c2_payload: ラベルを見つけます。
  3. 既存のプレースホルダーを削除し、暗号化されたシェルコードをラベルの直下に貼り付けます。
  4. (オプション:target db "cron", 10 を変更して、注入対象プロセスを変更します。)

ステップ6: 最終ローダーのコンパイル

nasm -f elf64 loader.asm -o loader.o
ld loader.o -o loader

ターゲットマシン上で root 権限で実行します(sudo ./loader)。これでエージェントは完全にファイルレスで動作します。


ツールをダウンロード