Phishing Methodology

Reading time: 15 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Методологія

  1. Розвідка жертви
  2. Виберіть домен жертви.
  3. Виконайте базову веб-енумерацію в пошуках порталів для входу, які використовує жертва, і вирішіть, який з них ви будете імітувати.
  4. Використовуйте деякі OSINT для пошуку електронних адрес.
  5. Підготуйте середовище
  6. Купіть домен, який ви будете використовувати для фішингової оцінки.
  7. Налаштуйте електронну пошту та пов'язані записи (SPF, DMARC, DKIM, rDNS).
  8. Налаштуйте VPS з gophish.
  9. Підготуйте кампанію
  10. Підготуйте шаблон електронної пошти.
  11. Підготуйте веб-сторінку для крадіжки облікових даних.
  12. Запустіть кампанію!

Генерація подібних доменних імен або купівля надійного домену

Техніки варіації доменних імен

  • Ключове слово: Доменне ім'я містить важливе ключове слово оригінального домену (наприклад, zelster.com-management.com).
  • Гіпенізований піддомен: Змініть крапку на дефіс у піддомені (наприклад, www-zelster.com).
  • Новий TLD: Той самий домен з використанням нового TLD (наприклад, zelster.org).
  • Гомогліф: Він замінює літеру в доменному імені на літери, які виглядають подібно (наприклад, zelfser.com).
  • Транспозиція: Він міняє місцями дві літери в доменному імені (наприклад, zelsetr.com).
  • Сингуларизація/Плюралізація: Додає або видаляє “s” в кінці доменного імені (наприклад, zeltsers.com).
  • Пропуск: Він видаляє одну з літер з доменного імені (наприклад, zelser.com).
  • Повторення: Він повторює одну з літер у доменному імені (наприклад, zeltsser.com).
  • Замінювання: Як гомогліф, але менш непомітно. Він замінює одну з літер у доменному імені, можливо, на літеру, що знаходиться поруч з оригінальною літерою на клавіатурі (наприклад, zektser.com).
  • Піддомен: Введіть крапку всередині доменного імені (наприклад, ze.lster.com).
  • Вставка: Він вставляє літеру в доменне ім'я (наприклад, zerltser.com).
  • Відсутня крапка: Додайте TLD до доменного імені. (наприклад, zelstercom.com)

Автоматичні інструменти

Вебсайти

Бітфліпінг

Існує можливість, що один з бітів, що зберігаються або передаються, може автоматично змінитися через різні фактори, такі як сонячні спалахи, космічні промені або апаратні помилки.

Коли цей концепт застосовується до DNS-запитів, можливо, що домен, отриманий DNS-сервером, не є тим самим доменом, який спочатку запитувався.

Наприклад, одна зміна біта в домені "windows.com" може змінити його на "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 виводу. Тому отримайте доступ до цього порту та використовуйте ці облікові дані, щоб змінити пароль адміністратора. Вам, можливо, потрібно буде тунелювати цей порт на локальний:

bash
ssh -L 3333:127.0.0.1:3333 <user>@<ip>

Налаштування

Налаштування TLS сертифіката

Перед цим кроком ви повинні вже купити домен, який ви збираєтеся використовувати, і він повинен вказувати на IP вашого VPS, де ви налаштовуєте gophish.

bash
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>, що вказує на ip-адресу VPS, та DNS MX запис, що вказує на mail.<domain>

Тепер давайте протестуємо відправку електронного листа:

bash
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):

bash
{
"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 з наступним вмістом:

bash
#!/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

Завершіть налаштування служби та перевірте її, виконавши:

bash
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 тиждень) перед оцінкою фішингу. Більше того, якщо ви створите сторінку про репутаційний сектор, отримана репутація буде кращою.

Зверніть увагу, що навіть якщо вам потрібно почекати тиждень, ви можете закінчити налаштування всього зараз.

Налаштування зворотного DNS (rDNS) запису

Встановіть запис rDNS (PTR), який перетворює IP-адресу VPS на доменне ім'я.

Запис політики відправника (SPF)

Вам потрібно налаштувати запис SPF для нового домену. Якщо ви не знаєте, що таке запис SPF прочитайте цю сторінку.

Ви можете використовувати https://www.spfwizard.net/ для генерації вашої SPF політики (використовуйте IP-адресу машини VPS)

Це вміст, який потрібно встановити в TXT записі всередині домену:

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

Domain-based Message Authentication, Reporting & Conformance (DMARC) Record

Ви повинні налаштувати запис DMARC для нового домену. Якщо ви не знаєте, що таке запис DMARC прочитайте цю сторінку.

Вам потрібно створити новий DNS TXT запис, вказуючи ім'я хоста _dmarc.<domain> з наступним вмістом:

bash
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

note

Вам потрібно об'єднати обидва значення B64, які генерує ключ DKIM:

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

Test your email configuration score

Ви можете зробити це, використовуючи https://www.mail-tester.com/
Просто перейдіть на сторінку та надішліть електронний лист на адресу, яку вони вам нададуть:

bash
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, якщо ви надішлете електронний лист як root).
Перевірте, що ви пройшли всі тести:

bash
==========================================================
Summary of Results
==========================================================
SPF check:          pass
DomainKeys check:   neutral
DKIM check:         pass
Sender-ID check:    pass
SpamAssassin check: ham

Ви також можете надіслати повідомлення на Gmail під вашим контролем і перевірити заголовки електронної пошти у вашій поштовій скриньці Gmail, dkim=pass має бути присутнім у полі заголовка Authentication-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...
  • Ви можете залишити порожніми ім'я користувача та пароль, але обов'язково перевірте "Ігнорувати помилки сертифіката"

note

Рекомендується використовувати функцію "Надіслати тестовий електронний лист", щоб перевірити, чи все працює.
Я б рекомендував надсилати тестові електронні листи на адреси 10min mails, щоб уникнути потрапляння в чорний список під час тестування.

Шаблон електронного листа

  • Встановіть ім'я для ідентифікації шаблону
  • Потім напишіть тему (нічого дивного, просто щось, що ви могли б очікувати прочитати в звичайному електронному листі)
  • Переконайтеся, що ви відмітили "Додати трекінгове зображення"
  • Напишіть шаблон електронного листа (ви можете використовувати змінні, як у наступному прикладі):
html
<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 і надішліть їм електронний лист, а потім чекайте на відповідь.
  • Спробуйте зв'язатися з якою-небудь дійсною виявленою електронною адресою та чекайте на відповідь.

note

Шаблон електронного листа також дозволяє додавати файли для відправки. Якщо ви також хочете вкрасти NTLM виклики, використовуючи спеціально підготовлені файли/документи прочитайте цю сторінку.

Лендінг Пейдж

  • Напишіть ім'я
  • Напишіть HTML код веб-сторінки. Зверніть увагу, що ви можете імпортувати веб-сторінки.
  • Позначте Захопити надіслані дані та Захопити паролі
  • Встановіть перенаправлення

note

Зазвичай вам потрібно буде змінити HTML код сторінки та провести деякі тести локально (можливо, використовуючи якийсь Apache сервер) поки вам не сподобаються результати. Потім напишіть цей HTML код у вікні.
Зверніть увагу, що якщо вам потрібно використовувати деякі статичні ресурси для HTML (можливо, деякі CSS та JS сторінки), ви можете зберегти їх у /opt/gophish/static/endpoint і потім отримати до них доступ з /static/<filename>

note

Для перенаправлення ви можете перенаправити користувачів на легітимну основну веб-сторінку жертви або перенаправити їх на /static/migration.html, наприклад, поставити крутячий коло (https://loading.io/) на 5 секунд, а потім вказати, що процес був успішним.

Користувачі та Групи

  • Встановіть ім'я
  • Імпортуйте дані (зверніть увагу, що для використання шаблону для прикладу вам потрібні ім'я, прізвище та електронна адреса кожного користувача)

Кампанія

Нарешті, створіть кампанію, вибравши ім'я, шаблон електронного листа, лендінг пейдж, URL, профіль відправлення та групу. Зверніть увагу, що URL буде посиланням, надісланим жертвам.

Зверніть увагу, що Профіль відправлення дозволяє надіслати тестовий електронний лист, щоб побачити, як виглядатиме фінальний фішинговий електронний лист:

note

Я б рекомендував надсилати тестові електронні листи на адреси 10min mails, щоб уникнути потрапляння в чорний список під час тестування.

Коли все буде готово, просто запустіть кампанію!

Клонування веб-сайту

Якщо з якоїсь причини ви хочете клонувати веб-сайт, перегляньте наступну сторінку:

Clone a Website

Документи та файли з бекдором

У деяких фішингових оцінках (в основному для Red Teams) ви також захочете надсилати файли, що містять якийсь бекдор (можливо, C2 або просто щось, що викликає аутентифікацію).
Перегляньте наступну сторінку для деяких прикладів:

Phishing Files & Documents

Фішинг MFA

Через Proxy MitM

Попередня атака досить хитра, оскільки ви підробляєте реальний веб-сайт і збираєте інформацію, введену користувачем. На жаль, якщо користувач не ввів правильний пароль або якщо програма, яку ви підробили, налаштована на 2FA, ця інформація не дозволить вам видавати себе за обманутого користувача.

Ось де корисні інструменти, такі як evilginx2, CredSniper та muraena. Цей інструмент дозволить вам згенерувати атаку типу MitM. В основному, атака працює наступним чином:

  1. Ви підробляєте форму входу реальної веб-сторінки.
  2. Користувач надсилає свої облікові дані на вашу підроблену сторінку, а інструмент надсилає їх на реальну веб-сторінку, перевіряючи, чи працюють облікові дані.
  3. Якщо обліковий запис налаштований на 2FA, сторінка MitM запитає про це, і як тільки користувач введе його, інструмент надішле його на реальну веб-сторінку.
  4. Як тільки користувач аутентифікований, ви (як зловмисник) отримаєте захоплені облікові дані, 2FA, куки та будь-яку інформацію про кожну взаємодію, поки інструмент виконує MitM.

Через VNC

Що, якщо замість того, щоб надсилати жертву на шкідливу сторінку з таким же виглядом, як оригінальна, ви надішлете його на сесію VNC з браузером, підключеним до реальної веб-сторінки? Ви зможете бачити, що він робить, вкрасти пароль, використане MFA, куки...
Ви можете зробити це за допомогою EvilnVNC

Виявлення виявлення

Очевидно, один з найкращих способів дізнатися, чи вас викрили, це шукати ваш домен у чорних списках. Якщо він з'являється в списку, ваш домен був виявлений як підозрілий.
Один простий спосіб перевірити, чи ваш домен з'являється в будь-якому чорному списку, це використовувати https://malwareworld.com/

Однак є й інші способи дізнатися, чи жертва активно шукає підозрілу фішингову активність у мережі, як пояснено в:

Detecting Phishing

Ви можете придбати домен з дуже схожою назвою на домен жертви і/або згенерувати сертифікат для піддомену домену, контрольованого вами, який містить ключове слово домену жертви. Якщо жертва виконає будь-який вид DNS або HTTP взаємодії з ними, ви дізнаєтеся, що він активно шукає підозрілі домени, і вам потрібно буде бути дуже обережним.

Оцінка фішингу

Використовуйте Phishious , щоб оцінити, чи ваш електронний лист потрапить у папку спаму або буде заблокований чи успішним.

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks