Муаллифон: Ксения Ямбурх, муҳандиси таҳқиқоти нармафзори зараровар дар Moonlock аз ҷониби MacPaw ва Михайло Пазынюк, муҳандиси таҳқиқоти нармафзори зараровар дар Moonlock аз ҷониби MacPaw
Нармафзори кушодаасос барои навоварӣ асос аст, аммо дари истисморо боз мекунад. Ба наздикй муҳаққиқони Checkmarx
Дар 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.py ҳамчун нуқтаи гардиш дар ҳамла фарқ мекунад. Бо истифода аз PyQT5, ин файл интерфейси графикии корбарро эҷод мекунад, ки нармафзори қонуниро тақлид мекунад ва нишони дархости парол ва сатри пешрафтро нишон медиҳад. Ин ниқоб барои итминон додани корбарон тарҳрезӣ шудааст, дар ҳоле ки дар асл, MHTBot.py як қатор модулҳои гирифтани маълумотро дар замина пинҳонӣ фаъол мекунад.
MHTBot.py як усули оқилонаи саркашӣ карданро истифода мебарад: он кӯшиши аввалин паролро ҳамчун "бехатар" рад мекунад ва танҳо дуюмро қабул мекунад. Эҳтимол ин таъхири дарунсохт барои гурехтан аз ошкоркунии қуттии қум нигаронида шудааст, зеро бисёре аз муҳитҳои қуттиҳои қум вақти маҳдуд доранд, ки то пурра фаъол шудани нармафзори зараровар ба охир мерасад.
Дар доираи тактикаи саркашӣ, Meme-Token-Hunter-Bot пеш аз оғози амалиёти асосии дуздии маълумот таъхирро истифода мебарад. Ин таъхир инчунин барои пешгирӣ кардани ошкоркунӣ аз ҷониби муҳитҳои қуттии қум пешбинӣ шудааст, ки аксар вақт барои таҳлили автоматикӣ давомнокии маҳдуди кор доранд. Бо таъхири иҷро, нармафзори зараровар имкони гузаштан аз ин сканҳои аввалия ва пурра фаъол шудан дар системаи воқеии корбарро зиёд мекунад.
Скриншот дар зер рамзи мушаххасеро, ки барои ин таъхир масъул аст, таъкид мекунад. Start_one_py_main_after_delayfunction бо истифода аз QTimer.singleShot таъхири 7000 миллисония (7 сония) -ро оғоз мекунад, ки пас аз он функсияи run_one_py_main -ро даъват мекунад. Пас ин функсия модули асосии дуздии маълумотро, one.py, дар як риштаи алоҳида бармеангезад.
Вақте ки MHTBot.py назоратро ба one.py мегузарад, амалиёти ибтидоии дуздии маълумот аз нармафзори зараровар оғоз мешавад. Парчаҳои коди зерин нишон медиҳанд, ки чӣ тавр one.py барои ҷамъоварии иттилооти ҳассос аз системаи корбар функсияҳо ва модулҳои гуногунро истифода мебарад. Биёед ҳар як қисми рамз ва ҳадафи онро тақсим кунем.
Дар порчаи аввал, мо функсияи main()-ро мебинем, ки феҳристи пинҳониро барои нигаҳдории муваққатии маълумоти дуздидашуда омода мекунад. Нармафзори зараровар ~/.temp/premium/-ро ҳамчун феҳристи пинҳонӣ барои нигоҳ доштани файлҳо бидуни огоҳии корбар эҷод мекунад. Пас аз насб кардани ин феҳрист, функсия реҷаҳои гуногунро барои ҷамъоварии маълумот аз барномаҳои мушаххас даъват мекунад:
mediax (): Эҳтимол қайдҳои Apple-ро барои гирифтани ёддоштҳои захирашуда ҳадаф қарор диҳад.
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() махсусан феҳристҳоеро, ки бо ҳамёнҳои машҳури cryptocurrency алоқаманданд, ҷустуҷӯ мекунад. Нармафзори зараровар ба таври мунтазам файлҳои ҳамёнҳои марбут ба Bitcoin, Electrum, Coinomi, Exodus ва дигар ҳамёнҳои асосии криптографиро ҷустуҷӯ мекунад. Пас аз муайян кардани он, ин феҳристҳои ҳамён zip карда мешаванд ва дар директорияи муваққатӣ нигоҳ дошта мешаванд, ки барои эксфилтратсия омодаанд.
Барномаи зараровар инчунин функсияҳои мушаххасро барои дуздии маълумоти Telegram дар бар мегирад. Функсияҳои backup_telegram() ва backup_tdata() феҳристҳои додаҳои Telegram-ро ҷустуҷӯ мекунанд ва кӯшиш мекунанд, ки ба паёмҳо, мухотибон ва медиаи дар барнома ҳифзшуда дастрасӣ пайдо кунанд. Бо нусхабардории ин файлҳо, нармафзори зараровар метавонад ба ҳамлагарон имкон диҳад, ки алоқаи Telegram ва таърихи медиаи корбарро барқарор кунанд.
Пас аз ҷамъоварии маълумоти ҳассос, Meme-Token-Hunter-Bot ба хориҷ кардани маълумот ба сервери дурдаст идома медиҳад. Ин эксфилтратсия бо як қатор функсияҳо иҷро карда мешавад, ки тағир додани номи файл, боргузорӣ ва огоҳ кардани боти Telegram-и ҳамлакунандаро идора мекунанд. Парчаҳои коди зерин нишон медиҳанд, ки ин раванд чӣ гуна ҷараён дорад.
Функсияи send_telegram_message ба боти қаблан танзимшудаи Telegram паём мефиристад ва ҳамлагаронро аз боргузорӣ шудани маҷмӯи нави файлҳои дуздида огоҳ мекунад. Ин функсия кафолат медиҳад, ки ҳамлагарон дар бораи ҳар як эксфилтратсия навсозиҳои саривақтӣ мегиранд ва ба онҳо имкон медиҳад, ки раванди дуздии маълумотро дар вақти воқеӣ назорат кунанд.
Барои боз ҳам печидатар кардани мавҷудияти худ, нармафзори зараровар файлҳои дуздидашударо бо тамдиди .minecraft иваз мекунад - як ҳиллаи ғайриоддӣ эҳтимолан барои гузаштан аз системаҳои асосии ошкоркунии ҳамлаҳои шабакавӣ, ки намудҳои мушаххаси файлҳоро назорат мекунанд. Пас аз иваз кардани ном, upload_file интиқоли маълумотро ба сервери дурдасти ҳамлакунанда оғоз мекунад. Файл дар реҷаи хониши дуӣ кушода мешавад ва бо истифода аз requests.post() ба https://store1.gofile[.]io/, платформаи муштараки файлҳо бор карда мешавад.
Агар боргузорӣ бомуваффақият анҷом дода шавад (бо рамзи ҳолати 200 нишон дода шудааст), функсия истиноди зеркаширо дарёфт мекунад, ки баъдан ба ҳамлагар тавассути Telegram фиристода мешавад.
Ҳангоми тафтишот, мо гумон доштем, ки Meme-Token-Hunter-Bot метавонад бастаи ҷудогона набошад. Истифодаи GitHub мақсаднок
Ҷолиб он аст, ки дар ҳоле ки Meme-Token-Hunter-Bot тӯли 10 моҳ аст, он танҳо дар моҳи августи соли 2024 ворид кардани рамзи зарароварро оғоз кард, вақте ки base_helper.py - файли масъул барои зеркашии дуздии Stage-2 Python - бори аввал ҷорӣ карда шуд. Навсозии охирини ин файл 28 сентябри соли 2024 анҷом дода шудааст.
Аз тарафи дигар, 11 анбори иловагӣ тақрибан ду моҳ пеш, вақте ки base_helper.py илова карда шуд, навсозиҳои зарароварро гирифтанд. Ин вақти ҳамоҳангшуда аз он шаҳодат медиҳад, ки ин анборҳо махсус барои паҳн кардани нармафзори зараровар таъсис дода шудаанд, ки ба муваффақияти аввалия ва усулҳои дар Meme-Token-Hunter-Bot дидашуда такя мекунанд.
Мо инчунин дар чанде аз ин анборҳо дастурҳои аз байн рафтани Gatekeeper ёфтем, ки барои роҳнамоии корбарон тавассути гузаштан аз огоҳиҳои амнияти macOS пешбинӣ шудааст. Дастурҳо дар формати визуалии қадам ба қадам пешниҳод карда шуданд, ки корбаронро ташвиқ мекунад, ки бо тугмаи рости барнома клик кунанд, "Кушодан" -ро интихоб кунанд ва огоҳии дарвозабонро гузаранд.
Илова бар ин, дар байни 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 анбори иловагиро ошкор кард, ки ҳар кадоми онҳо вариантҳои ночизи рамзи аслӣ доранд. Чунин ба назар мерасад, ки ҳамлагарон автоматизатсияро барои тавлиди босуръати ин анборҳо истифода бурдаанд, бо истифода аз тағироти ночиз дар номҳо, тамғакоғазҳои UI ва функсияҳо барои гурехтани ошкор ва таъмини дастрасии доимӣ.
Бо вуҷуди ин, мо инчунин тактикаи муҳандисии иҷтимоии шиносро мушоҳида кардем, ки ба корбарони macOS нигаронида шудаанд, алахусус дастурҳои гузариши Gatekeeper. Ин нишон медиҳад, ки фаъолони таҳдид то ҳол ба истисмор аз эътимоди корбарон такя мекунанд. Сарфи назар аз усулҳои пешрафтае, ки дар ин маърака дида мешаванд, ин такя ба гузаргоҳҳои ёрирасони корбар зарурати омӯзиши давомдори корбаронро таъкид мекунад.
Огоҳӣ беҳтарин дифоъ аст. Сарчашмаҳо ба монанди блоги Moonlock