RAT・C2 アーキテクチャと攻撃面探索

攻撃者が標的を遠隔操作するための基盤(RAT / C2)と、その前段である偵察・攻撃面の発見手法。Black Hat Rust の攻撃側(offensive security)の全体像。_moc-security

攻撃のフェーズ

Reconnaissance(偵察) → exploit(脆弱性の悪用、zero-day 含む) → exfiltration(不正なデータ転送)。pentest = penetration testing(セキュリティ監査)。

偵察と攻撃面探索 (OSINT)

  • OSINT (Open Source INTelligence): 公開情報から標的を調べる。代表ツール Maltego
  • Assets discovery: サブドメイン列挙など。証明書透明性ログ crt.shAmass を使う。攻撃面をマップするソフトを scanner と呼ぶ。
  • Google dorks / GitHub dorks: 検索演算子で機微情報を掘る。
  • 大量スキャンは並列性が鍵 → Rust では rayon (par_iter()) や tokio の async でスループットを上げる。CVE/CWE(脆弱性 DB と分類)をスクレイピングして弱点を探す。

脆弱性の種類

  • Web: Reflected/Stored/DOM-based XSSSSRFCSRF、Open redirect、(Sub)Domain takeover、Arbitrary file read(directory traversal)。
  • ネイティブ: バッファオーバーフロー等。実例 CVE-2021-3156 (sudo の Baron Samedit, heap overflow)、CVE-2019-11229 (gitea の RCE)。

RAT (Remote Access Tool) の構成

TeamViewer のような遠隔操作ツールを攻撃用に作る。3 コンポーネント構成:

  • Agent — 標的内に常駐する本体。
  • C&C / C2 (Command & Control サーバ) — agent に指示を出す。
  • Client — オペレータが C2 を操作する。

C2 チャネルの選択肢

  • HTTP(現実的・高機能)、暗号化 SNS(Telegram を C2 に使う ToxicEye 等)。
  • DNS はブロックされやすい。P2P はサーバ不要で super node を一時選出(ZeroAccess, Zeus)。
  • DGA (Domain Generation Algorithm): C2 停止時にドメインを生成して引っ越し、可用性を上げる。

リアルタイム通信

short polling / long polling / WebSocket / Server-Sent Events から用途で選ぶ。

配送と検知回避

  • Dropper / Stager: 本体を分割し、まず小さな stager を落としてから RAT を取得し、検知を逃れる。Stager はメモリ上で完結させ証拠を残さない。
  • アンチウイルス回避: signature 検知(ハッシュ照合) / shape analysis(怪しい文字列) / behaviour 検知(サンドボックス実行)への対抗。VM 検知、anti-debugging(動的解析を遅らせる)、権限昇格(privilege escalation)。
  • 配布: upx で圧縮 bundle、self_update で自動更新。

ワーム化

RAT に自己複製・自己拡散を持たせる。拡散手段は SSH 等のネットワークサービスへのブルートフォース(~/.ssh/config を盗む)や RCE/XSS の悪用。

説得の心理学 (フィッシング)

アリストテレスの弁論術 3 原則 — ロゴス(論理) / パトス(感情) / エトス(信頼)。WebAssembly を使ったフィッシングも論じられる。

関連