hacktricks/generic-methodologies-and-resources/phishing-methodology
2023-09-04 14:21:01 +00:00
..
clone-a-website.md Translated to Japanese 2023-07-07 23:42:27 +00:00
detecting-phising.md Translated to Japanese 2023-07-07 23:42:27 +00:00
phishing-documents.md Translated to Japanese 2023-07-07 23:42:27 +00:00
README.md Translated ['generic-methodologies-and-resources/external-recon-methodol 2023-09-04 14:21:01 +00:00

フィッシングの手法

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

手法

  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つの文字を入れ替えますzelster.com
  • 単数形/複数形: ドメイン名の末尾に「s」を追加または削除しますzeltsers.com
  • 省略: ドメイン名から1つの文字を削除しますzelser.com
  • 繰り返し: ドメイン名の一部の文字を繰り返しますzeltsser.com
  • 置換: ホモグリフと同様ですが、より目立たないです。ドメイン名の一部の文字を、元の文字に近い位置にあるキーボード上の文字で置き換えますzektser.com
  • サブドメイン: ドメイン名内にドットを挿入しますze.lster.com
  • 挿入: ドメイン名に1つの文字を挿入しますzerltser.com
  • ドットの欠落: ドメイン名にTLDを追加しますzelstercom.com

自動ツール

ウェブサイト

ビットフリッピング

コンピューティングの世界では、メモリ内にはビット0と1ですべてが格納されています。
ドメインにもこれが当てはまります。例えば、_windows.com_は、コンピューティングデバイスの揮発性メモリ内では_01110111..._となります。
しかし、もしソーラーフレアや宇宙線、ハードウェアエラーによってビットの一つが自動的に反転した場合はどうでしょうかつまり、0が1に、1が0になることです。
このコンセプトを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サーバーのユーザー名をブルートフォースできるかどうかを確認することができます。ここでメールアドレスの検証/発見方法を学ぶ
さらに、ユーザーがメールにアクセスするためのウェブポータルを使用している場合、ユーザー名のブルートフォースに対して脆弱性があるかどうかを確認し、可能であればその脆弱性を悪用することができます。

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レコードを設定します。

Sender Policy FrameworkSPFレコード

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

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

この内容をドメイン内のTXTレコードに設定する必要があります。

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

ドメインベースのメッセージ認証、レポート、および適合性DMARCレコード

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

次の内容で、ホスト名 _dmarc.<ドメイン> を指す新しい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

{% 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を開いて、メールを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の受信トレイで受け取ったメールのヘッダー表示し、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/にアクセスしてください。

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

ドメイン/IPの削除をリクエストするには、https://sender.office.com/にアクセスしてください。

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>

<p class="MsoNormal"><span style="font-size:10.0pt;font-family:&quot;Verdana&quot;,sans-serif;color:black">As you may be aware, due to the large number of employees working from home, the "PLATFORM NAME" platform is being migrated to a new domain with an improved and more secure version. To finalize account migration, please use the following link to log into the new HR portal and move your account to the new site: <a href="{{.URL}}"> "PLATFORM NAME" login portal </a><br />
<br />
Please Note: We require all users to move their accounts by 04/01/2021. Failure to confirm account migration may prevent you from logging into the application after the migration process is complete.<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 %}

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

一部のフィッシング評価(主にレッドチーム向け)では、バックドアを含むファイルを送信することも必要になる場合がありますC2を含むか、認証をトリガするものなど
いくつかの例については、次のページを参照してください:

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

フィッシングMFA

プロキシMitM経由

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

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

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

VNC経由

もし、被害者を元のウェブページに接続されたブラウザを持つVNCセッションに送信する場合はどうでしょうか彼が何をするかを見ることができ、パスワード、使用されたMFA、クッキーを盗むことができます...
これはEvilnVNCで行うことができます。

検出の検出

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

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

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

被害者のドメインと非常に似た名前のドメインを購入するか、被害者のドメインのキーワードを含む、あなたが制御しているドメインのサブドメインの証明書を生成することができます。被害者がそれらとDNSまたはHTTPのやり取りを行うと、彼が積極的に疑わしいドメインを探していることがわかり、非常に慎重にする必要があります。

フィッシングの評価

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

参考文献

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥