Phishing Methodology

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)。

自動ツール

ウェブサイト

ビットフリッピング

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

この概念が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の管理ユーザー用のパスワードが表示されます。したがって、そのポートにアクセスし、その資格情報を使用して管理者パスワードを変更します。そのポートをローカルにトンネルする必要があるかもしれません。

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

次に、DNS Aレコード mail.<domain> をVPSのIPアドレスにポイントさせ、DNS MXレコードを mail.<domain> にポイントさせます。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

メール設定スコアをテストする

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

==========================================================
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...

  • ユーザー名とパスワードは空白のままにできますが、「証明書エラーを無視する」をチェックすることを確認してください

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

メールテンプレート

  • テンプレートを識別するための名前を設定します

  • 次に、件名を書きます(特に奇妙なものではなく、通常のメールで読むことができるもの)

  • トラッキング画像を追加」にチェックを入れていることを確認してください

  • メールテンプレートを書きます(以下の例のように変数を使用できます):

<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のような公開メールを検索し、メールを送信して返信を待ちます。

  • いくつかの有効な発見されたメールに連絡を試み、返信を待ちます。

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

ランディングページ

  • 名前を記入

  • ウェブページのHTMLコードを記入します。ウェブページをインポートすることもできます。

  • 提出データをキャプチャパスワードをキャプチャにチェックを入れます。

  • リダイレクトを設定します。

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

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

ユーザーとグループ

  • 名前を設定

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

キャンペーン

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

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

テストメールを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を使用して、あなたのメールがスパムフォルダに入るか、ブロックされるか、成功するかを評価します。

参考文献

HackTricksをサポートする

Last updated