Ставим палки в колеса злоумышленникам

от автора

Как то вечером моя подруга переслала мне скриншот уведомления из вконтакта с вопросом «Меня пытаются взломать?». Да, это было сообщение от лица администрации с просьбой подтвердить учетные данные и с ссылкой на фишинговую страницу. Дело было вечером, делать было нечего. А я придумал себе новое развлечение…

автор обложки: https://vk.com/club151912771
автор обложки: 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

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

Ок, мусор у нас есть. Но как этот мусор отправить на фишинговый сайт? Открыв код страницы я нашел форму отправки:

<form method="POST" action="" novalidate> <dl class="fi_row"> <dd> <input type="text" class="textfield" name="email" value="" placeholder="Телефон или email" /> </dd> </dl> <dl class="fi_row"> <dd> <input type="password" class="textfield" name="pass" placeholder="Пароль" /> </dd> </dl>  <div class="fi_row_new"> <input class="button wide_button" type="submit" name="submit" value="Войти" /> </div> </form> </div> </div>

Ага, тут используется 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-адресу были безуспешны.

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

ссылка на оригинал статьи https://habr.com/ru/post/568658/