フィッシング手法

Reading time: 26 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

手法

  1. 被害者の調査
  2. 被害者のドメインを選択します。
  3. 被害者が使用しているログインポータルを探すために基本的なウェブ列挙を行い、なりすますポータルを決定します。
  4. OSINTを使用してメールアドレス見つけます
  5. 環境の準備
  6. フィッシング評価に使用するドメインを購入します。
  7. 関連するメールサービスのレコードを設定します(SPF、DMARC、DKIM、rDNS)。
  8. gophishでVPSを設定します。
  9. キャンペーンの準備
  10. メールテンプレートを準備します。
  11. 認証情報を盗むためのウェブページを準備します。
  12. キャンペーンを開始!

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

ドメイン名のバリエーション技術

  • キーワード: ドメイン名は元のドメインの重要なキーワード含みます(例: 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.expireddomains.net/で使用できる期限切れのドメインを検索できます。
購入する期限切れのドメインがすでに良好なSEOを持っていることを確認するために、以下のサイトでそのカテゴリを検索できます:

メールの発見

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

GoPhishの設定

インストール

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

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

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

設定

TLS証明書の設定

このステップの前に、使用するドメインをすでに購入している必要があり、gophishを設定しているVPSのIPポイントしている必要があります。

bash
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を再起動します。

次に、DNS Aレコードmail.<domain> に設定し、VPSのIPアドレスを指すようにし、DNS MXレコードを mail.<domain> に設定します。

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

bash
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の使用に注意してください):

bash
{
"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を作成できます:

bash
#!/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

サービスの設定を完了し、次の操作を行って確認します:

bash
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週間待たなければならない場合でも、今すぐにすべての設定を終えることができます。

逆引きDNS(rDNS)レコードの設定

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

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

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

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

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

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

ドメインベースのメッセージ認証、報告および適合性 (DMARC) レコード

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

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

bash
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に基づいています。

note

DKIMキーが生成する両方のB64値を連結する必要があります:

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

Test your email configuration score

https://www.mail-tester.com/を使用してそれを行うことができます。
ページにアクセスして、彼らが提供するアドレスにメールを送信してください:

bash
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を開く必要があり、メールをrootとして送信した場合はファイル /var/mail/root でレスポンスを確認します)。
すべてのテストに合格していることを確認してください:

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

あなたはまた、あなたの管理下にあるGmailにメッセージを送信し、Gmailの受信トレイでメールのヘッダーを確認することができます。dkim=passAuthentication-Resultsヘッダー欄に存在する必要があります。

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;

​Spamhouseのブラックリストからの削除

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

Microsoftのブラックリストからの削除

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

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

送信プロファイル

  • 送信者プロファイルを識別するための名前を設定します
  • フィッシングメールを送信するアカウントを決定します。提案: noreply, support, servicedesk, salesforce...
  • ユーザー名とパスワードは空白のままにできますが、証明書エラーを無視することを確認してください

note

"テストメールを送信"機能を使用して、すべてが正常に動作していることをテストすることをお勧めします。
テストを行う際にブラックリストに載らないように、テストメールを10分メールアドレスに送信することをお勧めします。

メールテンプレート

  • テンプレートを識別するための名前を設定します
  • 次に、件名を書きます(奇妙なものではなく、通常のメールで読むことができるもの)
  • "トラッキング画像を追加"にチェックを入れていることを確認してください
  • メールテンプレートを書きます(以下の例のように変数を使用できます):
html
<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のような公開メールを探し、メールを送信して返信を待ちます。
  • 有効な発見されたメールに連絡を試み、返信を待ちます。

note

メールテンプレートでは、送信するファイルを添付することもできます。NTLMチャレンジを特別に作成したファイル/ドキュメントを使用して盗むことに興味がある場合は、このページを読んでください

ランディングページ

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

note

通常、ページのHTMLコードを修正し、ローカルでいくつかのテストを行う必要があります(おそらくApacheサーバーを使用して)結果に満足するまで。その後、そのHTMLコードをボックスに記入します。
HTML用に静的リソース(おそらくCSSやJSページ)を使用する必要がある場合は、_/opt/gophish/static/endpointに保存し、/static/<filename>_からアクセスできます。

note

リダイレクトでは、被害者の正当なメインウェブページにユーザーをリダイレクトするか、例えば_/static/migration.html_にリダイレクトし、5秒間スピニングホイールhttps://loading.io/)を表示し、その後プロセスが成功したことを示すことができます。

ユーザーとグループ

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

キャンペーン

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

送信プロファイルでは、最終的なフィッシングメールがどのように見えるかを確認するためにテストメールを送信できます

note

テストメールは10分メールアドレスに送信することをお勧めします。テスト中にブラックリストに載るのを避けるためです。

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

ウェブサイトのクローン

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

Clone a Website

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

いくつかのフィッシング評価(主にレッドチーム用)では、バックドアを含むファイルを送信したい場合があります(おそらくC2、または認証をトリガーする何か)。
いくつかの例については、次のページを確認してください:

Phishing Files & Documents

フィッシングMFA

プロキシMitM経由

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

ここで、evilginx2 CredSniper および muraenaのようなツールが役立ちます。このツールは、MitMのような攻撃を生成することを可能にします。基本的に、攻撃は次のように機能します:

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

VNC経由

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

検出の検出

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

ただし、被害者が野外で疑わしいフィッシング活動を積極的に探しているかどうかを知る他の方法もあります。詳細は次の通りです:

Detecting Phishing

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

フィッシングの評価

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

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする