Операція “Прихований Доступ”: Оперативний фішинг на базі файлів LNK, спрямований на судовий сектор Аргентини для розгортання прихованого RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Seqrite виявила кампанію spear-phishing, яка розповсюджує озброєний ярлик LNK, пов’язаний зі шкідливим завантажувачем BAT. Завантажувач завантажує троян віддаленого доступу на основі Rust з репозиторію GitHub, який виконує широкі перевірки проти аналізу і встановлює стійкий C2-канал зв’язку. Кампанія націлена на судові інститути Аргентини та пов’язані з ними урядові органи. Ланцюг зараження використовує PDF-декої, що виглядають легітимно, для збільшення взаємодії з користувачем.
Розслідування
Розслідування проаналізувало ZIP-навантаження, що містить файли LNK, BAT і PDF, зворотню розробку команди PowerShell, яка використовується для виклику завантажувача BAT, і розібрало поведінку RAT, включаючи перевірки проти ВМ, збирання інформації про систему, механізми стійкості та зашифровані команди C2. Команда зіставила спостережувані поведінки з техніками ATT&CK і виявила використання маскування, обходу політики виконання та методів fallback C2.
Пом’якшення
Впровадьте суворий контроль за ярликами та примусьте обмеження політики виконання для PowerShell. Блокуйте вихідні з’єднання на неавторизовані репозиторії GitHub і контролюйте створення ключів реєстру Run або запланованих завдань з підозрілими іменами. Впровадьте підписи для обходу виявлення ВМ та забезпечте виконання з найменшими привілеями для користувачів, які обробляють PDF-документи.
Відповідь
Сповіщайте про створення шкідливого ярлика LNK або виконання пов’язаної команди PowerShell. Шукайте наявність msedge_proxy.exe і його пов’язані записи стійкості в реєстрі. Ізолюйте уражені хости, зупиніть шкідливі процеси і виправте будь-які створені заплановані завдання або ключі реєстру. Проведіть повний форензичний огляд на можливе ексфільтрацію даних.
“graph TB %% Class definitions classDef action fill:#99ccff classDef artifact fill:#cccccc classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes artifact_email_zip[“<b>Артефакт</b> – Шкідливий ZIP файл в електронній пошті<br /><b>Зміст</b>: Містить LNK-файл та оманливий PDF.”] class artifact_email_zip artifact artifact_lnk[“<b>Артефакт</b> – LNK файл (info/juicio-grunt-posting.pdf.lnk)<br /><b>Техніка</b>: T1027.012 Маскування іконки”] class artifact_lnk artifact attack_initial_access[“<b>Дія</b> – Spearphishing Attachment T1566.001<br /><b>Опис</b>: Доставка шкідливого ZIP через електронну пошту.”] class attack_initial_access action attack_user_execution[“<b>Дія</b> – Виконання шкідливого файлу T1204.002<br /><b>Опис</b>: Користувач натискає на LNK, маскується під PDF.”] class attack_user_execution action defense_evasion_icon[“<b>Дія</b> – Маскування іконки LNK T1027.012<br /><b>Опис</b>: LNK використовує іконку PDF для маскування.”] class defense_evasion_icon action execution_powershell[“<b>Дія</b> – PowerShell T1059.001 & Windows Command Shell T1059.003<br /><b>Опис</b>: LNK запускає PowerShell з обходом і прихованим вікном, виконуючи завантажувач BAT.”] class execution_powershell action defense_evasion_obfusc[“<b>Дія</b> – Obfuscated/Encoded Commands T1027<br /><b>Опис</b>: Команди PowerShell і C2 повідомлення закодовані в Base64u2011.”] class defense_evasion_obfusc action artifact_bat[“<b>Артефакт</b> – health-check.bat<br /><b>Призначення</b>: Завантажує та зберігає msedge_proxy.exe.”] class artifact_bat artifact malware_rust_rat[“<b>Шкідливе ПЗ</b> – msedge_proxy.exe (Rust RAT)<br /><b>Техніки</b>: Вихилення від віртуалізації/пісочниць T1497.001, Обхід налагоджувача T1622, Ключі запуску реєстру T1547.001, Заплановане завдання T1053.005”] class malware_rust_rat malware defense_evasion_sandbox[“<b>Дія</b> – Вихилення від віртуалізації/пісочниць T1497.001 & Обхід налагоджувача T1622<br /><b>Опис</b>: Перевіряє реєстр, драйвери, MAC-префікси, папки пісочниць, IsDebuggerPresent.”] class defense_evasion_sandbox action persistence_registry[“<b>Дія</b> – Ключі запуску реєстру T1547.001 / Папка автозапуску<br /><b>Опис</b>: Створює записи HKCU Run для постійності.”] class persistence_registry action persistence_task[“<b>Дія</b> – Заплановане завдання T1053.005<br /><b>Опис</b>: Реєструє заплановане завдання через schtasks з відкладеним виконанням.”] class persistence_task action discovery_system[“<b>Дія</b> – Виявлення системної інформації T1082<br /><b>Опис</b>: Збирає ім’я хоста, ім’я користувача, версію ОС, рівень привілеїв.”] class discovery_system action discovery_process[“<b>Дія</b> – Виявлення процесів T1057<br /><b>Опис</b>: Запускає tasklist для виявлення засобів аналізу і процесів ВМ.”] class discovery_process action collection_local[“<b>Дія</b> – Дані з локальної системи T1005<br /><b>Опис</b>: Збирає файли для ексфільтрації.”] class collection_local action c2_app_layer[“<b>Дія</b> – Протокол прикладного рівня T1071 & Шифрований канал T1573<br /><b>Опис</b>: Комунікує з C2 сервером через HTTP(S) з використанням зашифрованих пакунків.”] class c2_app_layer action c2_encoding[“<b>Дія</b> – Кодування даних (Base64) T1132.001<br /><b>Опис</b>: Усі команди C2 закодовані в Base64u2011.”] class c2_encoding action exfiltration[“<b>Дія</b> – Ексфільтрація через C2 канал T1041<br /><b>Опис</b>: Надсилає зібрані дані по тому ж C2 каналу.”] class exfiltration action %% Flow connections artifact_email_zip u002du002d>|містить| artifact_lnk artifact_email_zip u002du002d>|доставляє| attack_initial_access attack_initial_access u002du002d>|веде до| attack_user_execution attack_user_execution u002du002d>|запускає| defense_evasion_icon defense_evasion_icon u002du002d>|веде до| execution_powershell execution_powershell u002du002d>|виконує| artifact_bat artifact_bat u002du002d>|завантажує| malware_rust_rat malware_rust_rat u002du002d>|виконує| defense_evasion_sandbox defense_evasion_sandbox u002du002d>|встановлює| persistence_registry persistence_registry u002du002d>|додає| persistence_task persistence_task u002du002d>|включає| discovery_system discovery_system u002du002d>|передає| discovery_process discovery_process u002du002d>|збирає| collection_local collection_local u002du002d>|відправляє до| c2_app_layer c2_app_layer u002du002d>|використовує| c2_encoding c2_encoding u002du002d>|транспортує| exfiltration %% Apply classes class artifact_email_zip,artifact_lnk,artifact_bat artifact class attack_initial_access,attack_user_execution,defense_evasion_icon,execution_powershell,defense_evasion_obfusc,defense_evasion_sandbox,persistence_registry,persistence_task,discovery_system,discovery_process,collection_local,c2_app_layer,c2_encoding,exfiltration action class malware_rust_rat malware “
Атаковий потік
Виявлення
Microsoft Edge Виконуваний двійковий файл запущено поза Program Files (через cmdline)
Перегляд
Підозрілі перевірки проти ВМ через артефакти віртуалізації (через cmdline)
Перегляд
Windows Двійковий файл було завантажено з Github (через проксі)
Перегляд
Можливе перерахування системи (через cmdline)
Перегляд
IOC (SourceIP) для виявлення: Операція Прихований Доступ: Озброєний LNK-Based Spear-Phishing, що націлений на судовий сектор Аргентини для розгортання прихованого RAT
Перегляд
IOC (DestinationIP) для виявлення: Операція Прихований Доступ: Озброєний LNK-Based Spear-Phishing, що націлений на судовий сектор Аргентини для розгортання прихованого RAT
Перегляд
IOC (HashMd5) для виявлення: Операція Прихований Доступ: Озброєний LNK-Based Spear-Phishing, що націлений на судовий сектор Аргентини для розгортання прихованого RAT
Перегляд
Озброєний LNK-Based Spear-Phishing з виконанням PowerShell [Windows Powershell]
Перегляд
Виявлення виконання msedge_proxy.exe [Створення процесу Windows]
Перегляд
Виконавче резюме
- ID тестового випадку: TC-20260120-A9Z3K
- TTPs: T1059.001 (PowerShell), T1059.003 (Windows Command Shell), T1027 (Сховані/Збережені файли)
- Зведення логіки правила виявлення: Виявляє створення процесу PowerShell, де командний рядок містить “-ep bypass -w hidden -f health-check.bat”, що вказує на приховане виконання bat-файлу через PowerShell.
- Мова/Формат правила виявлення: Sigma (YAML)
- Цільове середовище безпеки: Windows 10/Server 2019, увімкнено журналювання створення процесів (Ідентифікатор події 4688), загальний SIEM/EDR (наприклад, Elastic, Splunk)
- Оцінка стійкості (1-5): 2
- Обґрунтування: Правило дуже специфічне до точного імені bat файлу і точної послідовності прапорців; зловмисник може легко обійти його, перейменувавши навантаження, змінивши послідовність прапорців або використовуючи альтернативні методи виконання, зберігаючи той же шкідливий намір.
- Ключові знахідки: Правило спрацьовує надійно, коли використовується точний командний рядок, але його можна обійти з мінімальними змінами (наприклад, інше ім’я скрипта, використання
-EncodedCommand). - Рекомендація: Узагальнити виявлення для пошуку виконання PowerShell з
-ExecutionPolicy Bypassand-WindowStyle Hiddenнезалежно від імені скрипта, і доповнити поведінковими індикаторами (наприклад, вихідні мережеві з’єднання відразу після виконання).
Середовище симуляції та контекст
-
TTPs під тестом:
- T1059.001: PowerShell – використання PowerShell для виконання шкідливих скриптів.
- T1059.003: Windows Command Shell – виконання bat-файлу з PowerShell.
- T1027: Сховані/Збережені файли – доставка шкідливого bat-навантаження, за шановною назвою.
-
Контекст і релевантність TTP:
- T1059.001 безпосередньо згадується у фокусі виявлення на
powershell.exe. - T1059.003 застосовується, коли PowerShell команда запускає
health-check.bat. - T1027 є актуальною, тому що bat-файл часто обфускований або маскується (наприклад, перейменовується в таку, що здається легітимною, програму перевірки здоров’я) для уникнення примітивних фільтрів типу файлу.
- T1059.001 безпосередньо згадується у фокусі виявлення на
-
Цільове середовище:
- OS: Windows 10 / Windows Server 2019
- Логування: Журнал подій безпеки Windows – створення процесу (Ідентифікатор події 4688) з повним
CommandLineзахоплення увімкнено. - Стек безпеки: Загальний SIEM/EDR (наприклад, Elastic Stack, Splunk, Microsoft Sentinel).
Телеметрія і базове передпольотне тестування
Обґрунтування: перед симуляцією атаки ми повинні переконатися, що цільовий хост налаштований на створення необхідних журналів, що ці журнали надходять до SIEM, і що правило виявлення не спрацьовує на нешкідливу активність. Без цієї валідації будь-який результат тесту є ненадійним.
-
1. Інструкції з конфігурації телеметрії:
- Відкрити Редактор локальної групової політики (
gpedit.msc). - Перехід до Конфігурація комп’ютера → Адміністративні шаблони → Система → Перевірка права на створення процесу.
- Увімкнути “Включити командний рядок у події створення процесу”.
- Застосувати політику і виконати
gpupdate /force. - Переконайтеся, що Ідентифікатор події 4688 зафіксовано в каналі Безпека (каналом)
wevtutil qe Security /q:"*[System[EventID=4688]]" /f:text).
- Відкрити Редактор локальної групової політики (
-
2. Валідація інгестації та бази:
-
Дія (нешкідлива телеметрія): Виконати команду PowerShell, яка імітує структуру, але використовує інше ім’я bat, і яка повинна not спричинити спрацьовування виявлення.
# Нешкідлива базова команда – не повинна співпадати з правилом powershell.exe -ep bypass -w hidden -f benign.bat -
Запит на валідацію (Інгестація): Використовуйте запит SIEM, щоб підтвердити, що нешкідлива команда була зафіксована і не not відповідає правилу. Приклад у Kusto Query Language (KQL):
// Перевірити інгестацію нешкідливого виконання PowerShell SecurityEvent | where EventID == 4688 | where Process == "powershell.exe" | where CommandLine contains "-ep bypass -w hidden -f benign.bat"
-
Виконання симуляції
Передумова: Телеметрія і базове передпольотне тестування повинні були пройти.
Обґрунтування: Цей розділ деталізує точне виконання техніки супротивника (TTP), що призначена для виклику правил виявлення. Команди та розповідь МУЮТЬ безпосередньо відображати ідентифіковані TTP та прагнуть генерувати точну телеметрию, очікувану логікою виявлення. Абстрактні або нерелевантні приклади призводять до неправильного діагнозу.
-
Нападовий наратив та команди:
-
Початковий компроміс: Зловмисник надсилає spear-phishing електронний лист з озброєним
.lnkярликом, що націлений на юридичного працівника. Ярлик вказує на команду PowerShell, що запускається з-ExecutionPolicy Bypassі прихованим вікном, щоб уникнути підозри. -
Потік виконання: Коли користувач клацає на ярлик, Windows запускає наступну команду, яка запускає
health-check.bat. Bat-файл містить реальне шкідливе навантаження (наприклад, PowerShell завантажувач, що завантажує RAT).powershell.exe -ep bypass -w hidden -f health-check.bat -
Доставка навантаження:
health-check.batвиконує тихий HTTP GET на шкідливий C2, записує навантаження в%TEMP%і виконує його.
-
-
Скрипт регресійного тесту: Скрипт нижче відтворює точну телеметрію шляхом створення
health-check.batз нешкідливим вмістом (щоб зберегти тест у безпеці) і потім викликає команду PowerShell.# ------------------------------------------------- # Скрипт симуляції – виконання озброєного LNK PowerShell # ------------------------------------------------- # 1. Створіть фіктивний health-check.bat (нешкідливий для тестування) $batPath = "$env:TEMPhealth-check.bat" Set-Content -Path $batPath -Value '@echo off & echo Симульоване навантаження виконано' -Encoding ASCII # 2. Виконайте PowerShell з точними прапорцями та іменем скрипта $psCommand = "powershell.exe -ep bypass -w hidden -f `"$batPath`"" Write-Host "Виконується: $psCommand" Start-Process -FilePath "powershell.exe" -ArgumentList "-ep", "bypass", "-w", "hidden", "-f", $batPath -NoNewWindow # 3. Зачекайте кілька секунд, щоб гарантувати генерацію журналів Start-Sleep -Seconds 5 # ------------------------------------------------- -
Команди очищення: Видаліть тестовий bat-файл і будь-які залишкові процеси.
# Очистіть тренувальний health-check.bat Remove-Item -Path "$env:TEMPhealth-check.bat" -ErrorAction SilentlyContinue # Переконайтеся, що ніякі зайві екземпляри PowerShell з тесту не залишилися Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Stop-Process -Force