Код PyRAT: Внутрішня структура бекдору на основі Python
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)
Перегляд
Архів було створено у папці Linux Tmp (через file_event)
Перегляд
Можливі Точки Стійкості [ASEPs – Hive Software/NTUSER] (через cmdline)
Перегляд
Ймовірна Спроба Видалення Ключів Реєстру (через process_creation)
Перегляд
Ймовірна Спроба Модифікації Файлів Autostart XDG Linux (через cmdline)
Перегляд
Небезпечні Дозволи для Бінарного/Сценарного/Папкового об’єкта було задано (через cmdline)
Перегляд
Індикатори компрометації (HashMd5) для виявлення: Код PyRAT: RAT на основі Python та його Інтернали
Перегляд
Стійкість Windows через Ключ Run поточного користувача [Событие реєстру Windows]
Перегляд
Виявлення Стійкості PyRAT на Linux [Створення процесів Linux]
Перегляд
Виконання симуляції
Передумова: Повинно було пройти Протестування Телеметрії та Базових Даних.
Обґрунтування: У цьому розділі детально описується точне виконання методики противника (TTP), призначеної для запуску правила виявлення. Команди та опис ПОВИННІ безпосередньо відображати ідентифіковані TTP та прагнути генерувати саме ту телеметрію, яку очікує логіка виявлення.
-
Сценарій атак та Команди:
Атакуючий отримав компрометовані SSH облікові дані для звичайного користувача. Після входу вони виконують живий‑за‑рахунок‑землі сценарій, який:
- Записує шкідливий вантаж ELF (
agent-svc.pyc) у домашній каталог користувача, маскуючи його як байткод Python, хоча насправді це ELF-бінарник. - Копіює замаскований інструмент пакета Debian іменований
dpkgnу/usr/local/bin, надаючи йому права виконання. Інструмент є простою оболонкою, яка просто запускає вантаж ELF. - Встановлює запис робочого столу автоматичного завантаження (
dpkgn.desktop) у~/.config/autostartщоб вантаж запускався при кожному запуску графічної сесії. - Встановлює відповідні дозволи щоб уникнути негайного підозрювань.
Комбіновані події з файлами (
agent-svc.pycanddpkgn) задовольняють першу умову правила, тоді як.desktopфайл задовольняє другу умову. - Записує шкідливий вантаж ELF (
-
Скрипт регресійного тестування:
#!/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."