SMTP vulnerabillity
@ZenmovieДисклеймер
Данный пост был написан только для образовательных целей.
SMTP (Simple Mail Transfer Protocol) - это протокол, используемый для отправки электронной почты через Интернет. Он предоставляет стандартизированный способ доставки сообщений электронной почты от отправителя к получателю.
Вот основные шаги, которые происходят при отправке электронной почты через SMTP:
- Установка соединения: Клиент (например, почтовый сервер отправителя) устанавливает TCP-соединение с сервером SMTP (например, почтовый сервер получателя) на стандартном порту 25 или на другом порту (чаще всего это 587, 465), который сервер SMTP слушает.
- Приветствие и обмен приветствиями: Когда соединение установлено, сервер SMTP отправляет приветственное сообщение, указывающее его имя и готовность принимать команды. Клиент отвечает на приветствие.
- Обмен командами: Клиент отправляет команды SMTP серверу, чтобы указать, какую операцию (например, отправку сообщения) он хочет выполнить. Сервер отвечает на каждую команду соответствующим ответом, иногда запрашивая дополнительную информацию.
- Отправка сообщения: Когда клиент хочет отправить сообщение, он отправляет его вместе с необходимой метаинформацией (например, адресом отправителя, адресами получателей и телом сообщения) на сервер SMTP. Сервер SMTP принимает сообщение и обрабатывает его в соответствии с протоколом.
- Завершение сеанса: После завершения отправки сообщения клиент отправляет команду QUIT, чтобы закрыть соединение. Сервер подтверждает получение команды и закрывает соединение.
- Фишинг: Злоумышленники могут отправлять фальшивые электронные письма, выдавая их за сообщения от доверенных источников.
- Внедрение вредоносного контента: Злоумышленники могут внедрять вредоносные скрипты или ссылки в электронные письма для эксплуатации уязвимостей на стороне получателя.
- SMTP smuggling: Атака, в которой злоумышленники используют различия в интерпретации окончаний строк различными SMTPсерверами и которая позволяет передавать ложные сообщения от имени других отправителей в почтовых сервисах, которые обеспечивают верификацию адресантов
- Перебор пользователей: дефолтные настройки SMTP-серверов дают возможность перебора пользователей посредством манипуляций с базовыми командами, такими как VRFY, EXPN, RCPT TO и иногда MAIL FROM
В данной статье первые два пункта не будем рассматривать, так как они относятся к социотехническим атакам SMTP smuggling
18.12.2023 Sec Consult поделились информацией насчет новой атаки SMTP Smuggling. Название этой атаки очень схоже с другой HTTP Request Smuggling, но помимо названия у них общий смысл, импакт и эксплуатация
HTTP Request smuggling - это атака, которая нацелена на вызов расхождения между frontend и backend веб-серверами, позволяющая злоумышленнику провести HTTP запрос мимо Frontend сервера благодаря тому, что фронт- и бэк-энд сервера по-разному интерепретируют некоторые заголовки: Content-Length и Transfer-Encoding. Пример эксплуатации можно увидеть на картинке, предоставленной ниже.

Изучение ответов от электронных почтовых провайдеров после отправки команды SMTP DATA выявило, что различные серверы предлагают разные варианты окончания передачи данных. Например, одни серверы указывают завершение данных с использованием <CR><LF>.<CR><LF>, в то время как другие используют <CRLF>.<CRLF> или <CRLF>.<CRLF>.
Для злоумышленников это создает возможность маскировки команд SMTP и отправки их в нескольких частях, разделенных разными окончаниями данных. Так, при одной интерпретации эти команды могут быть приняты как часть одного письма, а при другой - как несколько отдельных писем. Это позволяет отправлять сообщения от имени неаутентифицированного пользователя и обойти системы безопасности.

А теперь разберем последний пункт про перебор пользователей
Благодаря включенным базовым командам есть возможность проведения атаки "User Enumeration" - процесс получения информации о существующих пользователях через команды EXPN, VRFY и RCPT TO. Каждая из этих команд позволяет злоумышленнику проверить наличие конкретного пользователя на сервере. Команда EXPN отображает полное имя пользователя, VRFY проверяет существование пользователя, а команда RCPT TO отправляет запрос на подтверждение доставки сообщения определенному пользователю, что приведет к утечке конфиденциальной информации и упростит атаку на сервер.
Так как количество потенциальных пользователей может оказаться большим, а заниматься перебором вручную долго и муторно, предлагаю воспользоваться следующей утилитой
Материал написан для: https://t.me/LamerZen