Ставим палки в колеса злоумышленникам
Как то вечером моя подруга переслала мне скриншот уведомления из вконтакта с вопросом «Меня пытаются взломать?». Да, это было сообщение от лица администрации с просьбой подтвердить учетные данные и с ссылкой на фишинговую страницу. Дело было вечером, делать было нечего. А я придумал себе новое развлечение…
автор обложки: https://vk.com/club151912771
Мне пришла в голову идея немного осложнить жизнь злоумышленникам, засорив им ложными учетными данными базу (или куда там они их кладут). Первое, что я сделал — сгенерировал файлы с логинами и паролями, более или менее похожими на настоящие:
$ cat ./LOGINS.txt
+79089672515
89025062502
89044251958
89023782243
+79041365572
+79227628906
89772794819
$ cat ./PASSWORDS.txt
20ddхfgk2d19kf
лал11Ёрyлфp
EMTk99хkd19kf
dgkgfАоmа5Ь
аhg9хhхk;
a600_hd12f0jg
Да, на самом деле у большей части пользователей в паролях присутствуют слова или даже целые выражения, а не случайный набор символов. И тем не менее, мне сложно представить скрипт, с помощью которого можно отличить случайный набор символов от чего-то похожего на пароль.
Ок, мусор у нас есть. Но как этот мусор отправить на фишинговый сайт? Открыв код страницы я нашел форму отправки:
Ага, тут используется POST-запрос с такими параметрами, как email (последнее время вместо email используется номер телефона) и password. Ничего неожиданного, будем отправлять наши данные curl’ом. На коленках я набросал следующий скрипт:
while true
do
# Берем исходные списки логинов и паролей, перемешиваем и кладем в другой файл
# Это позволит передавать их каждый раз в новом порядке
tail LOGINS.TXT | sort -R > logins.txt
tail PASSWORDS.txt | sort -R > passwords.txt
for password in $(cat passwords.txt) do
for login in $(cat logins.txt) do
curl -d "email=$login&pass=$password" -X POST http://mvkcomo...ir/index2.php
done
done
done
Однако после запуска скрипта я столкнулся с проблемой: curl сообщал о 403 ошибке. Но после обращений к гуглу и консультации с моим товарищем @Jho00, я выяснил: некоторые web-сервера смотрят на заголовки (client, referer), и если по заголовкам видят, что запрос пришел от скрипта, а не от пользователя — запрос отклоняется.
Тогда я добавил в заголовках firefox в качестве клиента, и адрес той же самой страницы в качестве реферера. Зачем то эта страничка создавала еще и куки, тогда я выдернул куки из своего браузера и также передал curl’ом. В итоге вызов curl’а получился таким:
curl \
--cookie "sc_is_visitor_unique=rx9692532.1625826968.8A8EF5E926DD4F1158782565371F53D8.1.1.1.1.1.1.1.1.1&__test=0519c1a3df7c6a27eb6bcecadb3fa821"\
-A "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0" -d "email=$login&pass=$password" -H 'Referer: http://mvkcomo.co6.ir/index2.php'\
-X POST http://mvkcomo...ir/index2.php
После этого сообщение о 403 пропало. А через 2 часа непрерывной работы скрипта я обнаружил, что сайт перестал работать: при попытке открыть ссылку открывалась страница хостинга доменных имен. А попытки достучаться по ip-адресу были безуспешны.
Да, данное деяние ни как не поможет бороться со злоумышленниками, однако при совершении его я получил немного удовольствия.