paint-brush
Крипто алатка или крадец на податоци? Како Meme-Token-Hunter-Bot и неговите клонови крадат од корисниците на macOSод страна на@moonlock
3,591 читања
3,591 читања

Крипто алатка или крадец на податоци? Како Meme-Token-Hunter-Bot и неговите клонови крадат од корисниците на macOS

од страна на Moonlock (by MacPaw)7m2024/11/19
Read on Terminal Reader

Премногу долго; Да чита

Истражувачите на Checkmarx открија сомнителен пакет PyPI кој ги таргетира корисниците на macOS. Додека пакетот се претставуваше како бот за ловец на крипто токени, подлабокиот поглед откри дека содржи софистициран товар за крадење податоци. За да добиеме појасно разбирање за тоа како Meme-Token-Hunter-Bot го извршува својот напад, нацртавме дијаграм на текови што го прикажува секој чекор од процесот на малициозен софтвер.
featured image - Крипто алатка или крадец на податоци? Како Meme-Token-Hunter-Bot и неговите клонови крадат од корисниците на macOS
Moonlock (by MacPaw) HackerNoon profile picture
0-item

Автори: Ксенија Јамбурх, инженер за истражување на малициозен софтвер во Moonlock од MacPaw & Mykhailo Pazyniuk, инженер за истражување на малициозен софтвер во Moonlock од MacPaw


Софтверот со отворен код е основа за иновациите, но исто така ја отвора вратата за експлоатација. Неодамна, истражувачите на Checkmarx непокриен сомнителен пакет PyPI насочен кон корисниците на macOS, именуван како „Meme-Token-Hunter-Bot“. Додека пакетот се претставуваше како бот за ловец на крипто токени, подлабокиот поглед откри дека содржи софистициран товар за крадење податоци.


Во Moonlock, каде што се фокусираме на заштитата на корисниците на macOS, знаевме дека мораме да копаме подлабоко во ова. Како што ги разоткривавме слоевите, нашите наоди не доведоа до 10 дополнителни складишта - секое споделува речиси идентичен код, со суптилни варијации. Дали ова беше дело на автоматско распоредување? Координирана кампања? Еве како се одвиваше истрагата.

Првиот поглед на повеќе од само крипто-бот

Приказната започнува со „Meme-Token-Hunter-Bot“, навидум само уште една алатка за крипто ентузијасти. Неговиот README им наложува на корисниците да извршат main.py, датотека што обично ја иницира главната функционалност во повеќето апликации базирани на Python. Следејќи ги упатствата, навлеговме во main.py, само за да го најдеме повикувајќи помошна скрипта наречена base_helper.py. Оваа помошна датотека ќе биде камен-темелник на нашата истрага.

Мапирање на протокот на напад

За да се добие појасно разбирање за тоа како Meme-Token-Hunter-Bot го извршува својот напад, нацртавме дијаграм на текови што го прикажува секој чекор од процесот на малициозен софтвер, од првичното поставување до ексфилтрација на податоци. Оваа визуелна претстава ги открива слоевите на тактики за кодирање и скришум вградени во пакетот, нудејќи целосен приказ за тоа како функционира.

Нашиот дијаграм на текови започнува со main.py, почетната точка што повикува base_helper.py доколку пакетот открие дека работи на macOS.

Оваа датотека вклучува URL-адреси и имиња на датотеки кодирани со base64, складирани во променливи како encoded_base_key и encoded_licences.

Овие кодирани вредности ја кријат вистинската цел на скриптата, прикривајќи ја URL-то што се поврзува со https://coinsw[.]app/basec/ и презема дополнителни датотеки во директориумот ~/tmpcode/.

Откако ќе се преземат датотеките, следниот чекор во нашата дијаграм на текови го прикажува малициозниот софтвер како лансира датотека наречена MHTBot.py, пренасочувајќи го целиот видлив излез на /dev/null - чувајќи ги неговите активности скриени од корисниците и од алатките за следење.

MHTBot

Во дијаграмот на текови, MHTBot.py се издвојува како пресвртница во нападот. Користејќи го PyQT5, оваа датотека создава графички кориснички интерфејс кој имитира легитимен софтвер, прикажувајќи барање за лозинка и лента за напредок. Оваа маска е дизајнирана да ги уверува корисниците, додека, во реалноста, MHTBot.py скришум активира серија модули за грабање податоци во позадина.

MHTBot.py користи паметна техника за затајување: го отфрла првиот обид за лозинка како „небезбеден“, прифаќајќи го само вториот. Ова вградено доцнење најверојатно има за цел да избегне откривање на песочник, бидејќи многу околини на песокот имаат ограничено време на траење што може да заврши пред целосно да се активира малициозниот софтвер.

Како дел од својата тактика за затајување, Meme-Token-Hunter-Bot користи одложување пред да ги започне своите главни операции за крадење податоци. Ова одложување е исто така дизајнирано да избегне откривање од средини со песок, кои често имаат ограничено времетраење за автоматска анализа. Со одложување на извршувањето, малициозниот софтвер ги зголемува своите шанси да помине покрај овие првични скенирања и целосно да се активира на системот на вистински корисник.


Сликата од екранот подолу го нагласува конкретниот код одговорен за ова одложување. Функцијата start_one_py_main_after_delay иницира доцнење од 7000 милисекунди (7 секунди) користејќи QTimer.singleShot, по што ја повикува функцијата run_one_py_main. Оваа функција потоа го активира главниот модул за кражба на податоци, one.py, во посебна нишка.

Кражба на податоци

Како што MHTBot.py ја преминува контролата на one.py, започнуваат примарните операции за крадење податоци на малициозен софтвер. Следниве фрагменти од код откриваат како one.py користи различни функции и модули за собирање чувствителни информации од системот на корисникот. Ајде да го разложиме секој дел од кодот и неговата цел.


Во првиот фрагмент, ја гледаме функцијата main() што подготвува скриен директориум за привремено складирање на украдени податоци. Злонамерниот софтвер создава ~/.temp/premium/ како скриен директориум за складирање на датотеки без да го предупредува корисникот. По поставувањето на овој директориум, функцијата повикува различни рутини за собирање податоци од одредени апликации:


  • mediax(): Веројатно ги насочува Apple Notes за извлекување зачувани белешки.

  • copy_stickies() и copy_stickies_database(): Овие функции собираат податоци од апликацијата Stickies.

  • backup_ssh(): Ги собира SSH клучевите од системот.

  • copy_terminal_history(): Копира датотеки со историја на терминал.

  • copy_ssh_and_keychain(): Извлекува податоци од SSH и macOS Keychain.


Овие функции се посветени на собирање широк опсег на податоци од апликации, кориснички акредитиви и SSH конфигурации, со што one.py е сеопфатен собирач на податоци.

Функцијата search_files(), видена во следниот фрагмент од код, го проширува досегот на собирање податоци со таргетирање специфични типови датотеки. Оваа функција пребарува низ заеднички директориуми (Преземања, документи, работна површина и домашен директориум) за чувствителни датотеки со екстензии како .txt, .csv, .json, .config и .env. Овие типови датотеки често содржат поставки за конфигурација, клучеви API и други вредни информации.


Пронајдените датотеки потоа се копираат во привремен директориум, се компресираат и се подготвуваат за ексфилтрација. Овој чекор осигурува дека се собираат сите податоци што вообичаено се складираат во корисничките директориуми или датотеките за конфигурација на проектот.

Во следниот фрагмент, функциите copy_terminal_history() и copy_ssh_and_keychain() доловуваат критични кориснички податоци. Злонамерниот софтвер ја извлекува историјата на терминалите од датотеките .zprofile и .zsh_history, потенцијално откривајќи ги командите што ги извршил корисникот, вклучувајќи ги и сите чувствителни информации или ингеренциите напишани во терминалот.


Дополнително, до директориумот MacOS Keychain и SSH се пристапува за снимање на шифрирани акредитиви, лозинки и SSH клучеви зачувани во системот, обезбедувајќи им на напаѓачите акредитиви со висока вредност.

Еден од најзначајните делови на овој малициозен софтвер е неговото таргетирање на крипто-паричници. Функцијата zip_additional_wallets() специјално бара директориуми поврзани со популарни паричници за криптовалути. Злонамерниот софтвер систематски бара датотеки со паричник што припаѓаат на Bitcoin, Electrum, Coinomi, Exodus и други големи крипто-паричници. Откако ќе се идентификуваат, овие директориуми со паричник се спакувани и складирани во привремениот директориум, подготвени за ексфилтрација.

Злонамерниот софтвер вклучува и специфични функции за кражба на податоци на Telegram. Функциите backup_telegram() и backup_tdata() бараат директориуми со податоци на Telegram, обидувајќи се да пристапат до пораките, контактите и медиумите складирани во апликацијата. Со копирање на овие датотеки, малициозен софтвер може да им дозволи на напаѓачите да ја реконструираат историјата на комуникациите и медиумите на Telegram на корисникот.

Ексфилтрација

По собирањето чувствителни информации, Meme-Token-Hunter-Bot продолжува да ги ексфилтрира податоците на оддалечен сервер. Оваа ексфилтрација се извршува со низа функции кои се справуваат со преименување, поставување и известување за Телеграм ботот на напаѓачот. Следниве фрагменти од кодот илустрираат како се одвива овој процес.

Функцијата send_telegram_message испраќа порака до претходно конфигуриран бот на Telegram, предупредувајќи ги напаѓачите дека е поставена нова серија на украдени датотеки. Оваа функција гарантира дека напаѓачите добиваат навремени ажурирања за секоја ексфилтрација, овозможувајќи им да го следат процесот на кражба на податоци во реално време.


За дополнително да го замагли своето присуство, малициозниот софтвер ги преименува украдените датотеки со екстензија .minecraft - необичен трик најверојатно наменет да ги заобиколи основните мрежни системи за откривање упади кои следат одредени типови на датотеки. Откако ќе се преименува, upload_file го иницира преносот на податоци до оддалечениот сервер на напаѓачот. Датотеката се отвора во режим на бинарно читање и се поставува со помош на requests.post() на https://store1.gofile[.]io/, јавна платформа за споделување датотеки.


Ако поставувањето е успешно (означено со статусен код 200), функцијата ја враќа врската за преземање, која потоа се испраќа до напаѓачот преку Telegram.

11 Дополнителни складишта: Поголемата слика

За време на нашата истрага, се сомневавме дека Meme-Token-Hunter-Bot можеби не е изолиран пакет. Користење на насочен GitHub барање ('b25lLnB5' И 'requests.get(url)'), откривме 10 дополнителни складишта со речиси идентичен код. Овие складишта имаа мали измени во имињата на датотеките и етикетите на корисничкиот интерфејс, најверојатно генерирани преку автоматизирана стратегија за распоредување за одржување на повеќе копии од малициозниот софтвер, обезбедувајќи негова достапност дури и ако едно складиште е означено или отстрането.

Интересно е тоа што, иако Meme-Token-Hunter-Bot постои 10 месеци, тој започна да инкорпорира малициозен код дури во август 2024 година, кога base_helper.py - датотеката одговорна за преземање на Stage-2 Python stealer - првпат беше претставена. Последното ажурирање на оваа датотека е направено на 28 септември 2024 година.

Од друга страна, 11-те дополнителни складишта ги добија своите малициозни ажурирања пред околу два месеци, кога беше додаден base_helper.py. Овој координиран тајминг сугерира дека овие складишта се поставени специјално за дистрибуција на малициозен софтвер, надоградувајќи се на почетниот успех и методите видени во Meme-Token-Hunter-Bot.


Најдовме и инструкции за бајпас на Gatekeeper во неколку од овие складишта, дизајнирани да ги водат корисниците преку заобиколување на безбедносните предупредувања за macOS. Инструкциите беа претставени во визуелен формат чекор-по-чекор, охрабрувајќи ги корисниците да кликнат со десен клик на апликацијата, да изберат „Отвори“ и да го заобиколат предупредувањето на Gatekeeper.

Дополнително, меѓу идентификуваните 10 дополнителни складишта, се издвои една варијанта наречена „Солана-Бот“. Иако го следи истиот злонамерен тек како Meme-Token-Hunter-Bot, забележавме мали модификации, особено во имињата на датотеките и употребата на функции. Анализата на разликите рамо до рамо на датотеката base_helper.py на Solana-Bot и онаа на Meme-Token-Hunter-Bot ги истакнува овие разлики.

Клучните разлики помеѓу Solana-Bot и Meme-Token-Hunter-Bot вклучуваат промени на URL-то.

 "aHR0cHM6Ly9jb2luc3cuYXBwL2Jhc2VjLw==" + "UENTQm90LnB5" = "https://coinsw.app/basec/PCSBot.py" <-- Solana-Bot "aHR0cHM6Ly9jb2luc3cuYXBwL2Jhc2VjLw==" + "TUhUQm90LnB5" = "https://coinsw.app/basec/MHTBot.py"

Заклучок

Оваа истрага за Meme-Token-Hunter-Bot и неговите сродни варијанти открива внимателно оркестрирана кампања насочена кон корисниците на macOS. Првично изнесено на виделина од Checkmarx, овој пакет за крадци првично маскиран како крипто алатка се прошири во поширока закана. Нашата анализа откри 11 дополнителни складишта, од кои секое содржи мали варијации на оригиналниот код. Се чини дека напаѓачите користеле автоматизација за брзо генерирање на овие складишта, користејќи мали модификации во имињата, етикетите на корисничкиот интерфејс и функционалноста за да избегнат откривање и да обезбедат постојана достапност.


Сепак, забележавме и познати тактики за социјално инженерство насочени кон корисниците на macOS, особено инструкциите за бајпас на Gatekeeper. Ова покажува дека актерите за закана сè уште се потпираат во голема мера на искористување на довербата на корисниците. И покрај напредните техники видени во оваа кампања, ова потпирање на бајпасите со помош на корисникот ја нагласува потребата за континуирана едукација на корисниците.


Свесноста е најдобрата одбрана. Ресурси како што е блогот Moonlock moonlock.com/blog обезбедете им на корисниците на macOS корисни сознанија за тековните закани и начините за подобрување на нивната безбедност.

IoC се достапни во колекцијата: https://www.virustotal.com/gui/collection/68e7bff75a6ceb5d3d4faabfdb0e106b6527382a2b29a17c59ec3ce7d8f4233b/iocs

L O A D I N G
. . . comments & more!

About Author

Moonlock (by MacPaw) HackerNoon profile picture
Moonlock (by MacPaw)@moonlock
Cybersecurity tech for humans

ВИСЕТЕ ТАГОВИ

ОВОЈ СТАТИЈА БЕШЕ ПРЕТСТАВЕН ВО...