GhostCode е новоидентифициран фишинг кит, който превръща нормалното влизане в Microsoft 365 в превземане на акаунт. Не е необходимо да краде парола. Вместо това той убеждава хората да потвърдят вход, който дава на киберпрестъпниците достъп до техния работен акаунт.
Кампанията започва с обикновено изглеждащи съобщения, изпратени през контактни форми на компании. Атакуващите са се представяли за служители по отдел „Покупки“, след което са изпращали искане за подписване на споразумение за конфиденциалност (NDA) и WeTransfer връзка, съдържаща защитен с парола HTML файл.
Файлът представлява примамка за споделяне на документ и насочва получателя към вход в Microsoft чрез устройство (device-code sign-in). Анализаторите от eSentire са идентифицирали активността в края на август и са нарекли фишинг кита GhostCode. Името отразява неговия скрит код и използването на инфраструктура, свързана с GHOSTnet, по време на регистрирането на устройството.
От eSentire посочват в доклад, споделен с Cyber Security News (CSN), че операцията е използвала предтекст в стил „компрометиране на служебна електронна поща“ (BEC), за да направи искането да изглежда рутинно.
Рискът е незабавен, тъй като жертвата завършва автентикацията, включително многофакторната автентикация (MFA), на легитимна страница на Microsoft.
След това GhostCode получава генерирания токен, пренасочва жертвата към фалшиво споразумение за конфиденциалност (NDA) и започва да действа, преди жертвата да има причина да се усъмни в проблем. Случаят подчертава защо фишинг кампаниите, използващи код от устройство, са трудни за забелязване чрез познатите предупредителни знаци за кражба на пароли.

Кампанията показва как доверието в позната страница за автентикация, а не технически дефект, може да се превърне в предимство за атакуващия. За организации, зависими от облачни услуги, тази разлика превръща рутинно искане за одобрение в сериозен incident със сигурността на акаунта. Той може да се развие, преди разследващите да прегледат първото предупреждение.
GhostCode Phishing Kit заобикаля Microsoft 365 MFA
GhostCode злоупотребява с OAuth процеса за авторизация на устройства, който е предназначен за устройства като смарт телевизори, които не могат лесно да показват пълен екран за вход.
Неговият сървър изисква код чрез идентификатора на приложението Microsoft Authentication Broker, вмъква този код в изпипан фалшив портал за документи и кара мишената да го автентикира. По този начин потребителят ефективно оторизира устройството на атакуващия.
Прикрепеният файл затруднява проверката. Той съдържа ненужни данни (junk data), прекъсва видимия текст с HTML коментари и държи адреса за пренасочване криптиран, докато не бъде въведена правилната парола.
След като жертвата достигне до фишинг сървъра, проверка на браузъра и проверки на местоположението филтрират автоматизираните скенери. Този подход прилича на техники, документирани по-рано в услугата за фишинг EvilTokens, но GhostCode ги комбинира с целева комуникация през форми за контакт.

След като входът бъде одобрен, фишинг китът използва адреси от жилищни прокси мрежи (residential proxy), избрани така, че да съответстват на местоположението на жертвата. Това прави подканата от Microsoft по-малко тревожна и може да отслаби известията за сигурност, базирани на местоположение.
При наблюдаваното компрометиране атакуващите са извършили девет успешни API извиквания, регистрирали са три устройства за 78 секунди и са получили Primary Refresh Token за 32 секунди. Този токен може да поддържа вход в услугите на Microsoft 365, без да иска от потребителя отново да се автентикира.
Ограничаване на бързо развиваща се атака срещу идентификационни данни
Скоростта е от съществено значение, тъй като простото отменяне на откраднат токен може да не премахне устройствата, които вече са регистрирани в организацията (tenant). Изследователите са установили, че регистрираните устройства остават, докато администраторите изрично не ги деактивират или премахнат.
Екипите, реагиращи на съмнителна активност с кодове на устройства, трябва да анулират токените, да нулират компрометираните идентификационни данни, да прегледат новорегистрираните устройства и да проверят логовете за поща и облачен достъп за последваща активност.
Препоръчителната мярка е да се блокира автентикацията с код от устройство чрез Conditional Access за всеки, който наистина няма нужда от нея, като същевременно се позволят строго дефинирани изключения за одобрени работни процеси по поддръжка или предоставяне на услуги.

Организациите трябва също така да прилагат контроли за съответствие на устройствата (device-compliance), където е подходящо. Това намалява броя на служителите, които биха могли да бъдат измамени от същия метод, използван при фишинг атаки с тематика passkey.
Екипите по сигурност трябва да генерират предупреждения при успешни събития с кодове на устройства, последвани от необичайни скриптирани заявки или няколко регистрации на устройства от една неинтерактивна сесия. Те трябва също така да търсят имена на устройства, съответстващи на модел от първо име, фамилно име, корпоративен домейн и шестнадесетичен суфикс.
Информираността на потребителите остава важна: неочаквано искане за копиране на код в страница на Microsoft трябва да се третира като съмнително, особено след като кампаниите за кражба на сесии в Microsoft 365 продължават да се фокусират върху токени, а не върху пароли.
Индикатори за компрометиране (IoCs):-
| Тип | Индикатор | Описание |
|---|---|---|
| Домейн | bjssourcing[.]com | Наподобяващ домейн на подател, използван в предтекста за служител по обществени поръчки |
| Домейн | greenlightdlstribution[.]com | Свързан домейн за имперсонация, регистриран по време на кампанията |
| Имейл адрес | jeremyarcher@voewo[.]com | Адрес за еднократна употреба, свързан с регистрацията на свързан наподобяващ домейн |
| Домейн | voewo[.]com | Домейн, свързан с фалшиви профили за регистрация за еднократна употреба |
| Име на файл | 3arhCt9c0p.html | Защитено с парола HTML прикачен файл, използван като примамка за споделяне на документ |
| URL | hxxps://chartered.flipbookonlinevault[.]com/scanna/200e61bfe54c92fb720c77c3a1661bc0/b5ea87c2ddac3aa141bc6794b8993d1e43bd064eaae591719612becea0d106d7 | Декриптиран релейно URL, използвано за проследяване, филтриране и пренасочване |
| Път на URL | /scanna/file001// | Допълнителен наблюдаван път на кампанията върху същата релейна инфраструктура |
| Домейн | chartered.flipbookonlinevault[.]com | Инфраструктура за реле и филтриране на ботове, хостваща криптираната дестинация за пренасочване |
| Домейн | account-access-rc3uenqi.elitechiropracticandrehab[.]com | Фишинг сървър за устройства (device-code), хостван под най-вероятно компрометиран сайт |
| Път на URL | /turnstile?return_url=%2F3OnOQubA2bS4o26p3MRXyYV3XuUZ6... | Път до Cloudflare Turnstile, използван преди предоставянето на фишинг портала |
| Път на API | /api/harvester?action=geoip | Заявка към фоновата система (backend), използвана за оценка на местоположението на жертвата и задаване на маршрутизиране през прокси |
| Път на API | /api/harvester?action=get_code | Заявка към фоновата система (backend), използвана за получаване на код за авторизация на устройството |
| Път на API | /api/harvester?action=poll | Заявка към фоновата система (backend), използвана за периодична проверка (polling) за завършена автентификация на устройството |
| Идентификатор на приложение (Application ID) | 29d9ed98-a469-4536-ade2-f981bc1d605e | Идентификатор на приложението Microsoft Authentication Broker, с който е злоупотребено в процеса с код за устройство (device-code flow) |
| User-Agent | python-requests/2.34.2 | Сигнатура на автоматизирана заявка (скрипт), наблюдавана по време на използването на токена и активността след автентификацията |
| IP адрес | 82.33.39[.]74 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 151.225.227[.]193 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 176.253.248[.]175 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 94.9.97[.]142 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 86.132.13[.]219 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 81.96.174[.]54 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 90.215.55[.]70 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 92.40.47[.]84 | Резиденциален прокси IP адрес, наблюдаван по време на използването на токена |
| IP адрес | 5.230.71[.]51 | IP адрес, свързан с GHOSTnet, наблюдаван по време на финалното регистриране в Intune |
| Идентификатор на устройство (Device ID) | 4e537622-2514-48b8-84ed-0139549cfab0 | Първо устройство, регистрирано от атакуващия |
| Идентификатор на устройство (Device ID) | 6c290bcc-62d3-40bd-a774-816109af6729 | Второ устройство, регистрирано от атакуващия |
| Идентификатор на устройство (Device ID) | 5e83a216-f67e-43b8-a129-f67666a001dd | Трето устройство, регистрирано от атакуващия, по-късно регистрирано в Intune |
Забележка: IP адресите и домейните са нарочно неутрализирани (напр. [.]), за да се предотврати случайно разрешаване на имена или създаване на хипервръзки. Възстановете ги само в рамките на контролирани платформи за разузнаване за киберзаплахи като MISP, VirusTotal или вашата SIEM система.