Забираем почту без sms и регистрации

в 13:11, , рубрики: [MIS]Team, OFFZONE, pentest, red team, информационная безопасность, Тестирование IT-систем, фишинг

Не прошло и месяца, как мы решили, что пора написать статьи по итогу наших выступлений на OFFZONE-2018. Первая статья будет исполнена по мотивам доклада с FastTrack «MS Exchange Relay attack without sms and registration».

При проведении RedTeam использование фишинга является обязательным – можно построить великолепную защиту на периметре, но какой-нибудь пользователь поведется на фишинг и даст злоумышленнику возможность оказаться сразу внутри сети. Все прекрасно знают, что в основном для фишинга используют ссылки на сторонние сайты, по которым пользователю нужно перейти или документ с макросом. Службы безопасности под угрозой санкций «дрессируют» пользователей, говоря, что ни в коем случае нельзя нажимать на кнопочку «включить содержимое». И в принципе успех есть – пользователи на такого рода рассылки ведутся все реже. Но злоумышленники тоже не стоят на месте – фишинг становится все более интересным. От нас Заказчики также требуют каких-то интересных фишинговых рассылок. Да и мы сами заинтересованы в том, чтобы сотрудники Заказчика повелись на фишинг, и мы смогли им объяснить, на что следует обращать внимание при получении письма.

Почему именно такие методы для фишинга?

Многие компании используют MS Exchange в качестве корпоративного почтового сервера. Это удобно для компании, но также удобно и для злоумышленника. Злоумышленнику интересно отправлять с почты жертвы сообщения, а также скачивать какие-либо письма. Мы, как RedTeam, хотим полностью имитировать действия злоумышленника и нам интересно совершать с почтой такие же действия. Естественно, в нашем случае скачивание почты происходит не в полном объеме, и Заказчик об этом предварительно уведомляется. Ибо конфиденциальная информация, все дела.

Для осуществления такого рода действий нам нужна почтовая сессия пользователя. Первое что нужно продумать – как такую сессию перехватить. Решили воспользоваться старым добрым NTLM Relay (т.к. в большинстве компаний до сих пор используется NTLM). Да, в случае Kerberos работать не будет – можно закрывать статью и дальше не читать.

NTLM Relay известен давно и реализаций его также достаточно. Мы тоже не стали изобретать велосипед и взяли одну из реализаций с GitHub от Arno0x0x. Однако все оказалось не так просто и пришлось немного дописывать. А именно:

  • сделать, чтобы все работало со всеми современными версиями ОС Windows (не работало на win10 и win server2016);
  • сделать, чтобы работало с последним Impacket’ом;
  • добавить удобную систему логирования.

Доработанную версию можно найти на нашем github.

В качестве контейнера для доставки были выбраны документы Microsoft Office, так как они наиболее часто пересылаются по корпоративной почте, и пользователи их открывают. Причем было решено использовать вложенные документы (SubDocument), потому что это легальная операция с документом, и ни один антивирус не среагирует на такой файл. В качестве вложенной ссылки можно включать как smb, так и http-ресурсы. Подробнее будет рассмотрено далее.

Как сформировать фишинговый документ?

В качестве примера рассмотрим совершенно «чистый» документ mydoc3.docx, который является самым обычным документом Microsoft Word.

Забираем почту без sms и регистрации - 1

Любой документ Microsoft Office является zip-архивом, состоящим из xml, которые в итоге и формируют ваш красивый документ. Для того, чтобы сделать вложенный документ, нам необходимо внести изменения в файлы с расширением .rels. В зависимости от версии MS Office изменения необходимо внести либо в document.xml.rels, либо в settings.xml.rels. В данной статье рассматривается Office 365, и изменения вносятся в settings.xml.rels.

Забираем почту без sms и регистрации - 2

В качестве вложенного документа даем ссылку на ресурс, на котором находится этот самый вложенный документ. В нашем случае вложенный документ находится на smb-ресурсе \127.0.0.1subdoctest

Забираем почту без sms и регистрации - 3

Сохраняем изменения и открываем полученный документ. В случае успеха документ будет выглядеть следующим образом:

Забираем почту без sms и регистрации - 4

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

Забираем почту без sms и регистрации - 5

В итоге получили совершенно не подозрительный документ, при открытии которого Word сам пойдет на ресурс за своей частью, которая прописана у него как вложенный документ.

А куда все будет приходить?

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

Для того, чтобы все запустить, достаточно минимального набора – последний Impacket, тулза MSExchangeRelay и Python2.7.
Запускаем все командой:

python MsExchangeRelay.py -v -t https://exchange_addr/ews/exchange.asmx -r sendMail -d "example@email.com" -s Hello -m sampleMsg.html -o out.txt

exchange_addr – адрес exchange сервера Заказчика
example@email.com – почтовый адрес на который вы хотите отправить сообщения с почты жертвы.
-s Hello – тема письма
-m sampleMsg.html – тело письма, которое хотите отправить
-o out.txt – место куда пишутся логи.

После запуска на сервере поднимаются SMB и HTTP сервера, которые ожидают подключения к ним.

Забираем почту без sms и регистрации - 6

После успешного коннекта видно, с каким логином и с какого IP-адреса залогинился пользователь:

Забираем почту без sms и регистрации - 7

Как теперь это применять?

Применять такой способ можно на разных кейсах.

Кейс 1. Внешний нарушитель, у Заказчика открыт исходящий 445 порт

В таком случае можно использовать ссылку на smb-ресурс. Вся прелесть такой ссылки заключается в том, что ОС Windows не хочет лишний раз беспокоить пользователя, если сама может справиться. Соответственно, при открытии документа с ссылкой на smb-ресурс Windows сама отправляет доменные креды пользователя данному ресурсу. То есть для пользователя не происходит ничего. Пользователь открывает документ. И все. Подозрения не вызывает ничего. А у нас уже есть пользовательская почтовая сессия.
Открытый порт 445, хоть и редко, но встречается до сих пор. Поэтому его тоже рассматриваем и оставляем.

Кейс 2. Внутренний нарушитель

Забираем почту без sms и регистрации - 8
Здесь мы также применяем ссылку на smb-ресурс. В случае удачного перехвата сессии на указанный почтовый адрес придет письмо, которое мы указали.

Кейс 3. Внешний нарушитель и закрыт исходящий порт 445

Забираем почту без sms и регистрации - 9
Можем использовать ссылку на HTTP-сервер. Однако в данном случае все будет не так прозрачно для пользователя. При открытии документа пользователь увидит стандартное окошко от Windows, в котором запрашивается логин и пароль пользователя. Момент, который может смутить пользователя – доменное имя evil_http_server – оно должно быть максимально похоже на доменное имя exchange сервера Заказчика.

Забираем почту без sms и регистрации - 10 После того, как пользователь введет свои креды, мы получаем его сессию и отправляем письмо.

Вместо заключения

NTLMRelay можно оборачивать в разные контейнеры и придумывать совершенно разные подходы к фишингу пользователей. Пока жив NTLM – живы и такого рода атаки. Так что экспериментируйте!

P.S. Спасибо организаторам OFFZONE-2018 за отличную конференцию!

Автор: karelovao

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js