Содержание:
С возвращением, мои хакеры!
Если вы думаете о том, чтобы применить к вашей цели средства социальной инженерии, то вам, вероятно, понадобятся адреса электронной почты. Имея в своем распоряжении внутренние адреса электронной почты сотрудников организации, можно адаптировать социально-инженерную атаку к конкретным людям и обстоятельствам (например, направить отчет о продажах в отдел продаж) и, возможно, подменить адрес электронной почты одного из сотрудников в организации. Таким образом повышается эффективность писем и люди чаще кликают по ссылкам или открывают документы, которые мы отправляем.
Существует множество способов собрать адреса электронной почты, включая использование Maltego (сборщика адресов электронной почты) и других утилит. Но что если мы сможем перейти непосредственно на SMTP-сервер организации и спросить, существует ли конкретный адрес электронной почты? Нам кажется, что это самый лучший и надежный способ.
Справочная информация по SMTP
Как вы знаете, SMTP означает Simple Mail Transport Protocol (простой протокол передачи почты), который работает на порту 25. В отличие от POP3 и IMAP, которые работают через порты 110 и 143, SMTP является протоколом межсерверного обмена данными. Клиенты используют POP3 или IMAP для получения или отправки сообщений на SMTP-сервер, а он передает полученные от клиентов данные другим SMTP-серверам.
Очевидно, что SMTP-сервер обслуживает базу данных с адресами электронной почты в организации, на которые он должен отправлять и получать электронные письма. Вот именно к этой базе данных мы и хотим получить доступ и делать соответствующие запросы.
Чтобы найти SMTP-серверы, вы можете использовать Nmap или другой сканер, с помощью которого можно поискать серверы с открытым портом 25. Если порт 25 будет открыт, то это, скорее всего, будет именно SMTP-сервер. Кроме того, вы можете использовать запрос к DNS для того, чтобы найти IP-адрес его SMTP-сервера.
Команды SMTP
Протокол SMTP, как и многие другие протоколы, имеет свой собственный набор команд. Вот несколько наиболее важных команд SMTP:
- HELO — это команда, которую клиент отправляет на сервер для начала разговора. Как правило, эту команду должны сопровождать IP-адрес или имя домена, например HELO 192.168.101 или HELO client.microsoft.com.
- EHLO — эта команда совпадает с HELO, но сообщает серверу, что клиент хочет использовать Extended SMTP. Если сервер не работает с ESMTP, он все равно распознает эту команду и будет отвечать соответствующим образом.
- STARTTLS — Обычно SMTP-серверы взаимодействуют в открытом виде. Для повышения безопасности соединение между SMTP-серверами может быть зашифровано с помощью TLS (Transport Layer Security). Эта команда запускает сеанс TLS.
- RCPT — указывает адрес электронной почты получателя.
- DATA — запускает передачу содержимого сообщения.
- RSET — используется для отмены текущей транзакции электронной почты.
- MAIL — указывает адрес электронной почты отправителя.
- QUIT — закрывает соединение.
- HELP — запрашивает справку.
- AUTH — используется для авторизации клиента на сервере.
- VRFY — просит сервер проверить, существует ли почтовый ящик пользователя электронной почты.
Шаг 1. Запустите Kali и откройте терминал
Теперь, когда мы рассмотрели основы SMTP, давайте посмотрим, сможем ли мы использовать эту информацию для того, чтобы взломать SMTP-сервер и извлечь адреса электронной почты. Запустим Kali и откроем терминал.
Шаг 2. Telnet в SMTP-сервер
Наш следующий шаг — посмотреть, можно ли вручную подключиться к SMTP-серверу с помощью telnet.
kali> telnet 192.168.1.101 25
Как вы видите, мы успешно подключились к серверу (metasploitable.localdomain) через telnet.
Шаг 3. Ручная проверка адреса электронной почты
Теперь, когда мы подключаемся через telnet к SMTP-серверу, мы можем использовать команды SMTP, перечисленные выше, чтобы сделать нужный запрос на сервер. Самое главное — нам нужно использовать команду VRFY (проверка). Эта команда, за которой указывается имя пользователя электронной почты, даст указание серверу проверить, существует ли учетная запись данного пользователя, например:
> VRFY sys
Как видно на скриншоте выше, мы пробовали вот таких пользователей:
- sys
- admin
- administrator
- nullbyte
- root
Сервер подтвердил, что «sys» и «root» имеют учетные записи электронной почты на сервере. Отлично!
Шаг 4. Используйте Smtp-User-Enum
На третьем шаге мы вручную делали запросы на SMTP-сервер, чтобы узнать, существует ли конкретный адрес электронной почты. Было бы проще, если бы у нас был некий скрипт, который делал бы эти запросы автоматизировано? К счастью, да, такой скрипт есть! Он называется smtp-user-enum и уже включен в дистрибутив Kali.
Мы можем найти его в Приложениях -> Kali Linux -> Сбор информации — SMTP-анализ -> smtp-user-enum.
При клике на него открывается справка, показанная на скриншоте ниже. Обратите внимание, что основной синтаксис для поиска пользователей электронной почты следующий:
kali> smtp-user-enum -M VRFY -U -t
Теперь давайте сделаем команду, которую можно использовать против Metasploitable SMTP-сервера. Мы можем использовать любой вордлист Kali, создать свой собственный или скачать какой-нибудь из тысяч вордлистов, доступных в Интернете. Мы решили попробовать один из имеющихся в Kali:
/usr/share/fern-wifi-cracker/extras/wordlist
Вместе с ним команда становится такой:
kali > smtp-user-enum -M VRFY -U /usr/sharefern-wifi-cracker/extras/wordlist -t 192.168.1.101
Как видно на скриншоте ниже, мы запустили ее, и он сначала отобразил информацию сканирования:
А затем найденных пользователей:
Теперь, когда мы знаем адреса электронной почты пользователей на SMTP-сервере этой организации, мы можем отправлять им электронные письма с социально-инженерным содержанием или подменить адрес их электронной почты на свой, и отправлять письма их коллегам.
Обязательно возвращайтесь за новым материалом!