У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.
У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

У межах аднаго з чарговых расследаванняў, нацыянальная каманда рэагавання на камп’ютарных інцыдэнты выявіла ўнікальнае шкоднаснае праграмнае забеспячэнне, якое можна аднесці да класа 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”.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.1 Галіна рэестра Spelling з ключамі

Пошук па шляху рэестра HKEY_CLASSES_ROOT аб’екта NetInformationService.Disclosure, знаходзіць сістэмны аб’ект з UID {1FA9A8BA-3F30-3909-BE2A-EF25EC4C9733}.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.2 Шкоднасны COM аб’ект

Код файла рэалізаваны ў бібліятэцы CustomTelemetryUpdater.dll

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.3 Бібліятэка, якая рэалізуе шкоднасны COM аб’ект

Бібліятэка распрацавана для .net платформу версіі v4.0.30319.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.4 Функцыя Collect

Аргументы функцыі:

– шлях да модуля (модуль можа быць атрыманы і праз дыск);

– імя модуля;

– ключ, для расшыфроўкі дадзеных;

– імя м’ютэкса.

Перш за ўсё бібліятэка правярае, ці запушчаны яшчэ адзін асобнік, з дапамогай запыту глабальнага сістэмнага аб’екта – мьютэкса.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.5 Функцыя праверкі isAlreadyRun

Калі першы аргумент функцыі, пачынаецца з “HK”, то ён паказвае на галіну рэестра, а другі на ключ рэестра. У адваротным выпадку, шлях да модуля счытваецца як шлях да файла на дыску. Змесціва па ўказаным шляху счытваецца ў памяць. У даследаваным экзэмпляры:

– HKEY_USERS\.DEFAULT\Software\Microsoft\Spelling — SpellingEngine

Для аднаўлення асноўнай нагрузкі выкарыстоўваецца аперацыя xor у рэжыме плаваючага акна, ключ перадаецца як 3-ці аргумент функцыі. Гэты алгарытм шыфравання выкарыстоўваецца далей па ўсім кодзе.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.6 Выклік функцыі, для запуску асноўнай нагрузкі

Асноўная нагрузка загружаецца ў памяць праз убудаваныя метады рэфлексіі платформы.net Функцыя для запуску – першая функцыя з першага модуля ў кодзе. У бягучым прыкладзе такой функцыяй з’яўляецца Main. Зборка не мае відавочнага імя і ў памяць загружаецца як «Program». Бібліятэка ж названа SpellingEngine.dll.

Адна з цікавых асаблівасцяў платформы – вядзенне лога, з запісам інфармацыі аб усіх выключэннях, якія адбыліся ў выніку працы праграмы. Лог, які захоўвае час, функцыю ў якой адбылася памылка, шлях выканання функцыі і паведамленне пра памылку, запісваецца ў файл C:\\Windows\\System32\\ldr_error.txt.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.7 Функцыя праверкі isAlreadyRun

Аналіз модуля SpellingEngine.dll

Імёны функцыі ў бібліятэцы абфусцыраваны, зменены для заблытвання аналізу, і ўяўляюць сабой UNICODE радкі. Бібліятэка статычна сабрана з дапамогай бібліятэкі апрацоўкі структураваных даных Newtonsoft.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.8 Функцыі бібліятэкі SpellingEngine.

Пасля запуску модуль адпраўляецца ў сон ад 10 хвілін да 1 гадзіны.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.9 Усталёўваная паўза.

Для праверкі даступнасці глабальнай сеткі модуль дасылае dns запыт на даменнае імя microsoft.com. Калі функцыя завяршылася без выключэнняў, то праграма лічыць, што сетка даступная. Калі было зроблена больш за 5 няўдалых спроб рэзолву даменнага імя, то модуль завяршае працу з запісам у лог “No internet”.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.10 Функцыя праверкі сеткі.

Пасля папярэдніх праверак, выклікаецца асноўная функцыя модуля – атрыманне карыснай нагрузкі і загрузка яе ў памяць.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.11 Функцыя атрымання дадатковага модуля.

Аргументы функцыі, прапісаныя ў кодзе, наступныя:

  • Ідэнтыфікатар карыстальніка;
  • Стандартны токен карыстальніка , паказана значэнне: “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.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.12 Функцыя атрымання токена аўтыфікацыі.

Новы токен аўтыфікацыі змяшчаецца ў рэестр, а ключ 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 аб карыстачах, групах і прыкладаннях.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.13 Функцыя адпраўкі дадзеных, на рэсурсы Microsoft

Модуль правярае тэму падзей, па ўнікальных радках, запісаных у кодзе, і перадае іх у асноўную функцыю чацвёртым аргументам.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.14 Праверка поля subject

Калі ўсе праверкі выкананы паспяхова, то модуль забірае прымацаваныя дадзеныя.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.15 Атрыманне новага модуля з graph.microsoft.com

Калі спроба спампаваць новы код паспяховая, то наступным этапам адбываецца выдаленне ўкладання з рэсурсу graph.microsoft.com, а таксама выдаленне падзеі, сумесна з новым модулем.

У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.16 Функцыя выдалення падзеі.

Трэба адзначыць, што падобны метад упершыню быў знойдзены ў блогу RedSiege у студзені 2024 гады.

Новы код расшыфроўваецца па названым вышэй алгарытме, а ў якасці ключа выкарыстоўваецца ідэнтыфікатар падзеі. Асноўная функцыя загрузчыка завяршае сваю працу, і вяртае код дадатковага модуля.

Бібліятэка SpellingEngine знаходзіць першы метад, з першага класа ўсярэдзіне новага выкананага коду, і запускае гэтую функцыю.

У ходзе даследавання атрымалася выявіць і прааналізаваць тры дадатковыя модулі для SpellingEngine:

  • Модуль збору дадзеных з прыкладнога дадатка арганізацыі;
  • Модуль Сurl – адпраўка http запыту на адзначаны вэб-рэсурс, канчатковая кропка, указана прапісана ў код.
  • Модуль TcpPortScan – праверка даступнасці падсеткі па групе партоў, падсеткі і спіс партоў паказаны ў кодзе модуля.

Вынік працы модуля гэтак жа адпраўляецца на рэсурс graph.microsoft.com у выглядзе зашыфраванага zip архіва. Інфармацыя аб выніку працы дапаможнага модуля дзеліцца на тры катэгорыі:

  • Інфармацыя пра памылкі;
  • Інфармацыя аб аргументах, з якім запускаліся дапаможныя модулі;
  • Інфармацыя аб выніках працы дапаможных модуляў.
У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.17 Функцыя выдалення падзеі.
У цені Майкрасофт. Нататкі аб жыцці SpellingSpy.

Малюнак.18 Функцыя адпраўкі вынікаў працы.

Варта адзначыць, што ў функцыі адпраўкі дадзеных прадугледжана адпраўка вялікіх файлаў.

Выснова

Выкарыстаныя тэхнікі і тактыкі, паводле матрыцы 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 рэкамендуе прытрымвацца наступных правіл:

  1. Будзьце ўважлівыя да любых электронных лістоў, якія спрабуюць прымусіць Вас адчыніць укладанні ці пераходзіць па спасылках.
  2. Нават з лістамі арганізацый, з якімі вы рэгулярна маеце зносіны.
  3. Зважайце на лісты, адпраўнікамі якіх з’яўляюцца асобы або арганізацыі, з якімі Вы звычайна не знаходзіцеся ў перапісцы.

Таксама правесці праверку інфармацыйных сістэм і персанальных камп’ютэраў на наяўнасць указаных прыкмет. А таксама раім сачыць за нашымі рэкамендацыямі і абнаўленнямі.

Пры выяўленні, просім паведаміць на support@cert.by.

Для зручнасці і своечасовага паведамлення аб навінах падпісвайцеся на нас у сацыяльных сетках:

Вредоносное программное обеспечение как услуга (MaaS)

Шкоднае праграмнае забеспячэнне як паслуга (MaaS)

У рамках рэагавання на распаўсюджванне шкоднага праграмнага забеспячэння (ШПЗ) у нацыянальным сегменце сеткі Інтэрнэт CERT.BY праведзена дэталёвае вывучэнне розных экзэмпляраў, не звязаных паміж сабой па першасных прыкметах.