У межах аднаго з чарговых расследаванняў, нацыянальная каманда рэагавання на камп’ютарных інцыдэнты выявіла ўнікальнае шкоднаснае праграмнае забеспячэнне, якое можна аднесці да класа SpyWare з магчымасцю прадастаўлення выдаленага доступу да атакаванай інфраструктуры. Выявіць заражаную сістэму няпроста – праграма выкарыстоўвае легітымны рэсурс, для атрымання нагрузкі і адпраўкі выніку, а саму асноўную нагрузку выконвае ў памяці, што дазваляе замарудзіць механізм знаходжання і атрымкі модуляў пашырэння функцыяналу.
Спіс прыкмет заражэння
Сервера кіравання:
login.live.com*
graph.microsoft.com*
Імёны працэсаў:
wscript.exe*
*Гэтыя прыкметы з’яўляюцца слабымі і патрабуюць дадатковай праверкі, па іншых прыкметах.
Імёны файлаў:
– %systemroot%\CustomTelemetryUpdater.dll
– %systemroot%\NetworkProtectionEx.vbs
– %systemroot%\System32\ldr_error.txt
Галіны рэестра:
– HKEY_CLASSES_ROOT\NetInformationService.Disclosure
– HKEY_CLASSES_ROOT\{1FA9A8BA-3F30-3909-BE2A-EF25EC4C9733}
– HKEY_USERS\.DEFAULT\Software\Microsoft\Spelling с ключами
SpellingEngine
SpellingToken
Задача:
– Microsoft\Windows\NetworkAccessProtection\NetworkAccessProtectionEx
md5 655c9592bca3edf13ce4ec0a195f5a86
sha1 182347d581526b26d3a066a13e85a18677f5df66
sha256 ae90b28cac733d01b2c11c6c29db280789682c0edb50a9c9e49a854f50bee8eb
ssddeep 96:C4yTf2OrFbiM0btBgRSGdlFNRe9qtOw2:P0ZPogxXG
Падрабязнасці расследавання і выяўленні ШПЗ
Першапачаткова падчас нашага аналізу ў сістэмнай дырэкторыі былі зафіксаваны падазроныя файлы “CustomTelemetryUpdater.dll” і “NetworkProtectionEx.vbs”. Дакладны спосаб дадання файлаў у сістэму ўсталяваць не атрымалася. Згодна з логамі файлавай сістэмы, аб’екты з’явіліся не пазней 2023/04/24.
Файл з пашырэннем .vbs утрымоўваў код:
CreateObject(“NetInformationService.Disclosure”).Collect “HKEY_USERS\.DEFAULT\Software\Microsoft\Spelling”, “SpellingEngine”, “18362a49-34c7-4ddd-902a-b2d6fca45410”, 9c4f2a5 “»
Што відавочна сведчыць на стварэнне сістэмнага аб’екта тыпу “NetInformationService.Disclosure”, і выклік метаду Collect з перадачай шэрагу аргументаў.
Гэтая галінка рэестра прысутнічае ў некаторых версіях АС. Даследаваны два ключы: “SpellingEngine” і “SpellingToken”.
Пошук па шляху рэестра HKEY_CLASSES_ROOT аб’екта NetInformationService.Disclosure, знаходзіць сістэмны аб’ект з UID {1FA9A8BA-3F30-3909-BE2A-EF25EC4C9733}.
Код файла рэалізаваны ў бібліятэцы CustomTelemetryUpdater.dll
Бібліятэка распрацавана для .net платформу версіі v4.0.30319.
Аргументы функцыі:
– шлях да модуля (модуль можа быць атрыманы і праз дыск);
– імя модуля;
– ключ, для расшыфроўкі дадзеных;
– імя м’ютэкса.
Перш за ўсё бібліятэка правярае, ці запушчаны яшчэ адзін асобнік, з дапамогай запыту глабальнага сістэмнага аб’екта – мьютэкса.
Калі першы аргумент функцыі, пачынаецца з “HK”, то ён паказвае на галіну рэестра, а другі на ключ рэестра. У адваротным выпадку, шлях да модуля счытваецца як шлях да файла на дыску. Змесціва па ўказаным шляху счытваецца ў памяць. У даследаваным экзэмпляры:
– HKEY_USERS\.DEFAULT\Software\Microsoft\Spelling — SpellingEngine
Для аднаўлення асноўнай нагрузкі выкарыстоўваецца аперацыя xor у рэжыме плаваючага акна, ключ перадаецца як 3-ці аргумент функцыі. Гэты алгарытм шыфравання выкарыстоўваецца далей па ўсім кодзе.
Асноўная нагрузка загружаецца ў памяць праз убудаваныя метады рэфлексіі платформы.net Функцыя для запуску – першая функцыя з першага модуля ў кодзе. У бягучым прыкладзе такой функцыяй з’яўляецца Main. Зборка не мае відавочнага імя і ў памяць загружаецца як «Program». Бібліятэка ж названа SpellingEngine.dll.
Адна з цікавых асаблівасцяў платформы – вядзенне лога, з запісам інфармацыі аб усіх выключэннях, якія адбыліся ў выніку працы праграмы. Лог, які захоўвае час, функцыю ў якой адбылася памылка, шлях выканання функцыі і паведамленне пра памылку, запісваецца ў файл C:\\Windows\\System32\\ldr_error.txt.
Аналіз модуля SpellingEngine.dll
Імёны функцыі ў бібліятэцы абфусцыраваны, зменены для заблытвання аналізу, і ўяўляюць сабой UNICODE радкі. Бібліятэка статычна сабрана з дапамогай бібліятэкі апрацоўкі структураваных даных Newtonsoft.
Пасля запуску модуль адпраўляецца ў сон ад 10 хвілін да 1 гадзіны.
Для праверкі даступнасці глабальнай сеткі модуль дасылае dns запыт на даменнае імя microsoft.com. Калі функцыя завяршылася без выключэнняў, то праграма лічыць, што сетка даступная. Калі было зроблена больш за 5 няўдалых спроб рэзолву даменнага імя, то модуль завяршае працу з запісам у лог “No internet”.
Пасля папярэдніх праверак, выклікаецца асноўная функцыя модуля – атрыманне карыснай нагрузкі і загрузка яе ў памяць.
Аргументы функцыі, прапісаныя ў кодзе, наступныя:
- Ідэнтыфікатар карыстальніка;
- Стандартны токен карыстальніка , паказана значэнне: “M.C106_BL2.-CQlVWpmmnpBiWuz2FgQb06!esU8WQB!”;
- User-Agent http, паказана значэнне: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.
- Унікальная радок, для першай спробы: kjashdbciawyebckagevcuatwevca, для другой спробы: mdxnfbvksdhfbvoayerbcaubciawe;
- Галіна рэестра, паказана значэнне: “HKEY_USERS\.DEFAULT\Software\Microsoft\Spelling”;
- Ключ рэестра, паказана значэнне: “SpellingToken”.
Асноўная функцыя модуля прымае значэнне запісанае ў ключы SpellingToken, калі інфармацыя адсутнічае, праграмнае забеспячэнне стварае яго і запісвае стандартнае значэнне, перададзенае ў 3-м аргуменце.
Наступны этап – атрыманне такена аўтыфікацыі OAuth2.0, для доступу да рэсурсаў Microsoft, адбываецца па сродку адпраўкі POST-запыту на https://login.live.com/oauth20_desktop.srf.
Новы токен аўтыфікацыі змяшчаецца ў рэестр, а ключ SpellingToken выкарыстоўваецца далей, для адпраўкі запытаў на рэсурсы Microsoft, а менавіта на https://graph.microsoft.com/v1.0/me/calendars.
Згодна з афіцыйнай дакументацыяй Microsoft, названая тэхналогія выкарыстоўваецца ў платформе Microsoft 365, для сінхранізацыі агульных падзей у групе карыстальнікаў. API Graph дае метады для доступу да дадзеных і кіравання імі ў экасістэме Microsoft і выкарыстоўваецца для адпраўкі запытаў на сайтgraph.microsoft.com. Сюды ўваходзяць такія сэрвісы, як паведамленні Microsoft Teams, файлы SharePoint і OneDrive, электронныя лісты Outlook, а таксама дадзеныя Azure аб карыстачах, групах і прыкладаннях.
Модуль правярае тэму падзей, па ўнікальных радках, запісаных у кодзе, і перадае іх у асноўную функцыю чацвёртым аргументам.
Калі ўсе праверкі выкананы паспяхова, то модуль забірае прымацаваныя дадзеныя.
Калі спроба спампаваць новы код паспяховая, то наступным этапам адбываецца выдаленне ўкладання з рэсурсу graph.microsoft.com, а таксама выдаленне падзеі, сумесна з новым модулем.
Трэба адзначыць, што падобны метад упершыню быў знойдзены ў блогу RedSiege у студзені 2024 гады.
Новы код расшыфроўваецца па названым вышэй алгарытме, а ў якасці ключа выкарыстоўваецца ідэнтыфікатар падзеі. Асноўная функцыя загрузчыка завяршае сваю працу, і вяртае код дадатковага модуля.
Бібліятэка SpellingEngine знаходзіць першы метад, з першага класа ўсярэдзіне новага выкананага коду, і запускае гэтую функцыю.
У ходзе даследавання атрымалася выявіць і прааналізаваць тры дадатковыя модулі для SpellingEngine:
- Модуль збору дадзеных з прыкладнога дадатка арганізацыі;
- Модуль Сurl – адпраўка http запыту на адзначаны вэб-рэсурс, канчатковая кропка, указана прапісана ў код.
- Модуль TcpPortScan – праверка даступнасці падсеткі па групе партоў, падсеткі і спіс партоў паказаны ў кодзе модуля.
Вынік працы модуля гэтак жа адпраўляецца на рэсурс graph.microsoft.com у выглядзе зашыфраванага zip архіва. Інфармацыя аб выніку працы дапаможнага модуля дзеліцца на тры катэгорыі:
- Інфармацыя пра памылкі;
- Інфармацыя аб аргументах, з якім запускаліся дапаможныя модулі;
- Інфармацыя аб выніках працы дапаможных модуляў.
Варта адзначыць, што ў функцыі адпраўкі дадзеных прадугледжана адпраўка вялікіх файлаў.
Выснова
Выкарыстаныя тэхнікі і тактыкі, паводле матрыцы Mitre, па асноўным кодзе і атрыманым модулям:
– Выкананне:
Выкарыстанне Visual Basic https://attack.mitre.org/techniques/T1059/005/
– Замацаванне:
Стварэнне планавай задачы https://attack.mitre.org/techniques/T1053/005/
– Абыход метадаў абароны:
Рэфлексіўная загрузка кода https://attack.mitre.org/techniques/T1620/
– Збор дадзеных:
Выкарыстанне ўразлівасці ў дадатку https://attack.mitre.org/techniques/T1212/
– Атрыманне інфармацыі аб сувязных хастах:
Сеткавае сканаванне https://attack.mitre.org/techniques/T1046/
– Метады кіравання
Выкарыстанне вэб-пратакола https://attack.mitre.org/techniques/T1071/001/
– Метады ўтойванні трафіку
Выкарыстанне легітымнага вэб-рэсурсу для абмену тэкставымі паведамленнямі https://attack.mitre.org/techniques/T1567/003/
У сувязі са ўсім вышэйпералічаным CERT.BY рэкамендуе прытрымвацца наступных правіл:
- Будзьце ўважлівыя да любых электронных лістоў, якія спрабуюць прымусіць Вас адчыніць укладанні ці пераходзіць па спасылках.
- Нават з лістамі арганізацый, з якімі вы рэгулярна маеце зносіны.
- Зважайце на лісты, адпраўнікамі якіх з’яўляюцца асобы або арганізацыі, з якімі Вы звычайна не знаходзіцеся ў перапісцы.
Таксама правесці праверку інфармацыйных сістэм і персанальных камп’ютэраў на наяўнасць указаных прыкмет. А таксама раім сачыць за нашымі рэкамендацыямі і абнаўленнямі.
Пры выяўленні, просім паведаміць на support@cert.by.
Для зручнасці і своечасовага паведамлення аб навінах падпісвайцеся на нас у сацыяльных сетках: