.. | ||
clone-a-website.md | ||
detecting-phising.md | ||
phishing-documents.md | ||
README.md |
Phishing Methodology
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Методологія
- Розвідка жертви
- Виберіть домен жертви.
- Виконайте базову веб-інвентаризацію в пошуках порталів для входу, які використовує жертва, і вирішіть, який з них ви будете імітувати.
- Використовуйте деякі OSINT для пошуку електронних адрес.
- Підготуйте середовище
- Купіть домен, який ви будете використовувати для фішингової оцінки.
- Налаштуйте записи служби електронної пошти (SPF, DMARC, DKIM, rDNS).
- Налаштуйте VPS з gophish.
- Підготуйте кампанію
- Підготуйте шаблон електронної пошти.
- Підготуйте веб-сторінку для крадіжки облікових даних.
- Запустіть кампанію!
Генерація подібних доменних імен або купівля надійного домену
Техніки варіації доменних імен
- Ключове слово: Доменне ім'я містить важливе ключове слово оригінального домену (наприклад, 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)
Автоматичні інструменти
Вебсайти
- https://dnstwist.it/
- https://dnstwister.report/
- https://www.internetmarketingninjas.com/tools/free-tools/domain-typo-generator/
Бітфліпінг
Існує можливість, що один з деяких бітів, збережених або в комунікації, може автоматично змінитися через різні фактори, такі як сонячні спалахи, космічні промені або апаратні помилки.
Коли цей концепт застосовується до 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, ви можете перевірити, як він категоризується в:
Виявлення електронних адрес
- 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 сертифіката
Перед цим кроком ви повинні вже купити домен, який ви збираєтеся використовувати, і він повинен вказувати на IP VPS, де ви налаштовуєте gophish.
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>
Тепер давайте протестуємо відправку електронного листа:
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 тиждень) перед оцінкою фішингу. Більше того, якщо ви створите сторінку про репутаційний сектор, отримана репутація буде кращою.
Зверніть увагу, що навіть якщо вам потрібно почекати тиждень, ви можете закінчити налаштування всього зараз.
Налаштування зворотного DNS (rDNS) запису
Встановіть запис rDNS (PTR), який перетворює IP-адресу VPS на доменне ім'я.
Запис політики відправника (SPF)
Ви повинні налаштувати запис SPF для нового домену. Якщо ви не знаєте, що таке запис SPF прочитайте цю сторінку.
Ви можете використовувати https://www.spfwizard.net/ для генерації вашої SPF політики (використовуйте IP адреса VPS машини)
Це вміст, який потрібно встановити в TXT записі всередині домену:
v=spf1 mx a ip4:ip.ip.ip.ip ?all
Domain-based Message Authentication, Reporting & Conformance (DMARC) Record
Ви повинні налаштувати запис DMARC для нового домену. Якщо ви не знаєте, що таке запис DMARC прочитайте цю сторінку.
Вам потрібно створити новий DNS TXT запис, вказуючи ім'я хоста _dmarc.<domain>
з наступним вмістом:
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" %} Вам потрібно об'єднати обидва значення B64, які генерує ключ DKIM:
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, якщо ви надішлете електронний лист як root).
Перевірте, чи проходите ви всі тести:
==========================================================
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...
- Ви можете залишити порожніми ім'я користувача та пароль, але обов'язково перевірте "Ігнорувати помилки сертифіката"
{% hint style="info" %}
Рекомендується використовувати функцію "Надіслати тестовий електронний лист", щоб перевірити, чи все працює.
Я б рекомендував надсилати тестові електронні листи на адреси 10min mails, щоб уникнути потрапляння до чорного списку під час тестування.
{% 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, наприклад, поставити крутильне колесо (https://loading.io/) на 5 секунд, а потім вказати, що процес був успішним. {% endhint %}
Користувачі та групи
- Встановіть ім'я
- Імпортуйте дані (зверніть увагу, що для використання шаблону для прикладу вам потрібні ім'я, прізвище та електронна адреса кожного користувача)
Кампанія
Нарешті, створіть кампанію, вибравши ім'я, шаблон електронного листа, цільову сторінку, URL, профіль відправлення та групу. Зверніть увагу, що URL буде посиланням, надісланим жертвам.
Зверніть увагу, що Профіль відправлення дозволяє надіслати тестовий електронний лист, щоб побачити, як виглядатиме фінальний фішинговий електронний лист:
{% hint style="info" %} Я б рекомендував надсилати тестові електронні листи на адреси 10min mails, щоб уникнути потрапляння в чорний список під час тестування. {% endhint %}
Коли все готово, просто запустіть кампанію!
Клонування веб-сайту
Якщо з якоїсь причини ви хочете клонувати веб-сайт, перегляньте наступну сторінку:
{% content-ref url="clone-a-website.md" %} clone-a-website.md {% endcontent-ref %}
Документи та файли з бекдорами
У деяких фішингових оцінках (в основному для Red Teams) ви також захочете надіслати файли, що містять якийсь вид бекдору (можливо, C2 або просто щось, що викликає аутентифікацію).
Перегляньте наступну сторінку для деяких прикладів:
{% content-ref url="phishing-documents.md" %} phishing-documents.md {% endcontent-ref %}
Фішинг MFA
Через Proxy MitM
Попередня атака досить хитра, оскільки ви підробляєте реальний веб-сайт і збираєте інформацію, введену користувачем. На жаль, якщо користувач не ввів правильний пароль або якщо програма, яку ви підробили, налаштована на 2FA, ця інформація не дозволить вам видавати себе за обманутого користувача.
Ось де корисні інструменти, такі як evilginx2, CredSniper та muraena. Цей інструмент дозволить вам згенерувати атаку типу MitM. В основному, атака працює наступним чином:
- Ви підробляєте форму входу реальної веб-сторінки.
- Користувач надсилає свої облікові дані на вашу підроблену сторінку, а інструмент надсилає їх на реальну веб-сторінку, перевіряючи, чи працюють облікові дані.
- Якщо обліковий запис налаштований на 2FA, сторінка MitM запитає про це, і як тільки користувач введе його, інструмент надішле його на реальну веб-сторінку.
- Як тільки користувач аутентифікований, ви (як зловмисник) будете мати захоплені облікові дані, 2FA, куки та будь-яку інформацію про кожну взаємодію, поки інструмент виконує MitM.
Через VNC
Що, якщо замість відправлення жертви на шкідливу сторінку з таким же виглядом, як оригінальна, ви відправите його на сесію VNC з браузером, підключеним до реальної веб-сторінки? Ви зможете бачити, що він робить, вкрасти пароль, використовувану MFA, куки...
Ви можете зробити це за допомогою EvilnVNC
Виявлення виявлення
Очевидно, один з найкращих способів дізнатися, чи вас викрили, це перевірити ваш домен у чорних списках. Якщо він з'являється в списку, ваш домен був виявлений як підозрілий.
Один простий спосіб перевірити, чи ваш домен з'являється в будь-якому чорному списку, це використовувати 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/
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
{% hint style="success" %}
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.