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

18 Jun 2026 14:32 UTC

Арсенал ESET Research FishMonger розширено: SprySOCKS для Windows

Author Photo
SOC Prime Team linkedin icon Стежити
Арсенал ESET Research FishMonger розширено: SprySOCKS для Windows
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Дослідники ESET виявили два нові варіанти бекдору SprySOCKS для Windows, названі WIN_DRV і WIN_PLUS, які пов’язані з групою загроз FishMonger. Версія WIN_DRV використовує драйвер ядра для підвищеної непомітності, включаючи можливість приховати мережеві з’єднання, процеси та файли. Обидва варіанти підтримують кілька комунікаційних протоколів і надають широкий набір команд для управління системою та крадіжки даних.

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

Розслідування спиралося на зразки шкідливих програм, виявлені через VirusTotal та телеметрію ESET, що виявляє активність у період з 2023 по 2024 рік. Дослідники проаналізували повні ланцюжки виконання, включаючи DLL-завантаження, завантаження драйверів ядра за допомогою DriverLoader та RawWNPF, а також ін’єкцію процесу з використанням технік допельгенгінгу. Дослідження також виявило шаблони командно-контрольного спілкування та жорстко закодовані ключі шифрування, які спільні для декількох компонентів.

Пом’якшення

Організації повинні пріоритетно оновлювати додатки, орієнтовані на інтернет, щоб зменшити ризик початкового компрометації через вразливості N-day. Важливими є посилене виконання підпису драйверів і моніторинг несанкціонованої інсталяції драйверів ядра. Захисники також повинні стежити за підозрілими запланованими завданнями, змінами в реєстрі в рамках параметрів виконання файлів зображень та незвичними реєстраціями процесорів друку.

Відповідь

Якщо ці загрози виявлено, уражені системи слід негайно ізолювати, щоб зупинити подальше бокове переміщення або крадіжку даних. Розслідувачі повинні провести детальний судовий аналіз, щоб визначити оригінальний вектор вторгнення та повний обсяг компрометації, з особливою увагою до рівня збереження ядра. Мережеві журнали повинні бути перевірені на спілкування з відомою командно-контрольною інфраструктурою, а системні зміни, такі як нові служби або змінені ключі реєстру, повинні бути перевірені.

Потік атак

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

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

Підстава: цей розділ детально описує точне виконання техніки супротивника (TTP), розробленої для того, щоб викликати правило виявлення. Команди та наратив ПОВИННІ безпосередньо відображати виявлені TTP і прагнути створити точну телеметрію, що очікується логікою виявлення. Абстрактні або несумісні приклади призведуть до помилкового діагнозу.

  • Наратив атаки і команди: Супротивник успішно впровадив бекдор SprySOCKS на скомпрометованому хості Windows. Щоб встановити командно-контрольний канал, шкідлива програма відкриває сокет, що слухає, на порті 53781. Щоб забезпечити, що комунікація буде визнана їх власним C2 сервером, шкідлива програма вприскує магічне шістнадцяткове значення 0xACACBCBC в початкові пакети рукостискання. Це імітує специфічну поведінку протоколу групи FishMonger для забезпечення надійної комунікації через перехоплений або відхилений трафік.

  • Скрипт регресійного тестування:

    # Скрипт симуляції: Генерація мережевих артефактів SprySOCKS
    # Цей скрипт імітує мережеву поведінку бекдору SprySOCKS.
    
    $TargetPort = 53781
    $MagicValue = [byte[]] @(0xAC, 0xAC, 0xBC, 0xBC)
    $Listener = [System.Net.Sockets.TcpListener]$TargetPort
    
    try {
        Write-Host "[+] Запуск прослуховувача на порту $TargetPort..." -ForegroundColor Cyan
        $Listener.Start()
        $Client = $Listener.AcceptTcpClient()
        $Stream = $Client.GetStream()
    
        Write-Host "[+] Підключення встановлено. Надсилання магічного значення $MagicValue..." -ForegroundColor Yellow
        # Вставка магічного значення у потік для виклику логіки 'selection1'
        $Stream.Write($MagicValue, 0, $MagicValue.Length)
    
        Start-Sleep -Seconds 5
    }
    catch {
        Write-Error "[-] Симуляція не вдалася: $($_.Exception.Message)"
    }
    finally {
        Write-Host "[+] Очищення підключень..." -ForegroundColor Cyan
        $Stream.Close()
        $Client.Close()
        $Listener.Stop()
    }
  • Команди очищення:

    # Переконатися, що не залишилося активних несанкціонованих прослуховувачів
    Get-NetTCPConnection -LocalPort 53781 -ErrorAction SilentlyContinue | Remove-NetTCPConnection
    Write-Host "[+] Очищення завершено." -ForegroundColor Green