• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Поднимаем инфраструктуру для симуляции фишинга с обходом 2FA

stihl

Moderator
Регистрация
09.02.2012
Сообщения
1,166
Розыгрыши
0
Реакции
508
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
В этой статье я объясню, как построить инфраструктуру для симуляции фишинговой атаки в рамках тестирования организации. Мы создадим с нуля почтовый сервер, установим и настроим обратный прокси Evilginx, а затем внедрим его в фишинговый фреймворк Gophish. В конце я покажу на практике процесс проведения фишинговой атаки с перехватом логина, пароля и сессионных cookie, c последующим обходом двухфакторной аутентификации.

warning​

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

Связка Evilginx и Gophish​

Два фреймворка, которые мы будем использовать для проведения фишинговой кампании, называются Evilginx и Gophish. Это два самостоятельных инструмента, которые выполняют разные задачи.


Gophish — это программа с открытым кодом, созданная Джорданом Райтом. Gophish позволяет проводить автоматизированные фишинговые рассылки и таким образом имитировать действия злоумышленника.

Evilginx — это обратный прокси‑сервер, который проксирует соединение между пользователем и целевым веб‑ресурсом, позволяя перехватить логин, пароль и ключи сеанса. С помощью этого фреймворка можно обойти двухфакторную аутентификацию. Автор Evilginx — Куба Грецки.

Есть две версии интеграции этих двух инструментов. Первая — Для просмотра ссылки Войди или Зарегистрируйся, ее разработал Дилан Эванс, он же fin3ss3g0d. Она включает в себя более расширенный набор возможностей вроде SMS-рассылок и генерации QR-кодов, а также некоторые другие отличия от официальной версии.

Для просмотра ссылки Войди или Зарегистрируйся интеграцию разработал автор Evilginx Куба Грецки, и появилась она относительно недавно — в апреле 2024 года. На данный момент в ней меньше функций, чем в версии fin3ss3g0d, но инструмент постоянно обновляется, и, скорее всего, все недостающее добавят. В статье я буду использовать именно эту версию интеграции.


Начинаем строить инфраструктуру​

Для начала необходимо арендовать VPS/VDS и доменное имя. Нам хватит следующей конфигурации: 1 Гбайт ОЗУ, 20 Гбайт SSD и один процессор. В качестве ОС — Ubuntu 20.04.

Для просмотра ссылки Войди или Зарегистрируйся
Получаем креды от сервера, подключаемся к машине по SSH и проводим базовую настройку: создаем нового пользователя и добавляем его в группу sudo, создаем ключи SSH, отключаем аутентификацию по паролю, настраиваем порты, правила файрвола и так далее.

info​

Подробнее о первоначальной настройке сервера ты можешь прочесть в статье «Для просмотра ссылки Войди или Зарегистрируйся».
Разобравшись с сервером, приступаем к созданию и настройке домена. Для этого выбираем любой сервис, предоставляющий услуги аренды. Один из ключевых компонентов фишинговой атаки — это доменное имя, которое введет пользователя в заблуждение. Регистрация такого домена называется тайпсквоттинг, и вариантов здесь может быть много.

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

Теперь приступим к настройке DNS. Первым делом нужно установить основную запись типа А, которая связывает доменное имя с IP-адресом сервера. Для этого редактируем ресурсные записи в разделе управления зоной DNS у регистратора.

Для просмотра ссылки Войди или Зарегистрируйся
В дальнейшем при создании фишинговых адресов будет использоваться множество поддоменов и для каждого такого поддомена потребуется отдельная запись типа A, однако можно использовать и запись типа CNAME, передав ей в качестве аргумента регулярное выражение «звездочка».

Для просмотра ссылки Войди или Зарегистрируйся
Этот тип записи сопоставит псевдоним (поддомен) с каноническим именем домена (webaccount.site) в момент генерации фишингового адреса и получения TLS/SSL-сертификата в Evilginx.

Подождем, пока DNS-записи распространятся (это может занять некоторое время, от 15 минут до нескольких часов), и проверим работоспособность сервера. Для этого просто обращаемся к домену через браузер.

Для просмотра ссылки Войди или Зарегистрируйся
Домен успешно привязался к серверу. После аренды домена желательно подождать хотя бы неделю: чем домен старше, тем меньше вероятность, что он окажется в черных списках. Во время моих первых попыток я регистрировал домен и сразу же использовал его в имитации фишинговой атаки, из‑за чего его отстреливали в течение суток. Раз с доменом разобрались, приступим к установке почтового сервера.


Поднимаем почтовый сервер​

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

Первым делом необходимо установить две записи. Одна — типа А с именем mail, указывающая на IP-адрес сервера.

Для просмотра ссылки Войди или Зарегистрируйся
Вторая запись — типа MX, которая указывает на сервер, обрабатывающий электронную почту.

Для просмотра ссылки Войди или Зарегистрируйся
Теперь можно приступить к установке и настройке Postfix. Подключаемся к своему VPS/VDS по SSH и запускаем установку:

sudo apt install postfix
При настройке в первом шаге выбираем пункт Internet Site.

Для просмотра ссылки Войди или Зарегистрируйся
Вводим доменное имя, которое будет определяться при отправке почты.

Для просмотра ссылки Войди или Зарегистрируйся
Указываем почтовый адрес администратора домена. Можно оставить пустым (что не рекомендуется), тогда почта, предназначенная для администратора, будет отправляться в /var/mail/nobody.

Для просмотра ссылки Войди или Зарегистрируйся
Дальше прописываем адреса вот в таком формате:

<hostname>, <domain>, localhost.com, localhost
Для просмотра ссылки Войди или Зарегистрируйся
Отказываемся от принудительного выполнения синхронизации обновлений.

Для просмотра ссылки Войди или Зарегистрируйся
Поле с локальной сетью не трогаем и оставляем по умолчанию.

Для просмотра ссылки Войди или Зарегистрируйся
Размер почтового ящика оставляем со значением 0, в этом случае он будет определяться общим дисковым пространством.

Для просмотра ссылки Войди или Зарегистрируйся
Символ, который будет использоваться для определения расширения локального адреса, — ставим плюсик.

Для просмотра ссылки Войди или Зарегистрируйся
И в последней настройке выбираем используемые протоколы — all.

Для просмотра ссылки Войди или Зарегистрируйся
После настройки установку Postfix можно считать завершенной. Проверяем при помощи утилиты netcat, запустился ли почтовый сервер. Достаточно постучаться на 25-й порт нашего хоста (порт SMTP по умолчанию).

Для просмотра ссылки Войди или Зарегистрируйся
Почтовый сервер запущен, но одной установки мало, необходимо также настроить ресурсные записи, чтобы почта доходила до конечной точки. Если пропустить этот важный этап, почта не то что будет попадать в спам, она в принципе не будет рассматриваться почтовыми серверами. Для успешной доставки сообщений необходимо настроить ресурсные DNS-записи типа TXT — SPF, DKIM, DMARC.


Настраиваем SPF, DKIM и DMARC​


SPF​

Начнем с записи SPF (Sender Policy Framework). Это текстовая запись, которая описывает то, какие хосты имеют право отправлять почту от имени домена, то есть это список доверенных серверов. По сути, SPF — это механизм, проверяющий, авторизован ли хост, отправляющий электронное письмо от определенного доменного имени.

Чтобы такое правило работало, создаем запись TXT в панели управления доменом.

Для просмотра ссылки Войди или Зарегистрируйся
Эта запись определяет, что электронную почту от имени домена могут отправлять серверы, указанные в записях MX и A домена, а также имеющие IP-адреса из диапазона 94.142.141.0/24. Почта от других хостов будет помечена как подозрительная.

www​

Ты можешь воспользоваться веб‑инструментом Для просмотра ссылки Войди или Зарегистрируйся, чтобы создать свои правила SPF.

DKIM​

Второй записью настроим DKIM (DomainKeys Identified Mail). Это механизм проверки электронной почты, задача которого — предотвращать подделку сообщений. Для этого применяется асимметричное шифрование: каждое сообщение подписывается закрытым ключом.

info​

DKIM использует пары ключей: закрытый, к которому имеет доступ только почтовый сервер, и открытый, который прописывается в текстовой DNS-записи, а затем используется получателем для проверки легитимности сообщения.
Настройка этой записи потребует множество шагов, будь внимателен при их выполнении — сделать что‑то не так довольно легко. Полное руководство по настройке DKIM есть на Для просмотра ссылки Войди или Зарегистрируйся, я не буду полностью переписывать его, а только опишу ключевые моменты.

Первым делом устанавливаем утилиту OpenDKIM:

Код:
sudo apt update
sudo apt install opendkim opendkim-tools
И редактируем файл /etc/opendkim.conf. Добавим следующие строки (номер порта Socket выбираем любой, который не занят):

Код:
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkimpendkim
Socket inet:12712@localhost

Подключаем расширение Milter к Postfix. Сначала открываем файл /etc/default/opendkim и меняем номер порта вот в этой строке:

SOCKET="inet:12301@localhost"
Новый номер выбираем тот, что указали ранее в opendkim.conf:

SOCKET="inet:12712@localhost"
Затем настраиваем Postfix на использование Milter. Для этого открываем файл /etc/postfix/main.cf и убеждаемся, что присутствуют эти две строки и они не закомментированы:

Код:
milter_protocol = 2
milter_default_action = accept
Редактируем следующие строки, меняя номер порта на тот, что определили ранее.

Для просмотра ссылки Войди или Зарегистрируйся
Если таких параметров в файле нет, то прописываем их:

Код:
smtpd_milters = inet:localhost:12712
non_smtpd_milters = inet:localhost:12712
Создаем каталоги для взаимодействия с ключами:

Код:
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
Указываем доверенные хосты в файле /etc/opendkim/TrustedHosts.

Для просмотра ссылки Войди или Зарегистрируйся
Создаем таблицу ключей, для этого прописываем в файл /etc/opendkim/KeyTable такую строку:

mail._domainkey.webaccount.site webaccount.site:mail:/etc/opendkim/keys/webaccount.site/mail.private
Создаем таблицу подписей, прописав в файл /etc/opendkim/SigningTable эту строку:

*@webaccount.site mail._domainkey.webaccount.site
Теперь приступим к созданию пары открытого и закрытого ключей. Переходим в каталог /etc/opendkim/keys и создаем директорию для домена, в которой будут храниться ключи.

Для просмотра ссылки Войди или Зарегистрируйся
Генерируем ключи следующей командой:

sudo opendkim-genkey -s mail -d webaccount.site
После чего меняем владельца файла с закрытым ключом на учетную запись opendkim.

Для просмотра ссылки Войди или Зарегистрируйся
Осталось добавить содержимое файла mail.txt в текстовую запись DNS в панели управления доменом. Выводим содержимое файла в консоль, копируем всю строку, которая находится в скобках, и приводим к нужному формату.

Для просмотра ссылки Войди или Зарегистрируйся
В итоге у меня получилось отформатированное значение, которое нужно добавить в DNS-запись типа TXT с ключом mail._domainkey.

Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся


DMARC​

DMARC (Domain-based Message Authentication, Reporting & Conformance) — это протокол аутентификации электронной почты, созданный для защиты доменов от спуфинга (подделки отправителя) и фишинговых атак. Политика DMARC определяет то, как серверам‑получателям следует обрабатывать электронные письма, которые не проходят проверку аутентификации SPF и DKIM.

Настройка крайне проста, особенно на фоне DKIM. Достаточно создать TXT-запись вроде той, что на скриншоте.

Для просмотра ссылки Войди или Зарегистрируйся

Тестируем SMTP-сервер​

Когда все настроено, время проверить работоспособность сервера SMTP. Для этого можно либо отправить сообщение себе на почту с любого сервиса, либо же воспользоваться Для просмотра ссылки Войди или Зарегистрируйся. Открываем сайт по ссылке, копируем указанный там почтовый адрес и жмем большую кнопку «Проверить». Теперь мы можем отправить сообщение на выданный нам адрес. Это делается вот такой командой:

echo "Test" | mail -s "Test" [почтовый адрес]
Как видим, почтовый сервер настроен и корректно работает (половину балла мне сняли, потому что домен есть в одном из нескольких черных списков, но это совсем не критично). Если ты сделал ошибки в настройке, в этом отчете они будут указаны.

Для просмотра ссылки Войди или Зарегистрируйся

Ставим и настраиваем Evilginx и Gophish​


Ставим Gophish​

Прежде чем поднимать Evilginx и Gophish, нужно установить в систему язык Go, так как оба этих инструмента работают на нем. Отправляемся на сайт разработчика и открываем Для просмотра ссылки Войди или Зарегистрируйся, скачиваем deb-пакет командой wget и следуем инструкции.

Для просмотра ссылки Войди или Зарегистрируйся
Приступим к установке Gophish. Нам нужно скачать версию с интеграцией в Evilginx из Для просмотра ссылки Войди или Зарегистрируйся, тут есть два варианта установки. Первый — скачиваем командой wget архив с релизом для своей ОС со Для просмотра ссылки Войди или Зарегистрируйся, после чего просто разархивируем файл и делаем бинарник Gophish исполняемым командой chmod.

Второй вариант — сборка из исходного кода. Для этого копируем репозиторий и запускаем установку:

Код:
sudo git clone https://github.com/kgretzky/gophish/
go build
В результате у нас будет версия Gophish, модифицированная для работы с Evilginx.

Для просмотра ссылки Войди или Зарегистрируйся
Теперь можно приступить к настройке и запуску Gophish. Первым делом редактируем файл config.json. В нем нужно изменить параметр admin_server.listen_url. По умолчанию там указан локальный IP 127.0.0.1. Чтобы Gophish работал не только локально и к нему возможно было подключиться через интернет, нужно изменить этот IP на 0.0.0.0:3333. Номер порта, кстати, можно выставить любой незанятый в системе.

Для просмотра ссылки Войди или Зарегистрируйся
После настройки запускаем исполняемый файл Gophish и сразу ищем в логах логин и пароль по умолчанию для доступа к панели управления.

Для просмотра ссылки Войди или Зарегистрируйся
Теперь переходим в браузер и обращаемся к панели Gophish по адресу своего VPS/VDS с указанным ранее портом.

Для просмотра ссылки Войди или Зарегистрируйся
Вводим креды, которые нашли в логах, после чего у нас открывается форма для изменения пароля по умолчанию. Меняем пароль, снова вводим креды, аутентифицируемся и попадаем в нашу учетную запись Gophish.

Для просмотра ссылки Войди или Зарегистрируйся
Чтобы оптимизировать запуск и дальнейшие фишинговые кампании, нужно настроить Gophish как демон, то есть создать сервис, который будет запускать Gophish в фоновом режиме или останавливать одной командой. В каталоге /etc/init.d находятся сценарии оболочки, которые запускаются системой инициализации SysVinit, поэтому создаем в этом каталоге файл Gophish и добавляем следующий код, указав в параметре appDirectory абсолютный путь к Gophish:
Код:
processName=Gophish
process=gophish
appDirectory=/home/zxc/gophish
logfile=/var/log/gophish/gophish.log
errfile=/var/log/gophish/gophish.error

start() {
    echo 'Starting '${processName}'...'
    cd ${appDirectory}
    nohup ./$process >>$logfile 2>>$errfile &
    sleep 1
}

stop() {
    echo 'Stopping '${processName}'...'
    pid=$(/bin/pidof ${process})
    kill ${pid}
    sleep 1
}

status() {
    pid=$(/bin/pidof ${process})
    if [["$pid" != ""| "$pid" != "" ]]; then
        echo ${processName}' is running...'
    else
        echo ${processName}' is not running...'
    fi
}

case $1 in
    start|stop|status) "$1" ;;
esac

Сохраняем файл и прописываем команды для запуска демона и проверки статуса его работы.

Для просмотра ссылки Войди или Зарегистрируйся
Сервис запускается и работает корректно.

Ставим Evilginx​

Копируем официальный репозиторий Evilginx с GitHub:

sudo git clone [URL]https://github.com/kgretzky/evilginx2[/URL] && cd evilginx2
Evilginx тоже написан на Go, который у нас уже установлен. Поэтому просто выполняем make. Скрипт соберет весь проект и создаст исполняемый файл evilginx в директории build.

Для просмотра ссылки Войди или Зарегистрируйся
Чтобы постоянно не прописывать бесконечные пути, лучше собрать все необходимое в отдельном каталоге. Создаем директорию evilginx в домашнем каталоге и копируем исполняемый файл evilginx вместе с директориями phishlets и redirectors в ~/evilginx:

Код:
sudo mkdir ~/evilginx
cd ~
sudo cp evilginx/build/evilginx ~/evilginx
sudo cp -r evilginx/phishlets/ ~/evilginx
sudo cp -r evilginx/redirectors/ ~/evilginx

Для просмотра ссылки Войди или Зарегистрируйся
Когда все готово, приступаем к настройке. Запускаем Evilginx:

sudo ./evilginx -p phishlets/
Для просмотра ссылки Войди или Зарегистрируйся
Нам необходимо определить IP-адрес и домен, а также интегрировать Gophish. В консоли Evilginx прописываем эти команды:

Код:
config domain [ваш домен]
config ipv4 [IP вашего VPS/VDS]
config gophish admin_url [URL, на котором поднят gophish]
config gophish api_key [ключ API gophish]
config gophish insecure true
Ключ API Gophish можно найти в панели управления Gophish, перейдя на вкладку Account Settings.

Для просмотра ссылки Войди или Зарегистрируйся
Теперь выполняем команду config gophish test для тестирования соединения Evilginx и Gophish.

Для просмотра ссылки Войди или Зарегистрируйся
Сообщение гласит о том, что соединение успешно.

На этом этапе мы построили основную часть инфраструктуры. Теперь можно начать подготовку к проведению фишинговой кампании.


Настройка кампании Gophish​

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

Первый компонент — это группы пользователей, которым будут рассылаться письма. Другими словами, это жертвы, точнее, подопытные в нашем тесте.

Предположим, в результате разведки мы получили имена и почтовые адреса работников компании. Все эти данные добавляем в соответствующие поля и нажимаем кнопку Add для каждого пользователя. Либо можешь сразу загрузить файл CSV, содержащий все эти данные. Когда вся инфа добавлена, нажимаем кнопку Save changes.

Для просмотра ссылки Войди или Зарегистрируйся
Следующее, что стоит настроить, — это шаблон электронного письма. Правильно написанное письмо, не вызывающее подозрений, а вызывающее только желание поскорее нажать на ссылку и выполнить все инструкции, — это ключевой компонент успешной фишинговой атаки. Тут уже все зависит от навыков социальной инженерии атакующего. Я создам абсолютно условное фишинговое письмо и не буду расписывать методы социальной инженерии, это отдельная тема.

info​

О фишинговых приемах ты можешь прочесть в статье «Для просмотра ссылки Войди или Зарегистрируйся».
Чтобы создать фишинговое письмо, я взял HTML-код настоящего сообщения от Microsoft, которое приходило мне на почту, а затем немного изменил его содержание.

В разделе Email Templates вставляем HTML-код и редактируем сообщение на вкладке HTML.

Для просмотра ссылки Войди или Зарегистрируйся
Не забываем поставить галочку Add Tracking Image, которая добавит трекер для отслеживания статистики по открытым письмам. Трекер выглядит как переменная {{.Tracker}} в коде сообщения. Кстати, об этих переменных стоит поговорить чуть подробнее.

При помощи переменных ты можешь менять содержимое сообщения в зависимости от пользователя, которому оно отправлено. Всего переменных десять, нам в первую очередь пригодятся {{.FirstName}}, {{.LastName}} и {{.Email}}, которые подставляют имя, фамилию и адрес почты из настроек групп пользователей. Благодаря им письма не придется персонализировать вручную.

Переменная {{.URL}} подставляет сгенерированную фишинговую ссылку в сообщение. Например, я подставил ссылку через переменную в кнопку «Подтвердить». Про остальные переменные можно прочитать в Для просмотра ссылки Войди или Зарегистрируйся.

Также прописываем заголовок и отправителя сообщения, который будет указан, когда письмо дойдет. Я просто скопировал отправителя из официального сообщения Microsoft, но изменил домен на свой, добавив слово microsoft поддоменом третьего уровня. В итоге мое сообщение будет отправлено от имени «Служба технической поддержки учетных записей Microsoft noreply@microsoft.webaccount.site».

Ниже — фишинговое письмо, которое у меня получилось. Gophish будет подставлять почту пользователя вместо переменной {{.Email}}.

Для просмотра ссылки Войди или Зарегистрируйся
Письмо, как видишь, условное и на практике потребовало бы доработки.

Третий компонент — это профиль отправки, тот, ради которого мы настраивали почтовый сервер и записи DNS. Здесь мы указываем SMTP-ретранслятор, с помощью которого будет происходить рассылка. Открываем вкладку Sending Profile, пишем название профиля, указываем почту отправителя и, наконец, пишем адрес и порт SMTP-ретранслятора. Так как он находится на том же хосте, где мы запустили Gophish, вводим localhost:25 (порт SMTP указывать обязательно). Также не забудь поставить галочку Ignore Certificate Errors.

Для просмотра ссылки Войди или Зарегистрируйся
В этом же окне есть кнопка для отправки тестового письма, обязательно проверяй работоспособность SMTP-ретранслятора перед проведением кампании.

Для просмотра ссылки Войди или Зарегистрируйся
На этом настройка компонентов Gophish закончена, поэтому сворачиваем браузер и приступаем к созданию фишинговых ресурсов Evilginx.

Cоздание фишинговых ресурсов Evilginx​

Первое, с чем нужно ознакомиться, — фишлеты Evilginx. Это самая основа, с их помощью и обходится 2FA. Фишлеты — это конфигурационные файлы YAML, которые определяют, какие домены и поддомены проксировать, подменять, какие аутентификационные данные перехватывать и что с ними делать. В общем, правильно настроенный фишлет определяет технический успех фишинговой атаки. Для каждого веб‑ресурса пишется свой фишлет, однако каждый фишлет — это шаблон.

Я не буду подробно описывать, как работают фишлеты или как их создавать, об этом поговорим в другой раз. Пока же можешь обратиться к Для просмотра ссылки Войди или Зарегистрируйся. Самое главное — не покупай фишлеты в «Телеграме», на форумах и тому подобных ресурсах!


Настраиваем фишлет​

Целевым веб‑ресурсом я выбрал Outlook, фишлет к которому уже написан и опубликован в Для просмотра ссылки Войди или Зарегистрируйся. Скачиваем его и перемещаем в директорию ~/evilginx/phishlets.

Запускаем Evilginx с фишлетом:

sudo ./evilginx -p phishlets/
И начинаем настраивать фишинговые компоненты. Первым делом задаем URL, который пользователь будет видеть во время проксирования трафика. Нужно придумать такое имя хоста, которое не будет вызывать подозрений. Я добавил два поддомена к своему имени хоста:

microsoft.outlook.webaccount.site
Так как поддомены необязательно должны быть уникальными, мы используем это свойство для добавления известных и авторитетных имен. Указываем имя хоста и активируем фишлет:

Код:
phishlets hostname Outlook microsoft.outlook.webaccount.site
phishlets enable Outlook
В этот момент Evilginx будет автоматически получать сертификаты SSL/TLS для всех доменов и поддоменов, которые используются в атаке, чтобы фишинговый URL, да и соединение в принципе работали по протоколу HTTPS.

Для просмотра ссылки Войди или Зарегистрируйся
Через 30 секунд успешно получаем все сертификаты SSL/TLS и двигаемся дальше.

Готовим приманки​

Следующие в очереди — приманки, они же Lures в официальной документации. По факту это просто сгенерированные фишинговые ссылки, которые мы отправляем. Настройка очень проста, сначала создаем приманку для фишлета Outlook:

lures create Outlook
Консоль выведет числовой идентификатор приманки, он нам еще пригодится. Приводим ссылку к такому виду:

Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся
Копируем сгенерированную фишинговую ссылку и переходим в Gophish.

Запускаем фишинговую атаку​

Теперь откроем вкладку Campaigns и соберем все воедино. Пишем название кампании и выбираем по заданным именам: шаблон электронного письма, профиль отправки и группу пользователей.

Для просмотра ссылки Войди или Зарегистрируйся
Выбрав все компоненты, вставляем сгенерированную ранее ссылку в поле Evilginx Lure URL и нажимаем на кнопку Launch Campaign.

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

Для просмотра ссылки Войди или Зарегистрируйся
Проверяем почту и видим, что фишинговое сообщение дошло.

Для просмотра ссылки Войди или Зарегистрируйся
Нажав на профиль отправителя, замечаем, что тут указано все то, что мы прописали в шаблоне электронного сообщения Gophish. Невнимательный пользователь, скорее всего, даже не будет проверять, но если кто‑то и проверит, то есть вероятность, что слово microsoft в названии домена убаюкает подозрительность.

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

Для просмотра ссылки Войди или Зарегистрируйся
Вернемся к нашему фишинговому письму. Когда мы наводим курсор на кнопку «Подтвердить», в нижнем углу браузера видим ссылку, по которой мы перейдем после нажатия.

Для просмотра ссылки Войди или Зарегистрируйся
Имитируя действия потенциальной жертвы, переходим по фишинговой ссылке и ждем, пока браузер проверит, безопасная ли это страница.

Для просмотра ссылки Войди или Зарегистрируйся
Нас перенаправляет на настоящую страницу авторизации Microsoft, но при этом весь трафик проходит через наш обратный прокси‑сервер вот с таким доменом:

live.microsoft.outlook.webaccount.site
Для просмотра ссылки Войди или Зарегистрируйся
Вводим логин и пароль, после чего получаем запрос на подтверждение второго фактора аутентификации в приложении Microsoft Authenticator.

Для просмотра ссылки Войди или Зарегистрируйся
Продолжая имитацию действий потенциальной жертвы, подтверждаем вход в мобильном приложении и ждем, пока пройдет аутентификация.

Для просмотра ссылки Войди или Зарегистрируйся
И в итоге входим в учетную запись. При этом соединение все еще происходит через прокси‑сервер потенциального злоумышленника.

Для просмотра ссылки Войди или Зарегистрируйся
Открываем консоль Evilginx и видим логи успешного перехвата.

Для просмотра ссылки Войди или Зарегистрируйся
Вводим команду

sessions [ID сессии]
И получаем информацию, которая содержит время перехвата, IP-адрес жертвы, User agent, логин, пароль и cookie сеанса.

Для просмотра ссылки Войди или Зарегистрируйся
Логин и пароль — это, конечно, важная и критическая информация, но смысл этой атаки — перехватить токен сеанса в виде файла cookie. Чтобы проэксплуатировать перехват сессии, копируем всю строку cookies и открываем браузер.

Устанавливаем расширение Cookie-Editor, которое позволяет манипулировать куками, и открываем легитимную страницу входа в Microsoft Outlook. Перед тем как подменять cookie, удаляем те, что назначены браузером. Для этого просто нажимаем кнопку Delete All.

Для просмотра ссылки Войди или Зарегистрируйся
Затем нажимаем кнопку Import и вставляем сплошную строку из перехваченной сессии в Evilginx. Теперь еще раз нажимаем на Import и обновляем страницу.

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

Для просмотра ссылки Войди или Зарегистрируйся
Раздобыв учетку Microsoft в любом сервисе, мы также получаем доступ к основным настройкам и ко всем сервисам этой учетной записи. Это может быть довольно критично, особенно учитывая, сколько конфиденциальной информации может храниться в OneDrive или в документах Word.

Для просмотра ссылки Войди или Зарегистрируйся

Подводим итоги​

Задача Gophish заключается не только в автоматизации рассылок, но и в ведении статистики, например для подготовки отчетов о результатах атаки, которые пригодятся пентестерам. После завершения кампании мы получаем статистику о том, кто открыл письмо, кто перешел по ссылке, кто попался на фишинг и ввел креды или же что‑то заподозрил и пожаловался на письмо.

Для просмотра ссылки Войди или Зарегистрируйся
На этом наша фишинговая кампания завершена. Как видим, для проведения этой атаки нам потребовались только базовые технические знания и навыки, а также небольшое финансовое вложение в аренду сервера и домена.

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

Ну а лучшее средство защиты — это банальная внимательность, которой пользователям зачастую не хватает.
 
Activity
So far there's no one here
Сверху Снизу