Email Header Injection Как слать миллионы в инбокс без рандома

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
оригинал статьи: https://forum.exploit.in/topic/114197/
автор:Link34
дата: 2016 (большинство не актуально на 2025)

Введение.

Обсудим рассылку писем на крупнейшие почтовые сервисы (Mail.ru, Yandex, Yahoo, Gmail, Spamassassin(corporate) и т.д.) с высоким инбоксом используя разные виды инъекций, также комбинируя их для получения высоких результатов при обходе одновременно нескольких спам-фильтров и получая высокую рентабельность рассылки.

Основная причина затруднения спамерской рассылки - наличие ссылки в письме. Спам фильтры дают спам-баллы любому письму со ссылкой, а также ведут счётчик всех писем, в которых имеется этот домен. Если на письма с этим доменом есть жалобы на спам от получателей, но он как правило банится на определенное время, а все письма перемещаются в папку Спам. Если же в письме нет никаких ссылок то при наличии высокого уровня рандомизации массовую рассылку вычислить уже затруднительно.


Глава 1. Как такое возможно?

Когда письмо приходит на почтовый сервер оно проходит несколько ступеней проверки - сначала проверяется находится ли сервер отправителя письма в чёрном списке. Если в чёрном списке его нет то письмо проверяется на существование почтового аккаунта получателя. Если же получатель валидный то далее письмо проверяется последним, и самым важным рубежом спамообороны - системой анализа Исходника письма (заголовка или "Message Header"). Данная проверка является самой комплексной поскольку именно здесь происходит выделение основных сигнатур письма - ссылок, текста, вложений, темы письма и т.д. В результате этой проверки письмо получает спам-баллы. И при получении достаточного количества спам-баллов письмо может быть определено как "Возможный спам" (письмо попадает в папку "Спам") и "Точно спам" (письмо не принимается сервером).

Существует устойчивый миф, что при отправке нестандартного (невалидного) заголовка забаненное спам-фильтром письмо придёт в инбокс только потому что оно и будет отображено некорректно. Но это заблуждение! Дело в том, что обработчик спам-фильтра и обработчик, отвечающий за отображение письма в браузере или почтовой программе независимы! Спам-фильтр просто проверяет заголовок, и если принимается положительное решение то тот же самый заголовок без изменений со стороны спам-фильтра дальше приходит в почтовый ящик и уже совсем другой обработчик и по другим алгоритмам производит его отображение для читателя письма.

Инъекция заголовка письма (англ. E-Mail Header Injection) - это техника атаки, использующая модифицированный заголовок письма, который может получить привилегию для спам-фильтра. При этом часть или весь заголовок неправильно обрабатывается спам-фильтром, но корректно отображается для читателя.

Данный материал ставит своей целью научить читателя методу поиска уязвимостей через модификацию заголовка как наиболее перспективный и имеющий неограниченный потенциал, поскольку регулярно вносятся изменения в спам-фильтры, и ошибки в анализе писем можно найти абсолютно для любого спам-фильтра.



Глава 2. Особенности использования уязвимостей

К сожалению, использование таких уязвимостей заголовка имеет как свои плюсы так и минусы. Попробуем рассмотреть глубже все аспекты такого подхода.

Преимущества:

1) Увеличение лимитов на отправку аккаунтами крупными почтовыми сервисами. Так происходит потому что иногда наличие ссылки в письме сильно снижает лимиты на отправку. Если письмо не имеет ссылки, то лимиты на отправку можно использовать максимально возможные без блокировки аккаунтов. В зависимости от настройки внутренних спам-фильтров почтового сервиса затраты на аккаунты могут упасть до 10 раз. Возможно использовать аккаунты крупнейших мировых почтовых систем.

2) Сокращение либо полный отказ от затрат на домены-редиректы. Такое возможно в случае отправки писем с аккаунтов на почтовые ящики того же самого почтового сервиса, поскольку происходит преодоление только одного спам-фильтра. Также такое возможно если для отправки на один крупный почтовый сервис используются аккаунты без внутренних спам-фильтров - шеллы или свои сервера.

3) Отказ от рандомизации содержимого тела письма. В случае когда спам-фильтр не анализирует тело письма возможна отправка неограниченного числа писем. Идеально подходит для отправки фишинговых писем, поскольку в данном случае рандомизация текста нежелательна.

4) Практически полное отсутствие крупных спам-баллов при анализе письма. Возможность добиться попадание писем во входящие на больших объёмах до 100%.

5) Снижение времени на подготовку и ведение рассылки.

6) Возможность использовать SMTP-аккаунты отправителя с более низким уровнем доверия для спам-фильтров.

7) При "невидимости" ссылки-редиректа для спам-фильтра нет перехода ботов по ним.

8) Возможность продажи уязвимости. Любая уязвимость которая может привести к увеличению финансовых результатов при отправке писем может быть продана другому человеку так же как продаётся любой эксплоит для операционной системы.

9) Одна и та же уязвимость может действовать на нескольких почтовых сервисах. Это происходит по причине схожих алгоритмов анализа заголовка.


Недостатки:

1) Требуется глубокое понимание особенностей построения заголовка письма. Обязательно знать значение каждого параметра и каким образом он влияет на отображение и анализ письма спам-фильтрами.

2) Уязвимости не получится эксплуатировать очень долго. Как правило уязвимости при анализе антиспам-аналитиками устраняются через некоторое время. Но возможно максимально затруднить анализ, сделав много других более заметных изменений в заголовке. В рамках этого материала будут даны советы как этого добиться.

3) На саму форму нестандартного заголовка может быть создана спам-сигнатура после нескольких рассылок. Но возможно незначительное изменение заголовка, при котором можно добиться обхода сигнатуры.

4) Поскольку письма открываются не только в браузерах, но и в почтовых программах, то может возникнуть ситуация когда письмо не отобразится в какой то почтовой программе - небольшие потери траффика.

5) Программа должна быть удобной для изменения заголовка непосредственно в программе. Большинство софта, которое продаётся на открытых площадках либо вообще не дают, либо дают ограниченно и с затратами времени работать с заголовком.

Примечание: очевидно, что большое число достоинств намного превышает риск от тех проблем, которые могут возникнуть. Более того, почти все недостатки имеют пути решения, и в рамках данной статьи они будут рассмотрены.



Глава 3. Принципы построения заголовка письма

Для работы с заголовком письма требуется понимание того как он построен, какие параметры и каким образом происходит обработка заголовка. Если глубоко понять как он построен и по каким правилам - то возможно как конструктором создавать практически всё что позволяет фантазия.

Заголовок письма имеет следующие составные части - общие параметры заголовка и тело письма. Они разделяются между собой пустой строкой. Тело может состоять из неограниченного количества частей.

Список основных служебных параметров:

From: admin@example.com
отправитель; адрес также может иметь вид "Admin" <admin@example.com>.

Reply-To: adminreply@example.com
адрес, на который следует отправлять ответ на письмо. Если этот параметр отсутствует, ответ отправляется на адрес, указанный в заголовке "From:".

To: guest@example2.com, "guest" <guest@example2.com>
основной получатель (получатели). Разделяются запятой.

Сс: "guest2" <guest2@example2.com>, <guest3@example3.com>
дополнительные получатели, если необходимы. При доставке письма для адресов в заголовках "To:" и "Cc:" выполняются одинаковые действия; различия между "To:" и "Cc:" в техническом плане нет.

Bcc: "Guest3" <guest3@example2.com>
получатели, невидимые для остальных получателей, если требуется. То есть те, кто перечислен в "To:" и "Cc:", не будут знать, что копия письма отправлена ещё кому то. Наличие скрытой копии добавляет спам-баллы письму.

Subject: Hello!
тема письма (может отсутствовать). Одно из важных составляющих создания спам-сигнатуры.

Date: Tue, 21 Dec 2024 12:00:00 +0300
время отправки письма.

Message-ID: <12345678@example.com>
уникальный идентификатор сообщения, генерируемый отправителем. Для восприятия человеком не предназначен.

Received: from [127.0.0.1] (helo=admin)
заголовок "Received:" добавляется каждым транспортным агентом, через которого проходит сообщение, содержит информацию кем, от кого, когда и каким образом получено сообщение. Возможно самостоятельно создать такой параметр.

Precedence: bulk
необязательный параметр, который говорит о причастности письма к массовой рассылке.

List-Unsubscribe: <mailto:unsubscribe@example.com>, <http://example.com/unsubscribe?guest@example2.com>
необязательный параметр, указывающий почтовый ящик или ссылку на отписку. Иногда данный параметр для удобства отписки задействован в вебинтерфейсе почтового сервиса-получателя письма - это позволяет отписаться в один клик.

X-Random: 12345678
необязательный параметр, как правило не проверяемый спам-фильтрами. Может иметь любое имя и любое значение.


Список основных параметров тела письма:

1) Content-Type: ...
параметр, показывающий тип данных, который находится в этой части. Может иметь следующие значения:

а) text/ - текстовая информация.

text/plain - обычный неформатировнный текст, не требующий специального программного обеспечения для отображения этого текста за исключением поддержки национальных кодировок.

text/html - текст, опубликованный на языке разметки HTML. Также ограниченно разрешается использовать CSS.

б) image/ - вложенное изображение.

image/jpeg - изображение формата JPEG.

image/gif - изображение формата GIF.

image/png - изображение формата PNG.

в) application/ - как правило, неинтерпретируемый двоичный код либо информация, предназначенная для обработки почтовой программой.

application/zip - архив формата ZIP.

application/octet-stream - предназначен для неинтерпретируемых двоичных данных, для которых рекомендуемым действием является предложение пользователю сохранить в файл на диске.

г) Multipart/ – это обобщенный тип, означающий, что эта часть может содержать множество дочерних частей. Подтип части (то, что после дроби) говорит нам больше о дочерних частях, и в этом случае как они связаны друг с другом. Разделяются с помощью "разделителя" (Баундари). Boundary - это разделитель между частями тела письма. В начале строки с разделителем должно стоять два знака "тире".

Multipart/mixed - означает, что части сообщения полностью независимы друг от друга (не связаны друг с другом), но их порядок имеет значение. Как правило части располагаются друг за другом.

Multipart/related - означает, что части сообщения зависимы друг от друга. Если имеются текстовые части, то они идут одна за другой. Если имеется html-часть и вложенное изображение - то ссылку на изображение можно вставить в html-часть.

Multipart/alternative - означает, что каждая дочерняя часть – это иное представление одних и тех же данных. Они являются альтернативными версиями друг друга. Клиент выбирает тип, который он может отобразить лучше, и отображает только его. В данном случае text/html имеет преимущество над text/plain.

2) Content-Transfer-Encoding - формат кодирования данных.

"7bit" - данные являются текстом, имеют короткие строки и языковую кодировку US-ASCII.

"8bit" - короткие строки, но в них могут содержаться не-ASCII символы.

"Quoted-Printable" и "Base64" - при поиске уязвимости тело письма желательно должны быть кодированы в эти форматы.


Глава 4. Как происходит поиск уязвимости.

При составлении "нестандартного" заголовка и запуске тестовой рассылки - можно потерять много времени и расходников, и в итоге не разобраться к чему привели сделанные изменения. Поэтому данный способ абсолютно непригоден. Предлагается более простой и эффективный способ.

Для того, чтобы понять нашли ли мы уязвимость мы должны добиться того, что письмо, которое не принимается спам-фильтром при использовании обычных заголовков - при использовании уже "нестандартного" заголовка было успешно отправлено. Для этого нужно использовать единственно возможный тип сигнатуры, при обнаружении которого письмо точно не будет принято спам-фильтром. Такие сигнатуры могут составляться только на домены ссылок в письме. Следовательно нам нужно взять домен, забаненный спам-фильтром и вставить его в ту часть письма, которую мы хотим проверить на наличие уязвимости. Если письмо было успешно отправлено, пришло в инбокс, но при этом ссылка должна корректно отображаться - уязвимость была успешно найдена.

Поскольку при поиске уязвимости требуется большое количество тестовых отправок письма - желательно иметь софт с возможностью редактирования заголовка прямо в интерфейсе и отправкой тестового письма одним нажатием.

При этом возможны различные вариации отправителя и получателя письма:

1) При поиске уязвимости крупных почтовых сервисов (gmail, mail.ru, yahoo и т.д.) оптимальный вариант - использовать и тестовый почтовый ящик и аккаунт отправителя того же самого сервиса. Таким образом можно быстро проверить письмо прямо во время SMTP-сессии - письмо с забаненным доменом не будет принято.

2) При поиске уязвимости самого популярного спам-фильтра корпоративной почты SpamAssassin можно использовать несуществующий домен. При отправке такого домена Spamassassin выдаёт ошибку невалидной ссылки. При нахождении уязвимости такая ошибка будет отсутствовать. Можно использовать сервис Mail-tester.com, либо создать почтовый ящик на хостинге с включенным Spamassassin - в заголовке письма должны быть указаны спам-баллы.


Глава 5. Направления поиска уязвимостей.

Ниже приведены лишь некоторые простейшие приёмы и направления поиска уязвимостей. Самое главное - не бояться внести любые изменения, которые придут вам в голову. Ведь если уязвимость существует, то о ней будете знать только вы, потому что скорее всего вы первый кто это сделал. Невозможно предугадать к чему могут привести эти изменения, поэтому все возможные варианты ограничены только вашим опытом и фантазией. Специально не приведены напрямую готовые схемы заголовков поскольку любая уязвимость при попадании в открытый доступ быстро устраняется.

1) Подстановка нестандартных символов
Один из базовых принципов поиска инъекции. По умолчанию заголовок письма составляется из символов кодировки ASCII (область с кодами Юникода от U+0000 до U+007F). Символ любой другой области Юникода является "нестандартным" при составлении параметров заголовка. Любой нестандартный символ может привести к ошибке обработки заголовка. Например могут произойти такие эффекты - ошибочный перенос строки, отказ от обработки параметров строки и т.д.

2) Переполнение буфера доменов
Данная уязвимость может возникать, если спам-фильтр настроен на проверку ограниченного числа доменов. Спам-фильтр проверяет домены внутри тела от начала и до конца, и если доменов в письме больше чем может проверить спам-фильтр - остальные домены проверены уже не будут.
Следовательно для проверки уязвимости можно сделать следующее: сгенерировать определенное количество уникальных доменов с помощью макроса: {%MULTI{{%RND_ALL(0;1;0;0;0;7-7)%}.com ;1000-1000}%} - это сгенерирует 1000 уникальных доменов разделенных пробелом. Эти домены можно скрыть от читателя любым известным вам способом. Затем ниже подставляется забаненный домен. Если уязвимость присутствует - письмо будет успешно отправлено.
Особенность данной уязвимости в том, что она не меняет никак вид заголовка, поскольку находится только внутри тела. Возможно использовать для отправки через вебмейлеры.

Код: Скопировать в буфер обмена
Код:
<div>{%MULTI{{%RND_ALL(0;1;0;0;0;7-7)%}.com;1000-1000}%}</div>
<div>http://example.com</div>

3) Переполнение длины строки
Данная уязвимость может возникать в некоторых случаях, если спам-фильтр не может обработать слишком длинную строку. В этой строке может находиться параметр, который отвечает за тип данных тела письма, либо простая строка с нестандартными символами. В некоторых случаях это может привести для спам фильтра либо к созданию пустой строки, которая может создать новый разделитель между параметрами и телом. Либо может привести к тому, что параметр который находится в этой строке не будет никак обрабатываться спам-фильтром.

4) Разделение тела на несколько частей
Возможно проверить - при создании большого количества частей тел писем с одинаковыми параметрами, идущими последовательно - сколько частей из них спам-фильтр будет обрабатывать. Ссылка должна быть в самой последней части. Приведен простейший пример для типа "multipart/related". Но можно также для последней части попробовать сделать ещё одну или несколько глубин вложения через создание новых баундари.

Код: Скопировать в буфер обмена
Код:
Message-ID: <12345678@example.com>
From: admin <admin@example.com>
To: guest@example2.com
Subject: Hello
Date: Tue, 21 Dec 2024 12:00:00 +0300
MIME-Version: 1.0
Content-Type: multipart/related; boundary="boundary1"

--boundary1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

{%BASE64_OPEN%}<div></div>{%BASE64_CLOSE%}
--boundary1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

{%BASE64_OPEN%}<div></div>{%BASE64_CLOSE%}
--boundary1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

{%BASE64_OPEN%}http://example.com{%BASE64_CLOSE%}
--boundary1--

5) Значения параметров части письма
Для правильного формирования тела письма на экране значения параметров типа частей (text/html, text/plain, image/jpeg, application/zip) и типа кодировки (7bit, base64, quoted-printable) . В некоторых случаях возможна подмена значений таким образом, что спам-фильтр неправильно обработает параметр. Возможны различные вариации - подстановка лишних пробелов, знаков препинания, символов не поддерживаемых кодировок. Также возможно проверить переполнение значений.

Простые примеры:
Код: Скопировать в буфер обмена
Код:
Content-Type: text/html:123
Content-Type: text/html=123
Content-Type: text/html 123
Content-Type: application/html
Content-Type=text/html
Content-Type: text/plain/html
Content-Type: text/АБВГД
Content-Type: application/АБВГД
Content-Transfer-Encoding=7bit
Content-Transfer-Encoding: 7bit/base64
Content-Transfer-Encoding: 7bit;base64
Content-Transfer-Encoding: 7bitАБВГД
Content-Transfer-Encoding:                 7bit
Content-Transfer-Encoding base64

6) "Тело внутри тела"
Данная уязвимость раньше работала на сервисе Mail.ru. На данный момент точное описание утеряно, но возможно попробовать подобрать работоспособную схему для любого почтового сервиса. Смысл уязвимости заключается в том, что внутри текстового тела письма можно можно с использованием баундари вставить другое тело. При этом оба тела должны быть кодированы либо в base64 либо в quoted-printable. Внутрь тела можно вставить также любую конструкцию multipart/alternative.

Код: Скопировать в буфер обмена
Код:
Message-ID: <12345678@example.com>
From: admin <admin@example.com>
To: guest@example2.com
Subject: Hello
Date: Tue, 21 Dec 2016 12:00:00 +0300
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="boundary1"

--boundary1
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

{%BASE64_OPEN%}
--boundary1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

{%QP_OPEN%}http://example.com{%QP_CLOSE%}{%BASE64_CLOSE%}
--boundary1--

7) Создание необрабатываемого тела
Возможно создать часть заголовка, которая визуальна задействована, но по факту не будет обрабатываться ни спам фильтром, ни показываться читателю. В основном это сделано для затруднения анализа заголовка. В приведенном ниже примере в самом первом баундари заменена всего одна буква - поэтому целая часть письма никак не будет обработана.

Код: Скопировать в буфер обмена
Код:
Message-ID: <12345678@example.com>
From: admin <admin@example.com>
To: guest@example2.com
Subject: Hello
Date: Tue, 21 Dec 2024 12:00:00 +0300
MIME-Version: 1.0
Content-Type: multipart/related; boundary="boundary1"

--boundAry1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

hidden
--boundary1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

http://example.com
--boundary1--

8) Вставка Javascript
Наиболее сложная инъекция для поиска - вставка Javascript-кода который будет выполняться в браузере. Но также есть вероятность, что можно найти способ выполнения скриптов и в почтовых программах - как десктопных, так и мобильных. При успешном нахождении уязвимости даёт максимальные возможности. Особенность в том, что спам-фильтры никак не реагируют на содержимое тэга <script> - основная проблема заключается в поиске способа выполнения кода в обработчике Ниже приведён первоначальный простейший шаблон для поиска инъекции. Для получения работоспособной схемы над ней нужно поработать, внедрив другие уязвимости - возможно при ошибках обработки заголовка скрипты будут выполняться.

Код: Скопировать в буфер обмена
Код:
Message-ID: <12345678"<script>alert(test)</script>"@example.com>
From: admin <admin" <script>alert(test)</script>"@example.com>
To: guest"<script>alert(test)</script>"@example2.com
Subject: Hello "<script>alert(test)</script>"
Date: Tue, 21 Dec 2016 12:00:00 +0300; "<script>alert(test)</script>"
MIME-Version: 1.0
Content-Type: multipart/related; boundary="boundary1"; "<script>alert(test)</script>"

--boundary1
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit; "<script>alert(test)</script>"

"<script>alert(test)</script>"
--boundary1--

9) Уязвимости Баундари
Поскольку баундари является одной из важнейших элементов заголовка - то возможно изменением состава или положения баундари получить эффективно работающую уязвимость, скрывающую тело письма целиком. Например вставка нестандартных символов (пробелов, символов кириллицы, тире и т.д.) или нестандартной длины более 76 символов.

Примеры:
Код: Скопировать в буфер обмена
Код:
--bound ary1--
--b,ou..nd-----ary1--
--Александр132--
--bounda<br>ry1--
-- 11111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111--

10) Бонус. Разбор письма кодом, которое удавалось доставить в Yahoo с высоким инбоксом, без какой-либо рандомизации. А также прикрепил готовые хеддеры под AMS.
Спойлер: raw msg
Код: Скопировать в буфер обмена
Код:
Message-ID: <372045037.33480.1741027443504@event-consumer-prod-b-69d7575fdc-6z8xc>
Subject: Signature requested on "agreement invoice"
MIME-Version: 1.0
Content-Type: multipart/mixed;
    boundary="----=_Part_33478_1763637123.1741027443498"
X-EchoSign-Bounce: CBJCHBCAABAA2QlKN_TUuNDTxDYdg4Pw8sxXs3joyFlP
X-EchoSign-Template: agreement/progress/participantEsign.vm:en_US:90000000193888163
X-EOPAttributedMessage: 0
X-EOPTenantAttributedMessage: ef0582ca-f7cd-4bb9-9140-726bd33d4d62:0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic:
    DS2PEPF0000343D:EE_|PH0P220MB0393:EE_|SJ0P220MB0367:EE_
X-MS-Office365-Filtering-Correlation-Id: a42681c4-6179-458c-7dd8-08dd5a83605b
X-Moderation-Data: 3/3/2025 6:59:02 PM
X-LD-Processed: ef0582ca-f7cd-4bb9-9140-726bd33d4d62,ExtAddr
X-MS-Exchange-SenderADCheck: 0
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
    BCL:0;ARA:13230040|7416014|376014|586017|34036016|69100299015|41320700013|61400799027|48200799018|4076899003|8096899003|13003099007|8142799012|8075299003|3613699012|19033499003|17680700008;
X-Microsoft-Antispam-Message-Info:
    =?utf-8?B?enA5UWFvRkdWYXlwU3dIelJKaHJCMGdxcmZOQVVkTW9Sdm0yeDFNeVM3Rm9M?=
 =?utf-8?B?cVlSNFpRb2dMK2RqZExDSS9EOGNxVW9WZVZyM0N1WnhuRjNGYjl5QlFwUlMw?=
 =?utf-8?B?aStKUWUvbGxGUi8xNjBHVXp1ZUJ0Vlcya0hVRWF2QmN3ZHp4b1gxaXM2Zi9w?=
 =?utf-8?B?RXRYWGJOOHJhNDdnalNrek9oMGFUd3hOdW1yQ09xamtheCt6QTkvY2JuVHRT?=
 =?utf-8?B?RXBjOTZLQmVqVytleWRaazlERy9jclErYjc2cDBCNU5PUEsySzY1MEQwanla?=
 =?utf-8?B?cG1VUGVnMTBUMXZDb2djRm8raWxEaWwrSU1FR2tVQzh4ckJGTFJ3T0k0SWJi?=
 =?utf-8?B?YjJCalFBR3Iva1pwbnlpRVlGVTF4M0doK2xJVm03dmJhWnJ5Unh5cGd2dkxU?=
 =?utf-8?B?NFpDSGJCREg3c2VzWW9MWEJ4eHdDckRaSnI4NVdUS3ZETjZvcFhkVElBYStj?=
 =?utf-8?B?Yno1M2RWR3lQeDlBVGpBbEVMcHBjdTc0QW1VVkRnQzVOZVo1UGJFVnhqaU85?=
 =?utf-8?B?QWlNRTEzTUZUa2R3NEhIZEpOcmU2VjVINE5oT3F4aE1QZWp6cTU2eG1uOVQ4?=
 =?utf-8?B?RTdtRlExSnladElCVDFOcXRlMlMxM2paTnluS29XY1dpOHBVa2NjRTZOU0VF?=
 =?utf-8?B?SUVONTVpdG9PdmRMb2pWYjBERmZsNERxQ0Y0Q0xvV0RIT09SZXpLc2k2aUZm?=
 =?utf-8?B?VmJpSFcwTUVWTUpGVTgwbkl2Nk1kT2NYYVhEYlJmZVY0ZG9ZZHlTL0JPSTBU?=
 =?utf-8?B?L0JjWmI1WUZZUHo1Z0tJNzZBdC8wTS9FZ1pnY0hFTEZQR3JkZXJOcFRJUGxJ?=
 =?utf-8?B?Wlp5YnRBakxiem55M2pIdWZ3OFJOamJlZUdIZ2svUUltcUg5MjNlektvQzRP?=
 =?utf-8?B?YmxVS0VPaEtxSW5EZzgyZlBraVA5a3VOQi9sbFd3Y2kvS25BZGNlUXVsRUhr?=
 =?utf-8?B?UU11K2FVRGFBczJueUlmNHNWU3hZYTA4UVl1ZGdrbVF1NlhkZVJxTU4zZmdZ?=
 =?utf-8?B?UWVvNjBROG1ubzMydnIvdzVrZzJEbTY4aU9HYVA5V01zUVUwSmVLZkEyOE5h?=
 =?utf-8?B?Ukh2TTZUTWxEVzkwL09mK0tCcXRwN1FKNGJ6ZDJZTS9DK3M2Y1IraXZvK2lI?=
 =?utf-8?B?RjJXekpqakhOY1IzbWlOWGU2ZVdhVFBJVlNWUzFtOERsMnNNTms5Y1NOT3ZX?=
 =?utf-8?B?VnNxTnovZERBMEFEWXh5TU1SbXdxODF5NVhCT0ZXN1F6b0Voc1hCaG5jZSti?=
 =?utf-8?B?T3FCRDJZWER0NVlFUW9ic0xSUCtOOTlLWG9tWitoVXZuQ1pOMHNialNBWjgy?=
 =?utf-8?B?bFZZckFMeVZpd1ZhblR3RHJ4T2NVeTB2enRlaGJDUFd5bFVwQkFZSlVQcjln?=
 =?utf-8?B?SFlNUVJEN1E0TTh6TkZ3MW1vbjkrWlppWWVEZUlMMzR6VnhzcmhnanVNcVpr?=
 =?utf-8?B?Tk5FYmFXcUVQRGtqL0w1R3loTXNmRDllSUlrZlZpUjQ4Q2U5UTRweHM3a2J4?=
 =?utf-8?B?ZVdTRm9ZOEg2Qkswektva3hrYXY0ZXlXVW9PWHBrREhzaFl6ektnTjQyZExM?=
 =?utf-8?B?U0FLQmUxamdYZ0VGT1grMWdpR3dlMmJtR1dHZ3I5YUl5RFRhem1kdWtDTEJt?=
 =?utf-8?B?WEl3Y0lkK1BLYVp4WkYxcWlScXlqcWZSV3loZ09Eb2ZIMkhSYS9ta09oc1Mv?=
 =?utf-8?B?clRGWXF2UUJwa2hnblQ5U3NpTlFHUUxhUThCdFFVbVNnK2cvVWkxTGR3eW9Y?=
 =?utf-8?B?MHJHakYxc0lEcFpBb0dXTEI1YnhsZTU0OXdyc1JrejRCa3c1T3AvVU1jUTRx?=
 =?utf-8?B?cVIxNE42anp1dDgzeitidUVnOW9ZMjZteVVDZkZnVTdFQWRoaHRCd2JjRVFY?=
 =?utf-8?B?K0FVakZyS2ZQZ3NyakJlR1c0eTlnYVlPTmJPZ25BUWxuRlY1MTF4WE9JajRv?=
 =?utf-8?B?NW9Ia0g1MUMwYnBmZDI5SFdsV3hLQjhCdGFoVXZ6SkFweGczampLdG9HdEVp?=
 =?utf-8?Q?nEH5Fh7W3X6KD4IWTE/9t/nuGgL8GE=3D?=
X-Forefront-Antispam-Report:
    CIP:40.65.170.152;CTRY:SG;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:relay.southeastasia.utility.echosign.com;PTR:relay.southeastasia.utility.echosign.com;CAT:NONE;SFS:(13230040)(7416014)(376014)(586017)(34036016)(69100299015)(41320700013)(61400799027)(48200799018)(4076899003)(8096899003)(13003099007)(8142799012)(8075299003)(3613699012)(19033499003)(17680700008);DIR:OUT;SFP:1501;
X-Auto-Response-Suppress: DR, OOF, AutoReply
X-OriginatorOrg: jameskidsstores109.onmicrosoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a42681c4-6179-458c-7dd8-08dd5a83605b
X-MS-Exchange-CrossTenant-Id: ef0582ca-f7cd-4bb9-9140-726bd33d4d62
X-MS-Exchange-CrossTenant-AuthSource: DS2PEPF0000343D.namprd02.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: Internet
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2025 18:59:04.0892
 (UTC)
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: bFI+vIOArgWfX2Czz8iDTZ31iPRqHKrpNgwub9FLb/WnqCoVtt79/rooS9OZnei9tQznL22JjLdJcTKg0ps7abdPPVMx9L93k0egVR64kFUjcmyYs7MS35ZHvEjR8jbbU6ubQXOw4vGoJdPPaWrPjw22YQYcdlJjWmQd+Q7WJHR8ROnPBdJj67/ZQRKnmcrKQaPhwunij5pj7MZUaavDeqHEf7+tpwEbmeW4wAqa21k5GQpbD0pF47PLUpWFhEaJ
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0P220MB0367
Content-Length: 14453

------=_Part_33478_1763637123.1741027443498
Content-Type: multipart/related;
    boundary="----=_Part_33479_1824016825.1741027443498"

------=_Part_33479_1824016825.1741027443498
Content-Type: text/html;charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Screenshot 2025-03-03 at 6.05.31 PM.png


Заключение.

В рамках данной статьи по понятным причинам не ставилась задача выложить готовые схемы, но при глубоком понимании инструментов поиска и принципов построения заголовка письма - возможно найти любую работоспособную инъекцию при наличии должного упорства и фантазии. Также возможно, грамотно скрывая от анализа антиспам-службами какую либо уязвимость - пользоваться ей очень долгое время (например SpamAssassin последний раз обновлялся два года назад).
Возможности по поиску работоспособной инъекции огромны, а преимущества такого подхода бесспорны. Да, найти такого рода уязвимость не так легко как кажется, но затраченное время окупается многократно, в итоге позволяя достигать инбокса в 100%.
При возникновении интереса к теме возможно расширение и углубление материала.
 
Сверху Снизу