.. | ||
clone-a-website.md | ||
detecting-phising.md | ||
phishing-documents.md | ||
README.md |
フィッシング手法
htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- Discordグループに参加する 💬 Discord group または telegram group に参加するか、Twitter 🐦 @hacktricks_live をフォローする。
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
手法
- ターゲットを調査する
- ターゲットドメインを選択する。
- ターゲットが使用しているログインポータルを検索し、なりすます ためにどれを 選択するかを決定するために基本的なWeb列挙を実行する。
- いくつかの OSINT を使用して メールアドレスを見つける。
- 環境を準備する
- フィッシングアセスメントに使用するドメインを購入する
- 関連するレコード(SPF、DMARC、DKIM、rDNS)を 設定する
- gophishを使用してVPSを構成する
- キャンペーンを準備する
- メールテンプレートを準備する
- 資格情報を盗むための Webページを準備する
- キャンペーンを開始する!
類似のドメイン名を生成するか信頼できるドメインを購入する
ドメイン名の変更手法
- キーワード: オリジナルドメインの重要な キーワードを含む ドメイン名(例: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)
自動ツール
ウェブサイト
- https://dnstwist.it/
- https://dnstwister.report/
- https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/
ビットフリップ
太陽フレア、宇宙線、ハードウェアエラーなどのさまざまな要因により、 保存されたビットのいくつかが自動的に反転 される可能性があります。
この概念を 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が良い かどうかを確認するには、次のカテゴリーにどのように分類されているかを調べることができます:
メールアドレスの発見
- https://github.com/laramies/theHarvester(100%無料)
- https://phonebook.cz/(100%無料)
- https://maildb.io/
- https://hunter.io/
- https://anymailfinder.com/
より多くの有効なメールアドレスを 発見 するか、すでに発見したメールアドレスを 検証 するために、被害者の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週間待たなければならないとしても、今すぐすべてを設定することができます。
逆引き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
{% 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:"Verdana",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)で構成されている場合、この情報ではだまされたユーザーをなりすますことはできません。
これは、evilginx2、CredSniper、**muraena などのツールが役立ちます。このツールを使用すると、MitM のような攻撃を生成できます。基本的に、攻撃は次のように機能します:
- 実際のウェブページのログインフォームをなりすまします。
- ユーザーは自分の資格情報をあなたの偽のページに送信し、ツールはそれらを実際のウェブページに送信して、資格情報が機能するかどうかを確認します。
- アカウントが2FAで構成されている場合、MitM ページはそれを要求し、ユーザーが入力すると、ツールはそれを実際のウェブページに送信します。
- ユーザーが認証されると、あなた(攻撃者)は、ツールが MitM を実行している間に、資格情報、2FA、クッキー、およびすべてのインタラクションの情報をキャプチャします。
VNC 経由
被害者を悪意のあるページに送信する代わりに、実際のウェブページに接続されたブラウザを持つVNC セッションに被害者を送信するとどうなりますか?彼が何をしているかを見ることができ、パスワード、使用された MFA、クッキーなどを盗むことができます。
これは EvilnVNC で行うことができます。
検出の検出
明らかに、バレたかどうかを知る最良の方法の1つは、ドメインをブラックリスト内で検索することです。リストされている場合、どこかであなたのドメインが疑わしいとして検出されたということです。
どのブラックリストにも登録されているかどうかを確認する簡単な方法は、https://malwareworld.com/ を使用することです。
ただし、被害者が野生の中で疑わしいフィッシング活動を積極的に探しているかどうかを知るための他の方法があります。詳細は次のページで説明されています:
{% content-ref url="detecting-phising.md" %} detecting-phising.md {% endcontent-ref %}
被害者のドメイン名に非常に似た名前のドメインを購入したり、被害者のドメインのキーワードを含むサブドメインの証明書を生成したりすることができます。被害者がそれらとDNS または HTTP インタラクションを行うと、疑わしいドメインを積極的に探していることがわかります。その場合は、非常に慎重である必要があります。
フィッシングの評価
Phishious を使用して、メールがスパムフォルダに入るか、ブロックされるか、成功するかを評価します。