hacktricks/generic-methodologies-and-resources/phishing-methodology
2024-03-26 11:44:28 +00:00
..
clone-a-website.md Translated ['forensics/basic-forensic-methodology/pcap-inspection/wiresh 2024-02-06 04:13:43 +00:00
detecting-phising.md Translated ['forensics/basic-forensic-methodology/specific-software-file 2024-02-07 05:47:12 +00:00
phishing-documents.md Translated ['forensics/basic-forensic-methodology/README.md', 'forensics 2024-02-09 01:39:37 +00:00
README.md Translated ['generic-methodologies-and-resources/phishing-methodology/RE 2024-03-26 11:44:28 +00:00

フィッシング手法

htARTEHackTricks AWS Red Team Expert でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法

手法

  1. ターゲットを調査する
    1. ターゲットドメインを選択する。
    2. ターゲットが使用しているログインポータルを検索し、なりすますことに決めるために基本的なWeb列挙を実行する。
    3. いくつかのOSINTを使用してメールアドレスを見つける
  2. 環境を準備する
    1. フィッシングアセスメントに使用するドメインを購入する
    2. 関連するレコードSPF、DMARC、DKIM、rDNS構成するメールサービスを構成する
    3. gophishを使用してVPSを構成する
  3. キャンペーンを準備する
    1. メールテンプレートを準備する
    2. 資格情報を盗むためのWebページを準備する
  4. キャンペーンを開始する!

類似のドメイン名を生成するか信頼できるドメインを購入する

ドメイン名の変更手法

  • キーワード: オリジナルドメインの重要なキーワードを含むドメイン名zelster.com-management.com
  • ハイフン付きサブドメイン: サブドメインのドットをハイフンに変更するwww-zelster.com
  • 新しいTLD: 同じドメインを新しいTLDを使用してzelster.org
  • ホモグリフ: ドメイン名の文字を似ている文字で置き換えるzelfser.com
  • 転置: ドメイン名内の2つの文字を入れ替えるzelsetr.com
  • 単数形/複数形: ドメイン名の末尾に「s」を追加または削除するzeltsers.com
  • 省略: ドメイン名から1つの文字を削除するzelser.com
  • 繰り返し: ドメイン名内の1つの文字を繰り返すzeltsser.com
  • 置換: ホモグリフと似ていますが、より控えめです。ドメイン名の1つの文字を置き換え、おそらくキーボード上の元の文字に近い文字で置き換えますzektser.com
  • サブドメイン: ドメイン名内にドットを挿入するze.lster.com
  • 挿入: ドメイン名に文字を挿入するzerltser.com
  • ドットの欠落: ドメイン名にTLDを追加するzelstercom.com

自動ツール

ウェブサイト

ビットフリップ

太陽フレア、宇宙線、ハードウェアエラーなどのさまざまな要因により、保存されたビットや通信中のビットが自動的に反転される可能性があります。

この概念をDNSリクエストに適用すると、DNSサーバーが受信したドメインが最初にリクエストされたドメインと異なる可能性があります。

たとえば、ドメイン「windows.com」の1ビットの変更で「windnws.com」に変更される可能性があります。

攻撃者は、被害者のドメインに類似した複数のビットフリップドメインを登録して、合法的なユーザーを自分のインフラストラクチャにリダイレクトすることを狙っています。

詳細については、https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/を参照してください。

信頼できるドメインを購入する

https://www.expireddomains.net/で使用できる期限切れのドメインを検索できます。
購入する期限切れのドメインがすでにSEOが良いかどうかを確認するために、次のカテゴリーにどのように分類されているかを調べることができます:

メールアドレスの発見

より多くの有効なメールアドレスを発見したり、すでに発見したメールアドレスを検証するために、被害者のsmtpサーバーをブルートフォースできるかどうかを確認できます。ここでメールアドレスを検証/発見する方法を学ぶ
さらに、ユーザーがメールにアクセスするためにWebポータルを使用している場合は、そのポータルがユーザー名ブルートフォースに対して脆弱かどうかを確認し、可能であれば脆弱性を悪用できます。

GoPhishの構成

インストール

https://github.com/gophish/gophish/releases/tag/v0.11.0からダウンロードできます。

ダウンロードして/opt/gophish内に解凍し、/opt/gophish/gophishを実行します。
出力には、管理ユーザーのパスワードが3333ポートで表示されます。したがって、そのポートにアクセスして、これらの資格情報を使用して管理者パスワードを変更します。ローカルにポートをトンネリングする必要がある場合があります。

ssh -L 3333:127.0.0.1:3333 <user>@<ip>

設定

TLS証明書の設定

この手順の前に、使用するドメインをすでに購入しておく必要があり、そのドメインがgophishを設定しているVPSのIP指している必要があります。

DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot certonly --standalone -d "$DOMAIN"
mkdir /opt/gophish/ssl_keys
cp "/etc/letsencrypt/live/$DOMAIN/privkey.pem" /opt/gophish/ssl_keys/key.pem
cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt

メールの設定

インストールを開始します:apt-get install postfix

次に、次のファイルにドメインを追加します:

  • /etc/postfix/virtual_domains
  • /etc/postfix/transport
  • /etc/postfix/virtual_regexp

また、/etc/postfix/main.cf内の次の変数の値を変更します

myhostname = <domain>
mydestination = $myhostname, <domain>, localhost.com, localhost

最後に、/etc/hostname/etc/mailname ファイルをドメイン名に変更し、VPSを再起動します。

次に、mail.<domain>IPアドレスを指すDNS Aレコードと、mail.<domain>を指すDNS MXレコードを作成します。

さて、メールを送信するテストを行いましょう:

apt install mailutils
echo "This is the body of the email" | mail -s "This is the subject line" test@email.com

Gophishの設定

Gophishの実行を停止し、設定を行います。
/opt/gophish/config.jsonを以下のように変更してくださいhttpsの使用に注意:

{
"admin_server": {
"listen_url": "127.0.0.1:3333",
"use_tls": true,
"cert_path": "gophish_admin.crt",
"key_path": "gophish_admin.key"
},
"phish_server": {
"listen_url": "0.0.0.0:443",
"use_tls": true,
"cert_path": "/opt/gophish/ssl_keys/key.crt",
"key_path": "/opt/gophish/ssl_keys/key.pem"
},
"db_name": "sqlite3",
"db_path": "gophish.db",
"migrations_prefix": "db/db_",
"contact_address": "",
"logging": {
"filename": "",
"level": ""
}
}

gophishサービスの設定

gophishサービスを作成して自動的に起動および管理できるようにするために、次の内容でファイル/etc/init.d/gophishを作成できます。

#!/bin/bash
# /etc/init.d/gophish
# initialization file for stop/start of gophish application server
#
# chkconfig: - 64 36
# description: stops/starts gophish application server
# processname:gophish
# config:/opt/gophish/config.json
# From https://github.com/gophish/gophish/issues/586

# define script variables

processName=Gophish
process=gophish
appDirectory=/opt/gophish
logfile=/var/log/gophish/gophish.log
errfile=/var/log/gophish/gophish.error

start() {
echo 'Starting '${processName}'...'
cd ${appDirectory}
nohup ./$process >>$logfile 2>>$errfile &
sleep 1
}

stop() {
echo 'Stopping '${processName}'...'
pid=$(/bin/pidof ${process})
kill ${pid}
sleep 1
}

status() {
pid=$(/bin/pidof ${process})
if [["$pid" != ""| "$pid" != "" ]]; then
echo ${processName}' is running...'
else
echo ${processName}' is not running...'
fi
}

case $1 in
start|stop|status) "$1" ;;
esac

サービスの設定を完了し、次の手順を実行して確認します:

mkdir /var/log/gophish
chmod +x /etc/init.d/gophish
update-rc.d gophish defaults
#Check the service
service gophish start
service gophish status
ss -l | grep "3333\|443"
service gophish stop

メールサーバーとドメインの設定

待つ & 正当性を保つ

ドメインが古いほど、スパムとして検出される可能性が低くなります。そのため、フィッシングアセスメントを行う前に、できるだけ長い時間少なくとも1週間待つべきです。さらに、信頼性の高いセクターに関するページを設置すると、得られる信頼性が向上します。

1週間待たなければならないとしても、今すぐすべてを設定しておくことができます。

逆引きDNSrDNSレコードの設定

VPSのIPアドレスをドメイン名に解決するrDNSPTRレコードを設定します。

送信者ポリシーフレームワークSPFレコード

新しいドメインにはSPFレコードを設定する必要があります。SPFレコードが何かわからない場合は、このページを参照してください。

https://www.spfwizard.net/を使用して、SPFポリシーを生成できますVPSマシンのIPを使用してください

これは、ドメイン内のTXTレコードに設定する必要がある内容です。

v=spf1 mx a ip4:ip.ip.ip.ip ?all

ドメインベースのメッセージ認証、レポーティング、および遵守DMARCレコード

新しいドメインにDMARCレコードを設定する必要があります。DMARCレコードが何かわからない場合は、このページを読んでください

次の内容を持つ新しいDNS TXTレコードを作成し、ホスト名を_dmarc.<domain>に向ける必要があります:

v=DMARC1; p=none

DomainKeys Identified Mail (DKIM)

新しいドメインにDKIMを設定する必要があります。DMARCレコードが何かわからない場合は、このページを読んでください。

このチュートリアルは次に基づいています: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy

{% hint style="info" %} DKIMキーが生成する両方のB64値を連結する必要があります:

v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB

{% endhint %}

メール構成スコアをテストする

https://www.mail-tester.com/を使用してテストできます。
ページにアクセスして、指示されたアドレスにメールを送信してください:

echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com

あなたのメール構成をチェックすることもできます。check-auth@verifier.port25.com にメールを送信し、応答を読むことができます(これにはポート 25開く必要があり、ルートとしてメールを送信すると、ファイル /var/mail/root で応答を確認できます)。
すべてのテストに合格していることを確認してください:

==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham

あなたのコントロール下のGmailにメッセージを送信し、Gmailの受信トレイでそのメールのヘッダーをチェックすることもできます。Authentication-Resultsヘッダーフィールドにdkim=passが存在しているはずです。

Authentication-Results: mx.google.com;
spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com;
dkim=pass header.i=@example.com;

スパムハウスブラックリストからの削除

ページwww.mail-tester.comは、あなたのドメインがスパムハウスによってブロックされているかどうかを示すことができます。あなたはあなたのドメイン/IPを削除するようにリクエストすることができます: https://www.spamhaus.org/lookup/

マイクロソフトブラックリストからの削除

あなたは、https://sender.office.com/であなたのドメイン/IPを削除するようにリクエストすることができます。

GoPhishキャンペーンの作成と開始

送信プロファイル

  • 送信者プロファイルを識別するための名前を設定
  • どのアカウントからフィッシングメールを送信するかを決定します。提案: noreply, support, servicedesk, salesforce...
  • ユーザー名とパスワードを空白のままにしても構いませんが、証明書エラーを無視するようにチェックを入れてください

{% hint style="info" %} すべてが正常に動作していることをテストするために、**「テストメールを送信」**機能を使用することをお勧めします。
テストを行う際にブラックリストに登録されないように、テストメールを10分メールアドレスに送信することをお勧めします。 {% endhint %}

メールテンプレート

  • テンプレートを識別するための名前を設定
  • 次に、件名を記入します(奇妙なものではなく、通常のメールで読みたいと思えるもの)
  • トラッキング画像を追加するようにチェックを入れていることを確認してください
  • メールテンプレートを記入します(次の例のように変数を使用することができます)
<html>
<head>
<title></title>
</head>
<body>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">Dear {{.FirstName}} {{.LastName}},</span></p>
<br />
Note: We require all user to login an a very suspicios page before the end of the week, thanks!<br />
<br />
Regards,</span></p>

WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY

<p>{{.Tracker}}</p>
</body>
</html>

電子メールの信頼性を高めるために、クライアントからの電子メールに署名を使用することが推奨されています。提案:

  • 存在しないアドレスに電子メールを送信し、返信に署名があるかどうかを確認します。
  • info@ex.com や press@ex.com、public@ex.com などの公開メールを検索して、電子メールを送信して返信を待ちます。
  • いくつかの有効な発見された電子メールに連絡を取り、返信を待ちます

{% hint style="info" %} 電子メールテンプレートには、送信するファイルを添付することもできます。特別に作成されたファイル/ドキュメントを使用して NTLM チャレンジを盗む場合は、このページを参照してください。 {% endhint %}

ランディングページ

  • 名前を記入
  • ウェブページの HTML コードを記入します。ウェブページをインポートすることもできます。
  • 送信されたデータをキャプチャし、パスワードをキャプチャします
  • リダイレクトを設定

{% hint style="info" %} 通常、ページの HTML コードを変更してローカルでテストを行い(たとえば Apache サーバーを使用して)、結果が気に入るまで調整する必要があります。その後、その HTML コードをボックスに記入します。
HTML に静的リソースを使用する必要がある場合(たとえば、いくつかの CSS および JS ページ)、それらを /opt/gophish/static/endpoint に保存し、/static/<filename> からアクセスできます。 {% endhint %}

{% hint style="info" %} リダイレクトでは、ユーザーを被害者の正規のメインウェブページにリダイレクトするか、例えば /static/migration.html にリダイレクトして、5秒間スピニングホイールhttps://loading.io/**)を表示し、その後処理が成功したことを示します。 {% endhint %}

ユーザー&グループ

  • 名前を設定
  • データをインポートします(例のテンプレートを使用する場合、各ユーザーの名、姓、メールアドレスが必要です)

キャンペーン

最後に、キャンペーンを作成し、名前、電子メールテンプレート、ランディングページ、URL、送信プロファイル、グループを選択します。URL は被害者に送信されるリンクになります

送信プロファイルを使用して、最終的なフィッシングメールの外観を確認するためにテストメールを送信できます

{% hint style="info" %} テストメールは、テストを行ってブラックリストに登録されないようにするために、10分間のメールアドレスに送信することをお勧めします。 {% endhint %}

すべてが準備できたら、キャンペーンを開始します!

ウェブサイトのクローン

何らかの理由でウェブサイトをクローンしたい場合は、次のページを確認してください:

{% content-ref url="clone-a-website.md" %} clone-a-website.md {% endcontent-ref %}

バックドア付きドキュメント&ファイル

一部のフィッシングアセスメント(主に Red Team 向け)では、バックドアを含むファイルを送信したい場合がありますたとえば、C2 または認証をトリガーするもの)。
いくつかの例については、次のページを参照してください:

{% content-ref url="phishing-documents.md" %} phishing-documents.md {% endcontent-ref %}

フィッシング MFA

プロキシ MitM 経由

前述の攻撃はかなり巧妙で、実際のウェブサイトを偽装し、ユーザーが設定した情報を収集しています。残念ながら、ユーザーが正しいパスワードを入力しなかった場合や、偽装したアプリケーションが2要素認証2FAで構成されている場合、この情報ではだまされたユーザーをなりすますことはできません

このような場合、evilginx2CredSniper、**muraena などのツールが役立ちます。このツールを使用すると、MitM のような攻撃を生成できます。基本的に、攻撃は次のように機能します:

  1. 実際のウェブページのログインフォームをなりすます
  2. ユーザーは自分の資格情報を偽のページに送信し、ツールはそれらを実際のウェブページに送信し、資格情報が有効かどうかを確認します。
  3. アカウントが2FA で構成されている場合、MitM ページはそれを要求し、ユーザーが入力すると、ツールはそれを実際のウェブページに送信します。
  4. ユーザーが認証されると、(攻撃者として)あなたは、ツールが MitM を実行している間に行われるすべてのやり取りの資格情報、2FA、クッキー、およびその他の情報をキャプチャします。

VNC 経由

被害者を悪意のあるページに送る代わりに、実際のウェブページに接続されたブラウザを持つVNC セッションに被害者を送信するとどうなりますか?彼が何をしているかを見ることができ、パスワード、使用された MFA、クッキーなどを盗むことができます。
これは EvilnVNC で行うことができます。

検出の検出

明らかに、バレたかどうかを知る最良の方法の1つは、ドメインをブラックリスト内で検索することです。リストされている場合、どこかであなたのドメインが疑わしいと検出されました。
ドメインがどのブラックリストにも登録されていないか簡単に確認する方法の1つは、https://malwareworld.com/ を使用することです。

ただし、被害者が野生の中で疑わしいフィッシング活動を積極的に探しているかどうかを知る他の方法については、次のページで説明されています:

{% content-ref url="detecting-phising.md" %} detecting-phising.md {% endcontent-ref %}

被害者のドメイン名に非常に似たドメインを購入したり、被害者のドメインのキーワードを含むサブドメインのために証明書を生成したりすることができます。被害者がそれらと何らかの DNS または HTTP インタラクションを行うと、疑わしいドメインを積極的に探していることがわかります。その場合は、非常に慎重に行動する必要があります。

フィッシングの評価

Phishious を使用して、電子メールがスパムフォルダに入るか、ブロックされるか、成功するかを評価します。

参考文献