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.sh や
Amassを使う。攻撃面をマップするソフトを scanner と呼ぶ。 - Google dorks / GitHub dorks: 検索演算子で機微情報を掘る。
- 大量スキャンは並列性が鍵 → Rust では rayon (
par_iter()) や tokio の async でスループットを上げる。CVE/CWE(脆弱性 DB と分類)をスクレイピングして弱点を探す。
脆弱性の種類
- Web: Reflected/Stored/DOM-based XSS、SSRF、CSRF、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 を使ったフィッシングも論じられる。