1 概要
本レポートは、Kali Linuxに搭載されたセキュリティ検証ツール「Social-Engineer Toolkit (SET)」を使用し、ソーシャルエンジニアリング攻撃の一種であるクレデンシャル・ハーベスティング(認証情報の収集)の実証実験を行った結果をまとめたものである。検証では、SETの「Site Cloner」機能を用いてターゲットとなるWebサイトのログインページを複製し、偽のフィッシングサイトを構築した。被験者が偽サイト上で認証情報を入力した際、攻撃者側の端末においてユーザー名およびパスワードが平文で即座に閲覧可能であることを確認した。また、攻撃終了後に生成されるレポートファイルによる事後確認の手順についても検証を行った。本実験により、既存のツールを用いることで、高度なプログラミング知識を有さずとも精巧なフィッシング攻撃が可能である実態を確認し、URLの目視確認や多要素認証の導入といった防御策の重要性を再認識する結果となった。
2 課題
2.1 Setoolekit
Setoolkitとはソーシャルエンジニアリング攻撃を疑似的に実行し、組織のセキュリティ対策の有効性をテストするために設計されたオープンソースのペネトレーションテストツールキットのことである。管理者権限で実行する。

図1 setoolkit実行画面
2.2 Social-Engineering Attacks
番号ごとの意味を列挙する。
- ソーシャルエンジニアリング攻撃を行うためのメイン機能のこと。フィッシング、Webサイト攻撃、ウイルス感染メディア作成などがここに含まれる。
- ペネトレーションテスト(侵入テスト)を効率化するためのツール群。既知の脆弱性を突くエクスプロイトなどが含まれる。
- SET本体とは別に開発されたサードパーティ製のモジュールを使用する。
- SETを最新バージョンにアップデートする。
- SETの設定ファイル(set_config)を更新・再読み込みする。
- ヘルプやクレジットを表示する。
- SETを終了する。
本実習ではソーシャルエンジニアリングを勉強するので、1を選択する。
2.3 Website Attack Vectors
メインメニューで「Social-Engineering Attacks」を選択した後に表示される、具体的な攻撃手法のリストである。
番号ごとの意味を列挙する。
- 特定の個人や組織を狙った標的型メール攻撃を作成します。添付ファイル攻撃などが可能。
- 悪意のあるWebサイトを作成し、閲覧者を攻撃する。偽サイトによる情報窃取やマルウェア配布などが含まれる。
- USBメモリやCD/DVDなどの物理メディアを介して感染を広げる攻撃を作成する。
- 悪意のあるペイロードを作成し、それを受け取るためのリスナーを設定します。
- 多数のターゲットに対して一斉にメールを送信する攻撃。
- マイコンボードを利用したハードウェアベースの攻撃コードを作成する。
- 偽の無線アクセスポイントを作成し、接続してきたユーザーの通信を傍受・操作する。
- 悪意のあるURLを含むQRコードを生成し、スマートフォンなどを誘導する。
- WindowsのPowerShell機能を悪用した攻撃コードを生成する。
- サードパーティ製モジュール。
- SETを終了する。
本実習ではWebサイト攻撃の演習を行うため、メニューから2を選択する。
2.4 Credential Harvester Attack Method
Website Attack Vectorsを選択した後に表示される、Webサイトを利用した具体的な攻撃手法である。
番号ごとの意味を列挙する。
- Javaアプレットの偽装証明書などを利用し、ユーザーに許可させることでシステムへのアクセス権を取得する手法。
- ブラウザやプラグインの既知の脆弱性を攻撃し、シェルを奪取し、Metasploitと連携する。
- ログイン画面などを偽装し、入力されたユーザー名とパスワードを収集する手法。
- ユーザーが別のタブを見ている間に、開いていたタブの内容を偽のログイン画面に書き換え、戻ってきたユーザーに再ログインさせようとするフィッシング手法。
- リンクをクリックした際、本物のサイトの上に偽のサイトを重ねて表示し、URLが正しいと誤認させて情報を盗む。
- 1~5の攻撃手法を複数組み合わせて実行する。
- HTMLアプリケーションファイルをダウンロード・実行させ、PowerShellなどを経由してシステムを侵害する。
- SETを終了する。
本実習では認証情報の収集(ハーベスティング)を行うため、ここでは3を選択する。
2.5 Site Cloner
Credential Harvester Attack Methodを選択した後に表示される、偽サイトの作成方法である。
番号ごとの意味を列挙する。
- SETにあらかじめ用意されているテンプレートを使用して偽サイトを作成する。
- 実在するWebサイトのURLを指定し、そのページのデザインを自動的にコピーして偽サイトを作成する。
- 自分で作成したHTMLファイルなどをインポートして偽サイトとして使用する。
- SETを終了する。
本実習では実在するWebサイトのURLから偽サイトを生成するため、2を選択する。
2.6 IPv4アドレス取得
ifconfigでも実行できるが、ここ数年でLinuxのネットワークコマンドが徐々に変わりつつあるので今回はip addr show eth0を実行し、Kali LinuxのIPアドレスを取得する。

図6 IPv4アドレス取得
2.7 IPv4アドレス入力
ここでKaliのIPアドレスを入力する理由は、被害者が入力したIDやパスワードを攻撃者のパソコンに送信させるためである。データの宛先を指定するため、Webサイトのログイン画面には、ユーザーが入力ボタンを押したときに「入力されたデータをどこに送るか」という設定(送信先)が裏側に書かれている。通常サイトではデータは正規のWebサーバーに送られるが、今回の攻撃ではデータは攻撃者のPC(Kali Linux)に送らせる必要がある。
2.8 本物サイト閲覧
これが本物のWebサイトである。
2.9 偽物サイト作成
クローンしたいWebサイトのURLを入力し、エンターを押す。するとそのURLにアクセスし、HTMLを自動的にダウンロードする。そして、Kali Linux上でそのページを再現(偽サイトを立ち上げ)する。80番ポートで待ち受けている。
2.10 偽物サイト閲覧
図10の通り全く同じサイトが完成した。この偽サイトに気づかずUsernameとPasswordを入力してしまった場合、以下(図11)のようにターミナルで80番ポートで待ち受けていたところにUsernameとPassword情報が流出してしまう。

図11 情報流出画面
2.11 レポート
これらの流出したUsernameとPassword情報をレポートとしてまとめたものを確認してみる。catコマンドでレポートを開いてみると<param>項目にUsernameとPassword情報が確認できる。

図12 レポートの中身
3.まとめ
本実習では、Kali Linux上のSocial-Engineer Toolkit (SET)を用いて、Webサイトのクローンおよび認証情報の窃取(Credential Harvester Attack)を行う一連の流れを検証した。実験の結果、SETの「Site Cloner」機能を使用することで、HTMLやPHPなどの専門的なプログラミング知識がなくとも、わずか数ステップのコマンド操作だけで、実在するWebサイトと見分けがつかない偽サイトを構築できることが確認された。また、被害者がこの偽サイトに入力した認証情報(Username・Password)は、暗号化されることなく平文のまま攻撃者の端末に送信され、リアルタイムで閲覧される危険性も実証された。収集された情報はレポートファイルとして自動生成されるため、攻撃者による情報の管理も容易である点が脅威となる。本検証を通じて、攻撃者がいかに簡単にフィッシングサイトを作成できるかを理解できた。ユーザー側の対策としては、ログイン前に必ずブラウザのアドレスバー(URL)を確認し、正規のドメインであるかを注意深くチェックすることが基本となる。しかし、本物と酷似した偽サイトを視覚的に完全に見抜くことは困難であるため、IDとパスワードのみの認証に依存することはリスクが高い。したがって、万が一パスワードが窃取された場合でも不正ログインを防ぐことができるよう、多要素認証の導入や、不審なリンクを開かないためのセキュリティ教育といった、技術的・人的な多層防御が不可欠であると結論付けられる。







