Хо­чешь узнать, как выг­лядит фишинг мирово­го мас­шта­ба изнутри? В этой статье мы про­ведем экскур­сию в закулисье одной из самых мас­штаб­ных фишин­говых опе­раций пос­ледне­го вре­мени. Покажем, как устро­ен этот биз­нес и кто сто­ит за нашумев­шим про­ектом Darcula. По дороге под­робно раз­берем инс­тру­мен­ты, которые при­меня­ли ата­кующие.

info

Это близ­кий к тек­сту перес­каз матери­ала Exposing Darcula: a rare look behind the scenes of a global Phishing-as-a-Service operation из бло­га ком­пании mnemonic. Авто­ры — Эрленд Лей­кнес и Хар­рисон Сэнд. Этот матери­ал дос­тупен без плат­ной под­писки.

Эта исто­рия началась в декаб­ре 2023 года, ког­да люди по все­му миру ста­ли получать сооб­щения о том, что их ждут посыл­ки на поч­те. Сооб­щения при­ходи­ли в виде SMS, iMessage или RCS-сооб­щений. Мы ста­ли сви­дете­лями нового метода мошен­ничес­тва, извес­тно­го как сми­шинг, или SMS-фишинг.

У таких сооб­щений есть общая чер­та: они выда­ют себя за бренд, которо­му мы доверя­ем, что­бы соз­дать прав­доподоб­ный кон­текст и выманить у нас лич­ные дан­ные, обма­ном зас­тавляя делить­ся информа­цией.

Не­кото­рые мошен­ничес­кие схе­мы заметить про­ще, чем дру­гие. Ошиб­ки в орфогра­фии, корявые перево­ды, стран­ные номера или ссыл­ки на тем­ные домены час­то их выда­ют. Но даже оче­вид­ные приз­наки лег­ко упус­тить в суете дня. Ког­да мно­гие люди одновре­мен­но ста­новят­ся мишенью, кто‑то из них может ока­зать­ся в удач­ных для мошен­ника усло­виях — нап­ример, дей­стви­тель­но ждет посыл­ку. И эта так­тика явно работа­ет. Если бы это не при­носи­ло выгоды, мошен­ники не ста­ли бы вкла­дывать столь­ко вре­мени, денег и уси­лий.

Фишинговое сообщение
Фи­шин­говое сооб­щение

На кар­тинке свер­ху — реаль­но получен­ное сооб­щение. Отпра­витель при­киды­вает­ся Нор­веж­ской поч­товой служ­бой, намека­ет, что дос­тавка на паузе, пока ты не накида­ешь «недос­тающие» детали адре­са. А если накида­ешь, то тебя поп­росят опла­тить оставшу­юся сум­му за дос­тавку. Конеч­но, быва­ют реаль­ные слу­чаи, ког­да прип­лачивать за меж­дународ­ные посыл­ки дей­стви­тель­но нуж­но, но это явно не один из них.

Па­ра минут гуг­линга, и мас­шта­бы этой опе­рации начали про­являть­ся. Мы нат­кну­лись на кучу пос­тов в соц­сетях и новос­тных ста­тей со скрин­шотами подоз­ритель­но похожих сооб­щений, которые получа­ли жер­твы по все­му миру на раз­ных язы­ках.

Лю­бой эксперт, будь он из полиции, бан­ка или кор­порации, посове­тует в этом слу­чае не кли­кать на ссыл­ку, уда­лить сооб­щение и жить даль­ше спо­кой­ной жизнью.

Но наш брат не таков, нами ведь дви­жет желание заг­лянуть под капот и выяс­нить, как на самом деле все устро­ено. Имен­но эта жаж­да зна­ний вку­пе с нашим опы­том в этич­ном хакерс­тве и безопас­ности при­ложе­ний под­тол­кну­ла нас нарушить все разум­ные советы: мы решили все же клик­нуть по ссыл­ке.

Все ока­залось более или менее как мы и думали. На нашем смар­тфо­не всплы­ла стра­нич­ка яко­бы поч­товой служ­бы, пред­лага­ющая нажать на кноп­ку и ввес­ти адрес. Пос­ле нес­коль­ких таких «оста­новок» нас поп­росили зап­латить неболь­шую сум­му, что под­твер­дило истинную цель мошен­ничес­тва — кра­жу нашей кре­дит­ки.

 

Взгляд под капот

 

Только мобилки

Фи­шин­говые сооб­щения, которые мы получи­ли, были нацеле­ны на мобиль­ные устрой­ства. Откры­вать их пред­полага­лось имен­но на смар­тфо­нах. Но из‑за того, что смар­тфо­ны не осо­бен­но годят­ся для про­веде­ния форен­зики, нам нуж­но было как‑то гля­нуть на эту фишин­говую стра­ницу на обыч­ном компь­юте­ре.

Ис­сле­дуя софт, мы нат­кну­лись на нес­коль­ко антикри­мина­лис­тичес­ких фун­кций. Пер­вая из них — огра­ниче­ние, из‑за которо­го ссыл­ки откры­вались толь­ко с телефо­нов, работа­ющих через сотовую сеть.

Та­кие при­колы час­то исполь­зуют­ся для того, что­бы защит­ные решения, не соот­ветс­тву­ющие этим кри­тери­ям, не мог­ли про­верить ссыл­ку на наличие вре­донос­ного содер­жимого. В ито­ге сооб­щения не помеча­ются как фишин­говые и зло­дей­ские сай­ты и домены не попада­ют в чер­ные спис­ки.

Итак, при перехо­де по ссыл­ке с компь­юте­ра мы стол­кну­лись с сооб­щени­ем «Не най­дено».

Фишинговая страница не найдена
Фи­шин­говая стра­ница не най­дена

Тог­да мы решили пус­тить в ход зна­мени­тый Burp. Он соз­дает про­межу­точ­ный прок­си‑сер­вер, который втис­кива­ется меж­ду тво­им бра­узе­ром и сер­вером, поз­воляя раз­гля­дывать и редак­тировать тра­фик, пока тот носит­ся туда‑сюда меж­ду сер­вером и бра­узе­ром. Что­бы наш зап­рос выг­лядел так, буд­то он идет с мобиль­ного, мы под­менили заголо­вок User-Agent тем, что обыч­но переда­ется при откры­тии стра­ницы с телефо­на:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36

Но сме­нить заголо­вок User-Agent ока­залось недос­таточ­но — мы все рав­но получа­ли ошиб­ку «404 Not Found».

Единс­твен­ное раз­личие меж­ду зап­росом, который мы посыла­ли с телефо­на, и тем, что отправ­ляли с компь­юте­ра, было в исходном IP-адре­се. Видимо, фишин­говый софт был нас­тро­ен так, что­бы показы­вать кон­тент толь­ко тем, кто заходит через сотовую сеть. Мы раз­дали себе интернет с телефо­на, что наконец поз­волило заг­рузить фишин­говую стра­ницу на дес­кто­пе и с нас­тоящи­ми инс­тру­мен­тами и коп­нуть этот софт глуб­же.

 

Шифрование

Ког­да мы всё нас­тро­или и запус­тили, сра­зу ста­ло вид­но, что зло­умыш­ленни­ки исполь­зуют популяр­ную биб­лиоте­ку обме­на сооб­щени­ями под наз­вани­ем Socket.IO. Мы так­же смог­ли под­гля­деть переда­ваемые сооб­щения. Вот при­мер:

{
"msg": {
"type": "824d02e7cf6ec64a44710b06ef8cfa0e",
"data": "U2FsdGVkX19JWH3V+KnWIdPjzlF/wBhLj4W/rYovdJmHineTSuwIxfkSQyLycrSfTyBEAai8R6yrLQnIcd3FtjqDoXPyh9j28hXEyaYAjyo4ZuTx0jaaJE/CdV0F/[snipped]"
},
"user": [],
"room": [
"21232f297a57a5a743894a0e4a801fc3"
]
}

По набору сим­волов и дли­не эле­мен­тов пос­лания мы решили, что type и room — это MD5-хеши, а data выг­лядит как стро­ка, закоди­рован­ная в Base64. Хеши обсу­дим чуть поз­же.

Пос­ле декоди­рова­ния эле­мен­та дан­ных строч­ка Salted_ и пос­леду­ющий нераз­борчи­вый текст дали понять, что тут явно замеша­но шиф­рование.

Посоленный текст
По­солен­ный текст

В мире безопас­ности при­ложе­ний это называ­ется кли­ент­ским шиф­ровани­ем. И чаще все­го это вер­ный приз­нак того, что кто‑то дела­ет что‑то подоз­ритель­ное.

В боль­шинс­тве слу­чаев шиф­ровать сооб­щения подоб­ным обра­зом не име­ет смыс­ла. Это тре­бует хра­нить клю­чи шиф­рования на кли­енте, а канал свя­зи меж­ду кли­ентом и сер­вером и так защищен на сетевом уров­не через HTTPS. Но тут ситу­ация иная: при­ложе­ние пыта­ется защитить­ся от нас — иссле­дова­телей безопас­ности, воору­жен­ных прок­си типа «человек посере­дине».

Эта допол­нитель­ная шиф­ровка выс­тупа­ет как слой обфуска­ции, что­бы скрыть внут­ренние механиз­мы фишин­гового про­токо­ла. Но пос­коль­ку у нас был пол­ный кон­троль над кли­ентом, мы мог­ли прос­матри­вать сооб­щения до их шиф­ровки, и это поз­волило извлечь клю­чи шиф­рования.

Мы покопа­лись в JavaScript-коде на сто­роне кли­ента и вско­ре нат­кну­лись на фун­кции шиф­рования и дешиф­рования, а так­же на завет­ные клю­чи.

Функция шифрования на фишинговой страничке
Фун­кция шиф­рования на фишин­говой стра­нич­ке

Мы замети­ли, что вирусо­писа­тели исполь­зовали биб­лиоте­ку Node.js под наз­вани­ем crypto-js и алго­ритм Rabbit для шиф­рования эле­мен­та data в сооб­щени­ях. Мы написа­ли нес­коль­ко прос­тых строк на JavaScript, которые поз­волили нам рас­шифро­вывать содер­жимое сооб­щений.

Расшифровка фишинговой страницы
Рас­шифров­ка фишин­говой стра­ницы

Пос­ле это­го быс­тро­го тес­та мы написа­ли код, который поз­волил нам в режиме реаль­ного вре­мени видеть и изме­нять тек­сто­вую вер­сию сооб­щений в Burp. Наш код на JavaScript так­же показал, что ранее встре­чен­ные парамет­ры type и room были MD5-хешами от sync-data и admin. Теперь у нас появи­лась воз­можность наб­людать за тем, чем занима­ется при­ложе­ние, и при необ­ходимос­ти пра­вить сооб­щения. Вот при­мер такого рас­шифро­ван­ного сооб­щения.

{
"msg": {
"type": "sync-data",
"data": "{"id":1,"domain":"post.lol","ip":"192.168.100.169","ua":"Mozilla/5.0 (iPhone; CPU iPhone OS 5\1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B176 Safari/7534.48.3","data":{},"created\at":"2024-08-30T10:07:20.907Z","updated\at":"2024-08-30T10:07:20.907Z"}
},
"user": [],
"room": [
"admin"
]
}

По­хоже, это что‑то вро­де чата: бра­узер сли­вает дан­ные жер­твы в «ком­нату» с помет­кой admin.

Ве­роят­но, раз­ные ком­понен­ты при­ложе­ния могут под­клю­чать­ся к «ком­натам», что­бы получать сооб­щения. Нап­ример, если у мошен­ника есть панель со спис­ком жертв, воз­можно, она тоже дос­тупна из ком­наты адми­нов.

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

Это сооб­щение под­твер­дило наши ран­ние догад­ки. Наш бра­узер, «жер­тва», под­клю­чал­ся в пус­тую или стан­дар­тную ком­нату, но дан­ные, которые мы вво­дили, уле­тали в ком­нату «адми­на». Нель­зя ли как‑то проб­рать­ся в нее?

То, что мы уви­дели, сде­лав это, повер­гло нас в шок. По экра­ну летел поток имен, адре­сов и кре­дит­ных карт — в реаль­ном вре­мени мы наб­людали, как сот­ни жертв попада­ли под фишин­говую ата­ку. Всё, что они вво­дили, сим­вол за сим­волом, отоб­ражалось на нашем экра­не.

То, что начина­лось как занима­тель­ный побоч­ный про­ект, вдруг вырос­ло в неч­то серь­езное.

 

Группа Darcula

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

На экра­не про­мель­кну­ло сооб­щение, похожее на при­веден­ное выше. Оно касалось ошиб­ки в ком­понен­те базы дан­ных, и в нем фигури­рова­ло наз­вание базы: Darcula.

В тот момент это сло­во для нас ничего не зна­чило — прос­то стро­ка, похожая на ник­нейм. Google тоже не силь­но помог — ока­залось, что это еще и наз­вание поп­совой цве­товой схе­мы для тек­сто­вых редак­торов, которая прос­то зах­ватила все резуль­таты поис­ка.

При­мер­но в это вре­мя мес­сен­джер Telegram стал мишенью для кри­тики как тихая гавань для кри­миналь­ных сетей. И вот там мы быс­тро нат­кну­лись на юзе­ра и груп­пу под наз­вани­ем Darcula, в которой адми­нис­тра­тором был как раз этот самый Darcula.

Про­мотав фот­ки, выложен­ные в груп­пе, мы поняли, что копа­ем в вер­ном нап­равле­нии.

Тут мы нат­кну­лись на фотог­рафии поль­зовате­лей, которые не стес­нялись делить­ся кад­рами сво­их махина­ций. Залежи телефо­нов, SIM-карт, модемов, сер­веров и стой­ки устрой­ств, которые они исполь­зуют, что­бы засыпать жертв спа­мом.

Опе­рато­ры показа­ли телефо­ны с под­клю­чен­ными кар­точка­ми в Apple Pay и пла­теж­ные тер­миналы.

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

Чле­ны груп­пиров­ки не толь­ко зараба­тыва­ли день­ги, но и не стес­няясь тра­тили их.

В Telegram-груп­пе мы нат­кну­лись на зак­реплен­ное сооб­щение с инс­трук­цией по уста­нов­ке самого фишин­гового соф­та.

Мы взя­ли запас­ной ноут и ста­ли сле­довать инс­трук­циям. Бук­валь­но через нес­коль­ко минут у нас уже была уста­нов­лена копия того самого фишин­гового ПО, которое исполь­зовали про­тив нас: Magic Cat.

 

Активируем котоколдунство

За­пус­тить соф­тину ока­залось про­ще прос­того. Копиру­ешь одну‑единс­твен­ную коман­ду, встав­ляешь ее — и вуаля, фишин­говое ПО поч­ти готово к исполь­зованию. Если бы толь­ко не одно но — уста­нов­ка‑то у нас без лицен­зии.

На скрин­шоте ниже изоб­ражена админ­ская панель соф­та, который теперь известен нам как Magic Cat. Это скры­тая панель опе­рато­ра, которую мошен­ник исполь­зует для прос­мотра всех укра­ден­ных дан­ных кре­дит­ных карт и вза­имо­дей­ствия с жер­тва­ми, что­бы при необ­ходимос­ти зап­рашивать допол­нитель­ные PIN-коды.

Но оста­ется проб­лема с лицен­зией, на что скром­но намека­ет крас­ное сооб­щение вни­зу сле­ва на панели управле­ния. При­дет­ся спер­ва раз­добыть клю­чик, что­бы мож­но было про­тес­тировать софт и запус­тить фишин­говую кам­панию.

Нам захоте­лось узнать, на что вооб­ще спо­соб­но это ПО, и мы начали копать­ся в коде на бэкен­де. Неуди­витель­но, что тут нас ждал оче­ред­ной квест. Разуме­ется, код был обфусци­рован до неуз­нава­емос­ти.

Это был не пер­вый слу­чай, ког­да мы стал­кивались с запутан­ным кодом на Node.js. Мы уже зна­комы с откры­тым инс­тру­мен­том с пря­моли­ней­ным наз­вани­ем JavaScript Obfuscator, который берет обыч­ный код и прев­раща­ет его в неч­то, похожее на скрин­шот выше, — нечита­бель­ный хлам. Но есть и дру­гой опен­сор­сный инс­тру­мент под наз­вани­ем synchrony, который раз­бира­ет этот обфусци­рован­ный кош­мар обратно. Получа­ется более‑менее читабель­ный код, прав­да, без ком­мента­риев и исходных наз­ваний фун­кций и перемен­ных.

Имея на руках чита­емый код бэкен­да, мы смог­ли понять, как работа­ют раз­ные аспекты это­го соф­та. К нашему удив­лению, мы обна­ружи­ли фун­кции, свя­зан­ные с генера­цией акти­ваци­онных клю­чей. Это не прос­то код для исполь­зования какого‑то клю­ча, в каж­дой копии фишин­гового соф­та сидел пол­ноцен­ный сер­вер акти­вации, который мог генери­ровать новые клю­чи. Раз­ве это не нас­тоящая наход­ка для иссле­дова­теля?

Ес­ли сер­вер нас­тро­ен на опре­делен­ное имя хос­та, то откры­вает­ся тай­ное меню с фичей для генера­ции клю­чей акти­вации. И это еще не всё! Он может акти­виро­вать дру­гие копии Magic Cat.

Что­бы акти­виро­вать прог­рамму, нуж­но сге­нери­ровать новую лицен­зию, добавить к ней ком­мент, задать дату окон­чания сро­ка дей­ствия и огра­ниче­ние на количес­тво фишин­говых шаб­лонов, которые мож­но ска­чать по этой лицен­зии. По сути, все это очень напоми­нает типич­ный кор­поратив­ный софт для управле­ния лицен­зиями. Magic Cat еще и фик­сировал IP-адре­са всех фишин­говых сер­веров, отку­да при­лета­ли зап­росы на акти­вацию.

У нас все было под кон­тро­лем в лабора­тор­ных усло­виях, так что мы смог­ли обма­нуть наше копирай­тное ПО, зас­тавив его думать, что мы — нас­тоящий сер­вер акти­вации. Так мы смог­ли акти­виро­вать нашу копию Magic Cat, не пот­ратив ни копей­ки на лицен­зию.

 

Платформа Magic Cat

Те­перь, ког­да софт работа­ет на нашем ноут­буке, да еще и с дос­тупом к исходни­кам, мы можем заныр­нуть с головой в иссле­дова­ния и пос­мотреть, как работа­ет Magic Cat со сто­роны фишин­говых опе­рато­ров.

В про­цес­се изу­чения прог­раммы мы нат­кну­лись на мно­жес­тво инте­рес­ных находок. Воз­можнос­тей — огромное количес­тво, и все явно задума­но так, что­бы любой покупа­тель, даже без тех­ничес­кой под­готов­ки, мог запус­тить собс­твен­ную фишин­говую кам­панию.

На тот момент сис­тема «из короб­ки» вклю­чала воз­можность под­делывать пару сотен брен­дов в раз­ных стра­нах мира. По пос­ледним дан­ным, обновле­ния плат­формы сде­лали соз­дание кас­томных шаб­лонов еще удоб­нее.

Magic Cat переда­ет информа­цию, которую жер­твы вво­дят на фишин­говых сай­тах, бук­валь­но в режиме реаль­ного вре­мени. Опе­рато­ры могут отсле­живать каж­дую бук­ву, которую вво­дит жер­тва. Они могут в любой момент зап­росить PIN-коды, лег­ко под­клю­чать SMS-шлю­зы и исполь­зовать мно­жес­тво дру­гих фун­кций.

 

Лазейка?

Ко­паясь в коде нашего экзем­пля­ра фишин­гового ПО, мы замети­ли стран­ную логику, которая про­веря­ет, пра­виль­ный ли передан набор парамет­ров в HTTP-зап­росе. Если парамет­ры пра­виль­ные, сис­тема про­пус­кает про­вер­ку авто­риза­ции и мож­но выпол­нять зап­росы, не логинясь как фишин­говый опе­ратор.

Та­кая фича у нас сра­зу выз­вала ассо­циации с бэк­дором, но может, это прос­то раз­работ­чик накося­чил? Так ли это, мы до сих пор не выяс­нили. Воз­можно, это дей­стви­тель­но баг — нап­ример, пло­хой дизайн сре­ды раз­работ­ки. Ну а если ты готов надеть чер­ную шля­пу и вклю­чить паранойю на пол­ную катуш­ку, то это может быть очень хит­рый бэк­дор с прав­доподоб­ным оправда­нием — на слу­чай, если кто‑нибудь его все‑таки рас­копа­ет в будущем.

 

К новым вершинам!

На­ше иссле­дова­ние пос­тепен­но начало показы­вать, нас­коль­ко круп­ной и про­фес­сиональ­ной была эта опе­рация. У плат­формы были регуляр­ные цик­лы выпус­ка ПО, анон­сы новых фич, руководс­тва по уста­нов­ке и под­дер­жка, а так­же пол­ный учет всех, кто покупал и исполь­зовал софт.

В янва­ре 2024 года мы соб­рали пол­ный отчет, где под­робно рас­писали все наши наход­ки, и подели­лись им с нес­коль­кими пра­воох­ранитель­ными орга­нами.

С самого начала про­екта мы ста­рались сос­редото­чить­ся на общей кар­тине. Что­бы зачис­тить поле от сми­шин­га, фишин­га и дру­гих раз­водов, надо под­клю­чать всех: бан­ки, мобиль­ных опе­рато­ров, IT-гиган­тов и полицию. Имен­но поэто­му мы решили свя­зать­ся с NRK, Нор­веж­ской телера­диоком­пани­ей. Вдруг там кого‑то заин­тересу­ет, что мы тут накопа­ли?

Мы подели­лись все­ми нашими наход­ками на тот момент и про­дол­жили иссле­дова­ние. Но глав­ный воп­рос остался без отве­та. Кто такой Дар­кула?

 

По ту сторону

Darcula дер­жался в тени. Пока дру­гие поль­зовате­ли хвас­тались сво­ей рос­кошной жизнью в паб­лике Telegram, он в основном пос­тил скуч­ные тех­ничес­кие новос­ти про Magic Cat и не оставлял нам поч­ти никаких зацепок. Мы даже не были уве­рены, кто или что такое Darcula — человек или целая груп­па. Мы про­дол­жали копать­ся, про­сеивая все дос­тупные дан­ные о соф­твер­ной эко­сис­теме.

По­пасть в тупик в рас­сле­дова­нии — клас­сика жан­ра. Но вот уда­ча: мы нат­кну­лись на IP-адрес, который, похоже, был свя­зан с адми­нис­тра­тив­ными фун­кци­ями. Не исклю­чено, что этот айпиш­ник мог при­вес­ти к тем, кто сто­ит за соф­том Magic Cat.

IP при­над­лежал вир­туаль­ной машине в обла­ке Alibaba, веро­ятно, каким‑то видом VPN. Сам по себе этот факт мало что озна­чал. Это мог­ло быть самодель­ное тво­рение Darcula или обще­дос­тупный сер­вис, на котором сидят сот­ни или даже тысячи юзе­ров. В любом слу­чае дру­гой зацеп­ки у нас не было.

Мы решили выяс­нить, для чего исполь­зовал­ся этот IP-адрес в прош­лом. У нас есть собс­твен­ный сер­вис Passive DNS, который ведет что‑то вро­де исто­ричес­кого архи­ва, где хра­нит­ся информа­ция о том, какие IP-адре­са с какими домена­ми были свя­заны. Бла­года­ря этим записям мы обна­ружи­ли, что чуть боль­ше года назад, в декаб­ре 2022-го, этот IP был при­вязан к кон­крет­ному домену. Коп­нув глуб­же исто­ричес­кие дан­ные DNS, мы выяс­нили, что домен был свя­зан с поль­зовате­лем GitHub.

IP-адре­са час­то меня­ют вла­дель­цев. Если вир­туаль­ная машина в Alibaba Cloud уда­лялась, ее IP мог лег­ко перей­ти к дру­гому кли­енту. Но нас это не оста­нови­ло — вдруг повезет? К тому же репози­тории на GitHub содер­жали софт, соз­данный с исполь­зовани­ем тех же фрей­мвор­ков, что и Magic Cat. Это намека­ет на потен­циаль­ную связь.

В исто­рии ком­митов мы наш­ли поч­ту на Gmail. Это ста­ло зацеп­кой для даль­нейше­го поис­ка информа­ции, которая либо опро­вер­гнет, либо под­твер­дит теорию о том, что это дей­стви­тель­но Дар­кула.

В ходе иссле­дова­ния мы исполь­зовали бес­плат­ный вари­ант сер­виса OSINT Industries. Он помога­ет узнать, какие акка­унты при­вяза­ны к опре­делен­ному адре­су элек­трон­ной поч­ты или номеру телефо­на. Так­же он показы­вает всю дос­тупную пуб­личную информа­цию об акка­унте.

Пред­ставь, что ты начина­ешь сбра­сывать пароль на сай­те, а сайт тебе говорит: вве­ди номер телефо­на, закан­чива­ющий­ся на XX, что­бы мы выс­лали код. Если ты про­дела­ешь это на куче сай­тов, смо­жешь выяс­нить, на каких из них исполь­зовалась поч­та, и даже можешь час­тично рас­шифро­вать номер телефо­на. В OSINT Industries уже авто­мати­зиро­вали этот про­цесс и при­меня­ют в про­мыш­ленных мас­шта­бах.

Про­бив акка­унт на Gmail через OSINT Industries, мы наш­ли кое‑что инте­рес­ное. Телега Дар­кулы была при­вяза­на к аме­рикан­ско­му номеру, который мы счи­тали одно­разо­вым. Номер закан­чивал­ся на 89. И тут выяс­няет­ся, что этот же Gmail свя­зан с Apple ID, где номер тоже кон­чает­ся на 89.

Бы­ла ли это прос­то слу­чай­ность? Самый быс­трый спо­соб раз­веять или, наобо­рот, укре­пить подоз­рения, что Дар­кула и наш поль­зователь GitHub — одно и то же лицо, — это выяс­нить, не про­дол­жает ли наш герой исполь­зовать тот же сер­вер для VPN. Мы решили отпра­вить на свя­зан­ный Gmail-адрес пись­мо со ссыл­кой‑заману­хой. Если кто‑то клик­нет, у нас на руках будет IP-адрес.

И на ссыл­ку клик­нули!

Это под­твер­дило, что email по‑преж­нему акти­вен, а кто‑то, име­ющий дос­туп к это­му акка­унту, клик­нул на ссыл­ку. IP-адрес сов­пал с тем, который мы видели в Magic Cat. Все боль­ше улик ука­зыва­ет на связь с Дар­кулой.

 

Еще глубже в кроличью нору

По­иск от OSINT Industries в чис­ле про­чего выдал нам час­тичный китай­ский номер телефо­на, свя­зан­ный с акка­унтом Gmail.

Для получе­ния нового китай­ско­го телефон­ного номера тре­бует­ся удос­товере­ние лич­ности. Это зна­чит, что если мы суме­ем раз­добыть пол­ный китай­ский номер Дар­кулы, то у нас появит­ся кру­тая зацеп­ка, которая выведет нас на его нас­тоящую лич­ность.

С доменом, который мы наш­ли ранее, свя­зан еще один адрес элек­трон­ной поч­ты. На этот раз — акка­унт QQ, популяр­ного китай­ско­го мес­сен­дже­ра и поч­тового сер­виса. Мы сопос­тавили всю информа­цию об акка­унте на Gmail с дан­ными о QQ и рас­кры­ли поч­ти весь телефон­ный номер, за исклю­чени­ем пос­ледних трех цифр.

За­нят­но, что нет еди­ного стан­дарта, какие имен­но циф­ры скры­вать, ког­да сайт показы­вает лишь часть номера при вос­ста­нов­лении акка­унта. Если раз­ные сай­ты мас­киру­ют раз­ные циф­ры, ты можешь наложить их резуль­таты друг на дру­га и узнать зна­читель­ную часть номера.

Три про­пущен­ных циф­ры оста­вили нам 1000 воз­можных телефон­ных номеров. Мы хотели искать их через OSINT Industries, но это мог­ло бы вле­теть в копе­ечку. Вмес­то это­го мы решили изу­чить базы дан­ных уте­чек информа­ции на все воз­можные номера, а уже най­ден­ные резуль­таты прог­нать через OSINT Industries.

Мы подума­ли вот о чем: не у всех телефон­ных номеров есть след в сети, и шан­сы боль­ше у тех, что всплы­вали в утеч­ках пуб­личных баз дан­ных.

Наш под­ход, похоже, оку­пил­ся: мы наш­ли номер телефо­на, свя­зан­ный с акка­унтом в Instagram — с таким же име­нем поль­зовате­ля, как в Gmail, и той же ава­тар­кой.

Те­перь, ког­да у нас есть кан­дидат на номер телефо­на, мы решили покопать­ся в исто­ричес­ких записях WHOIS (это такие пуб­личные регис­тра­торы доменов) для сай­тов, которые мог­ли быть зарегис­три­рова­ны с этим номером. И сно­ва успех: в записи было пол­ное имя, номер телефо­на и город.

Мы уже встре­чали это имя в Telegram. Дар­кула завали­вал сеть ворохом вор­дов­ских фай­лов со вся­кими инс­трук­циями по уста­нов­ке и исполь­зованию Magic Cat. В метадан­ных докумен­тов зна­чилось то же имя.

 

История продолжается

Ког­да мы начали копать­ся в этом фишинг‑ките, нас под­стег­нуло то, что информа­ции о сов­ремен­ных фишин­говых кам­пани­ях поч­ти не было.

Мы решили выяс­нить, кто сто­ит за этой схе­мой и как она вооб­ще работа­ет. В иде­але хотелось рас­копать дос­таточ­но информа­ции, что­бы выкатить статью и рас­ска­зать обо всех тон­костях.

На­ше иссле­дова­ние выяви­ло сот­ни тысяч жертв, тысячи лицен­зий, куп­ленных для исполь­зования Magic Cat, и раз­витую эко­сис­тему, которая поз­воля­ет неп­равомер­но исполь­зовать извес­тные наз­вания орга­низа­ций со все­го мира.

На этом эта­пе мы почувс­тво­вали, что наша роль в этой исто­рии под­ходит к кон­цу. Жур­налис­ты нор­веж­ско­го телека­нала NRK смог­ли взять наши наход­ки и бла­года­ря сво­ему рас­сле­дова­нию под­све­тить новые фак­ты. Они откры­ли дверь для дис­куссий о том, что мы можем сде­лать, что­бы пре­сечь прес­тупле­ния такого рода.

Работодатели Даркулы

Ре­пор­теры нор­веж­ско­го меди­аре­сур­са NRK в рам­ках собс­твен­ного рас­сле­дова­ния об­ратились к незави­симо­му иссле­дова­телю Ксавье Хуану, спе­циали­зиру­юще­муся на КНР.

По его дан­ным, най­ден­ный номер телефо­на зарегис­три­рован на Юйчэ­на С., 24-лет­него жителя китай­ской про­вин­ции Хэнань. Сопос­тавив всё, авто­ры рас­сле­дова­ния NRK уве­рен­но утвер­жда­ют: имен­но Юйчэн сто­ит за кибер­кри­миналь­ной лич­ностью Darcula. В их рас­поряже­нии — даже его фото с удос­товере­ния лич­ности.

В NRK решили свя­зать­ся с Дар­кулой нап­рямую и отпра­вили сооб­щение, обра­тив­шись к нему по нас­тояще­му име­ни. Ответ при­шел спус­тя нес­коль­ко дней — от челове­ка, пред­ста­вив­шегося как Лао Лю:

— Юйчэн работал у нас, но уво­лил­ся неделю назад.

Он отка­зал­ся называть ком­панию или ее юри­дичес­кий адрес, ссы­лаясь на кон­фиден­циаль­ность. Но NRK нас­таивает:

— Мы пишем о Magic Cat и хотим погово­рить с теми, кто его соз­давал.

— Нас мно­го, и я один из них, — отве­чает Лю. — Да, Юйчэн тоже учас­тво­вал. Он был самым успешным про­дав­цом. Мож­но ска­зать, один из осно­вате­лей. Хотя офи­циаль­но он прос­то получал зар­пла­ту.

На воп­рос, явля­ется ли Юйчэн авто­ром прог­раммы, Лю уклончи­во отве­чает: один из раз­работ­чиков. И добав­ляет:

— Мы не хотим его терять.

Ког­да NRK ука­зыва­ет на то, что Magic Cat активно исполь­зует­ся для фишин­га, Лю нас­таивает:

— Мы прос­то про­даем софт, который соз­дает сай­ты. Мы никого не под­талки­ваем к мошен­ничес­тву. Наша сфе­ра — кибер­безопас­ность и борь­ба с фро­дом.

— Но Darcula в Telegram помога­ет мошен­никам, исполь­зующим Magic Cat. У нас есть доказа­тель­ства.

— Мы не зна­ем, кто имен­но исполь­зует наш про­дукт, — отре­зает он. — Но да, я знаю, что его при­меня­ют в схе­мах. Мы всё зак­роем.

Жур­налис­ты NRK под­черки­вают, что на момент пуб­ликации Magic Cat не толь­ко не был зак­рыт, но выш­ла новая, более прод­винутая вер­сия, которая поз­воля­ет еще про­ще обма­нывать людей и воровать их день­ги.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии