.. | ||
clone-a-website.md | ||
detecting-phising.md | ||
phishing-documents.md | ||
README.md |
フィッシングの手法
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterで🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するために、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
手法
- ターゲットの情報収集
- ターゲットドメインを選択します。
- ターゲットが使用しているログインポータルを検索し、なりすますポータルを決定します。
- いくつかのOSINTを使用してメールアドレスを見つけます。
- 環境の準備
- フィッシング評価に使用するドメインを購入します。
- 関連するレコード(SPF、DMARC、DKIM、rDNS)に関連するメールサービスを設定します。
- gophishを使用してVPSを設定します。
- キャンペーンの準備
- メールテンプレートを準備します。
- 認証情報を盗むためのウェブページを準備します。
- キャンペーンを開始します!
類似のドメイン名を生成するか、信頼できるドメインを購入する
ドメイン名の変更手法
- キーワード: オリジナルドメインの重要なキーワードが含まれているドメイン名(例: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)。
自動ツール
ウェブサイト
- https://dnstwist.it/
- https://dnstwister.report/
- https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/
ビットフリッピング
コンピューティングの世界では、メモリ内にはビット(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を持っているかどうかを確認するために、以下のサイトでカテゴリ分けされているかどうかを調べることができます:
メールアドレスの発見
- https://github.com/laramies/theHarvester(100%無料)
- https://phonebook.cz/(100%無料)
- https://maildb.io/
- https://hunter.io/
- https://anymailfinder.com/
さらに、有効なメールアドレスをさらに発見するか、すでに発見したメールアドレスを検証するために、被害者の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週間待つ必要がある場合でも、すべての設定を完了させることができます。
逆引きDNS(rDNS)レコードの設定
VPSのIPアドレスをドメイン名に解決するrDNS(PTR)レコードを設定します。
Sender Policy Framework(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.<ドメイン>
を指す新しい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:"Verdana",sans-serif;color:black">Dear {{.FirstName}} {{.LastName}},</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Verdana",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で構成されている場合、この情報では詐欺被害者をなりすますことはできません。
これは、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を使用して、メールがスパムフォルダに入るか、ブロックされるか、成功するかを評価してください。
参考文献
- https://zeltser.com/domain-name-variations-in-phishing/
- https://0xpatrik.com/phishing-domains/
- https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンを入手したいですか?または、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
- ハッキングのトリックを共有するには、PRを hacktricks repo および hacktricks-cloud repo に提出してください。