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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/0xsp-srd/aether
動的分析 (サンドボックス)メモリフォレンジック脆弱性分析シェルコードフォレンジックマルウェア分析デジタルフォレンジックコマンド&コントロールバイナリ解析インシデントレスポンス
GitHub0xsp-srd/aether

aether

58432ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Windowsメモリフォレンジックスおよび脅威ハンティングツールで、ライブプロセスメモリをスキャンして悪意のあるパターン、インジェクション技術、リフレクティブにロードされた.NETアセンブリを検出します。多層信頼度モデルを使用して誤検知を低減します。

リポジトリを見る

Aether ロゴ


Aether

バージョン : 0.9 (安定版リリース)

Aether は、Windows メモリフォレンジックスおよび脅威ハンティングツールです。実行中のプロセスメモリをスキャンして悪意のあるパターンを探し、インジェクション手法、インプラントシグネチャ、リフレクティブロードされた .NET アセンブリを検出します。多層信頼度モデルを採用しており、誤検知率を大幅に削減し、悪意のある動作をハンティングします。Aether は、ホローイング、APC、スレッドハイジャック手法の検出に優れた能力を備えています。セキュリティアナリストは、これを使用して不審な領域をスキャン、ハンティング、スナップショットし、オフライン解析に利用できます。

Docs: https://0xsp.com/docs/aether-getting-started/

研究記事:

https://0xsp.com/security%20research%20%20development%20srd/aether-memory-forensics-and-threat-hunting-tool/

https://0xsp.com/research/game-of-hide-and-seek-detecting-dynamic-api-resolution-at-runtime-with-aether/

コア機能

Aether のコア機能に関する簡単な説明です。詳細については、技術ブログ記事全文をお読みください:

シグネチャスキャン

  • バイトパターンマッチング — 先頭バイトインデックス を使用してプロセスメモリ全体を照合し、ナイーブなスキャンより 50〜100 倍高速
  • ASCII + UTF-16LE の二重エンコーディング — .NET CLR によって保存された文字列を捕捉します("msxsl:script" が 6D 00 73 00 78 00 ... になる場合など)
  • JSON ファイルからの動的ルールロード — 再コンパイルなしで rules/ に新しいシグネチャを追加できます
  • MEM_PRIVATE 領域内の PE ヘッダー検出 — リフレクティブロードされた .NET アセンブリ (MZ + PE + BSJB メタデータ) をフラグ付けします

構造的メモリIOC

Aether は、生のワーキングセットシグナルの上に 5つのフィルター を重ねます。これにより、1つの検出結果が報告される(FPフィルタリング付きで)前に、複数の一致する指標が必要になります。

その他の構造チェック:

  • PEB モジュール相互参照 : PEB モジュールリストにない MEM_IMAGE アロケーション(DLLホローイング / モジュールストンピング)
  • ワーキングセットスキャン : K32QueryWorkingSetEx による変更コードページの検出。4 KB ページごとではなくリージョンごとに1回の syscall で バッチ処理 されます(ナイーブなループより約 50〜100倍高速)
  • Private RWX 検出 : MEM_PRIVATE + PAGE_EXECUTE_*(FP結果を生成します)アロケーションをフラグ付けします(シェルコード、JITスプレー、動的コードスタブアロケーション)
  • フックプロローグプローブ — 各プライベートコードページの最初の16バイトを読み取り、古典的な x86/x64 トランポリンを照合します:
    • E9 ?? ?? ?? ?? — JMP rel32
    • FF 25 ?? ?? ?? ?? — JMP [rip+disp32]
    • 68 ?? ?? ?? ?? C3 — PUSH imm32 ; RET
    • 48 B8 ?? ?? ?? ?? ?? ?? ?? ?? FF E0 — MOV RAX, imm64 ; JMP RAX
    • 49 BB ?? ?? ?? ?? ?? ?? ?? ?? 41 FF E3 — Detours スタイルの

スレッド開始アドレス検証 (TSAV / L8)

Aether は、スレッドをより厳格な分類でチェックし、L1〜L5 の検出結果と相互相関させます。対象プロセス内のすべての生成済みスレッドについて、NtQueryInformationThread を介して Win32StartAddress を読み取り、アクセスが許可される場合は GetThreadContext / Wow64GetThreadContext を介してライブの Rip / Eip も読み取ります。各アドレスは次の表のように評価されます。詳細はブログ記事をご覧ください:

これが「start_address が任意のモジュール内にあるか」という基本的なチェックよりも強力な理由:

  • VirtualQueryEx クロスチェック — すべてのアドレスは、モジュールリストの線形スキャンではなく、単一の O(1) 呼び出しで Type / Protect / AllocationBase を照会されます
  • L1〜L5 との相互相関 — 開始アドレスが既にフラグ付けされたアロケーション内にあるスレッドは、「OK」から TSAV_MODIFIED_HOST に引き上げられます
  • PEB 整合性 — 開始アドレスが技術的には「実在する」範囲内にある場合でも、ホローイングされたモジュールを検出します
  • サスペンド中 RIP プローブ — Win32StartAddress は NtSetInformationThread を介してプロセスから書き込み可能であり、スプーフィング可能なフィールドです。サスペンドされたスレッドのライブ Rip は、ローダーが簡単に書き換えられない値です。この2つを比較し、不審な領域に解決される不一致をフラグ付けします
  • WoW64 対応 — 64ビットプロセス内の32ビットスレッドに対して、自動的に Wow64GetThreadContext に切り替えて Eip を読み取ります
  • アクセス権限ラダー — スレッドごとに QUERY_INFORMATION | GET_CONTEXT → QUERY_INFORMATION → へとフォールバックするため、部分的なアクセスしかないシナリオでも有用な分類を生成できます

L9 + L10 - ヒープAPIテーブル検出とクロスモジュール相関

ランタイムAPI解決は、マルウェアが頻繁に使用する手法です。Aether の検出メカニズムは、ヒープをスキャンして有効なモジュールアドレスとポインターを探し、その結果を以下に示すフィルタリング基準と相関させることで、この動作を特定します:

各フィルターは、実際のテレメトリで観測された特定の FP クラスを除去します:

エントロピー分析 & シェルコードヒューリスティック

Aether は現時点ではスタブレベルでの XOR 検出パターンをサポートし、シャノンエントロピーアルゴリズムを採用してメモリ領域内のバイト値のランダム性をチェックし、しきい値を超えるすべてをフラグ付けします。大量の FP に対処するため、Aether は複数の指標を使用します。

C2ビーコン検出

  • TCP 接続モニタリング — 対象PIDの GetExtendedTcpTable をポーリングします
  • ビーコンパターン検出 — 周期的な短命接続(古典的なC2コールバック動作)を識別します
  • 接続テーブル出力 — 状態、エンドポイント、ヒット数、プロトコルを含む整形されたコンソールテーブル

出力モード

  • 深刻度ベースの ANSI ハイライト付きカラーコンソールレポート
  • SIEM / d-tect.py パイプライン統合のための機械解析可能な JSON
  • 段階的疑惑出力 — 各 MODIFIED_CODE_* 検出には private_pages と region_pages が含まれ、トリアージで実際の数値を確認できます
  • 接続監視用の Unicode ボックス描画文字を使用したテーブル形式の出力

使用方法

root@kitploit:~
Aether.exe --scan --pid <PID> [OPTIONS]
Aether.exe --scan --lookup "ProcessName.exe"
Aether.exe --hunt <PID> SLEEP_MS PERIOD
Aether.exe --scan-all [OPTIONS]

オプション

コンパイル方法

前提条件

  • Zig 0.16 — ここからダウンロード
  • クロスコンパイルは任意のホストOS(Linux、macOS、Windows)で動作します

ビルド

root@kitploit:~
git clone https://github.com/0xsp-SRD/aether
cd aether

# Debug build (safety checks enabled)
zig build

# Release build (smaller, faster binary)
zig build -Doptimize=ReleaseSafe
# or
zig build -Doptimize=ReleaseFast

ビルドされた実行可能ファイルは zig-out/bin/Aether.exe に生成されます。

デプロイ

追加のシグネチャスキャンを実行する場合は、zig-out/bin/Aether.exe と rules/ ディレクトリをターゲットの Windows マシンにコピーします。対象プロセスに管理者権限が必要な場合は、Aether.exe を Administrator 権限で実行する必要があります。

制限事項

  • ユーザーモードのみ — カーネルドライバなし。ルートキットやカーネルレベルの操作は検出できません
  • IPv4のみ — TCP 接続監視は現時点では IPv6 エンドポイントに対応していません。
  • L5 ディスク差分にはファイルアクセスが必要 — 元のモジュールファイルが削除されているかロックされている場合、ディスク差分はそのモジュールを静かにスキップします(他のレイヤーは引き続き実行されます)
  • TSAV スプーフトランポリンリストはスキャナー自身のプロセス内で解決されます — システムDLLがセッション全体でASLRベースを共有する一般的なケースを捕捉しますが、プロセスごとに固有のベースを持つターゲットは見逃す可能性があります(Win10+ではまれ)
  • TSAV RIP プローブはサスペンド中のスレッドのみを捕捉します — 実行中のスレッドに対する Win32StartAddress の書き換えは、プローブ時にそのスレッドがたまたま待機状態にある場合にのみ検出できます(Moneta と同じ制約)
  • このリリースのXOR-PE検出は基本的なものです

ライセンス

Aether Community は GNU GPL v3.0 の下でライセンスされています。商用ライセンスは、プロプライエタリまたは商用利用の場合にのみ作者から入手できます。

ツールをダウンロード
レイヤーフィルター目的
L1構造実行可能な IMAGE サブリージョンのみが対象(.data / .rdata の COW ノイズを排除)
L2定量的private_pages 数と private_ratio で評価(低 / 中 / 高)
L3裏付け独立した シグナルが同じアロケーションベースで一致した場合にのみ格上げ — シグネチャヒット、missing_peb_entry、private_rwx、フックプロローグ、またはディスク差分
L4CLR対応CLR がロードされているときに一律にスキップするのではなく、ngen / R2R / tiered-JIT ターゲット (*.ni.dll, mscor*, clr*, coreclr, system.private.corelib*) に対してモジュール単位で抑制
L5ディスク差分CreateFileMappingW(SEC_IMAGE_NO_EXECUTE) でモジュールファイルをマッピングし、各プライベート実行可能ページの最初の16バイトをディスク上の同じ RVA と比較します。差異があれば実際の改ざん IOC です
MOV R11, imm64 ; JMP R11
  • CLR 検出 — Cor_Private_IPCBlock_v4_<PID> および v2 の Cor_Private_IPCBlock_<PID>(レガシー .NET 2/3 / mscorwks)のセクションオブジェクトプローブ。古いランタイムを実行しているノイズの多いアプリプールが誤分類されないようにします
  • 判定深刻度条件
    TSAV_SHELLCODE_PRIVATE重大アドレスが MEM_PRIVATE + PAGE_EXECUTE_* 領域内にある — 古典的な CreateRemoteThread シェルコード
    TSAV_SUSPENDED_RIP重大サスペンドされたスレッドの Rip が Win32StartAddress と一致せず、不審な領域に解決される場合 — Win32StartAddress のスプーフィング(EarlyBird / APC トリック)や SetThreadContext ハイジャックを捕捉します
    TSAV_HOLLOWED_HOST高PEBモジュールリストにない MEM_IMAGE アロケーション内のアドレス(DLLホローイング / モジュールストンピング)
    TSAV_MODIFIED_HOST高L1〜L5 パイプラインが既に MODIFIED_CODE_*、MISSING_PEB、PRIVATE_RWX、DISK_MEM_DIFF、または HOOK_PROLOGUE としてフラグ付けした MEM_IMAGE アロケーション内のアドレス
    TSAV_STAGED_PRIVATE_RW高MEM_PRIVATE + PAGE_READWRITE — VirtualProtect 前のシェルコードステージング
    TSAV_MAPPED_NONPE中PEヘッダーがない MEM_MAPPED(ページファイルバッキングセクション)— sRDI / ページファイルリフレクティブローダー
    TSAV_SPOOF_TRAMPOLINE中アドレスが拒否リストに登録されたトランポリンと一致(LoadLibraryA/W/ExA/W、WinExec、CreateProcessA/W、VirtualAlloc[Ex]、RtlExitUserThread、RtlExitUserProcess、NtTerminateProcess、ShellExecuteA/W)
    QUERY_LIMITED_INFORMATION
    フィルタールール除去するFPクラス
    F1count >= 5ランダムなポインター形状データ、NULL、HMODULES
    F2ホストEXEのみを指すランを拒否アプリケーションクラスのC++ vtable
    F3distinct_modules >= 2単一DLLフレームワークのvtable (Qt, MFC, wxWidgets)
    F4capability_modules >= 2単一のOS DLLに触れるブラウザ/CRT vtable(例: iertutil + ucrtbase + shlwapi)
    F5 (L10)チェック可能なポインターの >= 80% が エクスポートされた RVA 上にあるWinsock LSP ディスパッチテーブル、プラグインコールバック配列、内部(非エクスポート)メソッドを指す vtable
    フラグ説明
    --pid, -p <PID>スキャン対象のプロセスID
    --lookup, -l <name>プロセス名に一致するすべてのPIDを検索
    --json, -j結果をJSONとして出力(SIEM統合用)
    --verbose, -vリージョンごとのスキャン詳細を表示
    --scan-all, -aすべてのプロセスをスキャン
    --hunt, -b <PID> [ms] [hits]接続を監視 — ms ごとにポーリング(デフォルト2000)、hits 回以上出現するエンドポイントをフラグ付け
    --networkingネットワーク監視モード
    --rules, -r <dir>ルールディレクトリ(デフォルト: rules/)
    --config, -c <file>単一のルールファイル(レガシー形式)
    --dump, ``指定サイズで特定のメモリ領域をダンプ
    --read, ``メモリ領域の内容をターミナル上でライブ表示
    --help, -hヘルプを表示