SOC Prime Bias: Середній

29 Jan 2026 15:23 UTC

Код PyRAT: Внутрішня структура бекдору на основі Python

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Стежити
Код PyRAT: Внутрішня структура бекдору на основі Python
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Стаття профілює PyRAT, троян віддаленого доступу на основі Python, упакований як ELF-бінарник за допомогою PyInstaller. Він працює на Linux та Windows, спілкується з сервером C2 через незашифрований HTTP і підтримує виконання команд, ексфільтрацію файлів, захоплення скріншотів та функцію самознищення. Стійкість реалізована через XDG autostart на Linux і ключ реєстру Run на Windows. У звіті наголошено, наскільки легкий цей інструмент і як легко його можуть перепрофілювати кіберзлочинці.

Дослідження

Дослідники видобули вбудований байткод Python за допомогою pyinstxtractor, декомпілювали модулі та ідентифікували основний клас Agent, який виконує відбиток хоста, генерацію UID, керування потоками та координацію C2. Статичний аналіз виявив ключові імпорти, імена файлів, взаємодію з реєстром та HTTP POST-endpoint, який використовується для маяків. Поведінкове тестування показало повний робочий процес: створення стійкості, виконання команд, перерахування файлів, операції завантаження/вивантаження, створення ZIP-архіву, захоплення скріншотів та необов’язкове очищення артефактів.

Пом’якшення

Моніторинг підозрілих .desktop файлів автозапуску, створених у профілях користувачів, та доповнень до ключа реєстру HKCURun з невідомими іменами виконуваних файлів. На мережевому рівні стежте за вихідним HTTP POST-трафіком до невідомих хостів, що націлюється на /api/{uid}/hello-endpoint. На кінцевих точках позначте невідомі ELF-бінарники, що містять вбудований Python-контент та аномальну поведінку процесів, таку як часте виконання підпроцесів.

Відповідь

Якщо виявлено, ізолюйте систему, зберіть зразок ELF та будь-які пов’язані .desktop файли, а також збережіть відповідний стан реєстру. Витягніть UID, адресу C2 та будь-які файли, передані під час виконання, як частину форензіки. Заблокуйте виявлену інфраструктуру C2, видаліть стійкість і виконайте повне очищення. Змініть облікові дані для облікових записів, які могли бути скомпрометовані.

Потік Атаки

Детекції

Можливе Самоусунення Шкідливого ПО або Операція Сховища Stderr (через cmdline)

Команда SOC Prime
28 січня 2026

Архів було створено у папці Linux Tmp (через file_event)

Команда SOC Prime
28 січня 2026

Можливі Точки Стійкості [ASEPs – Hive Software/NTUSER] (через cmdline)

Команда SOC Prime
28 січня 2026

Ймовірна Спроба Видалення Ключів Реєстру (через process_creation)

Команда SOC Prime
28 січня 2026

Ймовірна Спроба Модифікації Файлів Autostart XDG Linux (через cmdline)

Команда SOC Prime
28 січня 2026

Небезпечні Дозволи для Бінарного/Сценарного/Папкового об’єкта було задано (через cmdline)

Команда SOC Prime
28 січня 2026

Індикатори компрометації (HashMd5) для виявлення: Код PyRAT: RAT на основі Python та його Інтернали

Правила AI SOC Prime
28 січня 2026

Стійкість Windows через Ключ Run поточного користувача [Событие реєстру Windows]

Правила AI SOC Prime
28 січня 2026

Виявлення Стійкості PyRAT на Linux [Створення процесів Linux]

Правила AI SOC Prime
28 січня 2026

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

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

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

  • Сценарій атак та Команди:

    Атакуючий отримав компрометовані SSH облікові дані для звичайного користувача. Після входу вони виконують живий‑за‑рахунок‑землі сценарій, який:

    1. Записує шкідливий вантаж ELF (agent-svc.pyc) у домашній каталог користувача, маскуючи його як байткод Python, хоча насправді це ELF-бінарник.
    2. Копіює замаскований інструмент пакета Debian іменований dpkgn у /usr/local/bin, надаючи йому права виконання. Інструмент є простою оболонкою, яка просто запускає вантаж ELF.
    3. Встановлює запис робочого столу автоматичного завантаження (dpkgn.desktop) у ~/.config/autostart щоб вантаж запускався при кожному запуску графічної сесії.
    4. Встановлює відповідні дозволи щоб уникнути негайного підозрювань.

    Комбіновані події з файлами (agent-svc.pyc and dpkgn) задовольняють першу умову правила, тоді як .desktop файл задовольняє другу умову.

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

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 1. Deploy malicious ELF disguised as .pyc
    MALWARE_PATH="$HOME/agent-svc.pyc"
    echo "Creating fake ELF payload (dummy binary) ..."
    dd if=/dev/zero bs=1 count=1024 of="$MALWARE_PATH" status=none
    chmod +x "$MALWARE_PATH"
    
    # 2. Deploy fake Debian tool named dpkgn
    FAKE_TOOL="/usr/local/bin/dpkgn"
    echo "#!/usr/bin/env bash" | sudo tee "$FAKE_TOOL" > /dev/null
    echo "exec "$MALWARE_PATH" "$@"" | sudo tee -a "$FAKE_TOOL" > /dev/null
    sudo chmod +x "$FAKE_TOOL"
    
    # 3. Create autostart desktop entry
    AUTOSTART_DIR="$HOME/.config/autostart"
    mkdir -p "$AUTOSTART_DIR"
    DESKTOP_FILE="$AUTOSTART_DIR/dpkgn.desktop"
    cat > "$DESKTOP_FILE" <<EOF
    [Desktop Entry]
    Type=Application
    Exec=$FAKE_TOOL
    Hidden=false
    NoDisplay=false
    X-GNOME-Autostart-enabled=true
    Name=Package Manager
    Comment=System Update Service
    EOF
    
    echo "PyRAT persistence artifacts deployed."
  • Команди для очищення:

    #!/usr/bin/env bash
    set -euo pipefail
    
    # Remove malicious ELF
    rm -f "$HOME/agent-svc.pyc"
    
    # Remove fake tool
    sudo rm -f /usr/local/bin/dpkgn
    
    # Remove autostart entry
    rm -f "$HOME/.config/autostart/dpkgn.desktop"
    
    echo "Cleanup completed."