Как стать автором
Обновить

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

Время на прочтение3 мин
Количество просмотров20K

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

автор обложки: 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_hd12f0j
... 

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

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

<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-адресу были безуспешны.

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

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 59: ↑57 и ↓2+55
Комментарии37

Публикации

Истории

Работа

Ближайшие события