hacktricks/generic-methodologies-and-resources/phishing-methodology
2024-05-05 23:08:22 +00:00
..
clone-a-website.md Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/ 2024-05-02 15:18:24 +00:00
detecting-phising.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00
phishing-documents.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 23:08:22 +00:00

フィッシング手法

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

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

手法

  1. ターゲットを調査する
  2. ターゲットドメインを選択する。
  3. ターゲットが使用しているログインポータルを検索し、なりすます ためにどれを 選択するかを決定するために基本的なWeb列挙を実行する。
  4. いくつかの OSINT を使用して メールアドレスを見つける
  5. 環境を準備する
  6. フィッシングアセスメントに使用するドメインを購入する
  7. 関連するレコードSPF、DMARC、DKIM、rDNS設定する
  8. gophishを使用してVPSを構成する
  9. キャンペーンを準備する
  10. メールテンプレートを準備する
  11. 資格情報を盗むための Webページを準備する
  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
  • 挿入: ドメイン名に1つの文字を 挿入する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レコードが何かわからない場合は、このページを読んでください

次の内容で、ホスト名 _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

{% 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つは、ドメインをブラックリスト内で検索することです。リストされている場合、どこかであなたのドメインが疑わしいとして検出されたということです。
どのブラックリストにも登録されているかどうかを確認する簡単な方法は、https://malwareworld.com/ を使用することです。

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

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

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

フィッシングの評価

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

参考文献