APT-атаки націлюються на уряд Індії з використанням SHEETCREEP, FIREPOWER і MAILCREEP | Частина 2
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Звіт охоплює операцію Sheet Attack, в рамках якої були розгорнуті три спеціально створених бекдори—SHEETCREEP, FIREPOWER та MAILCREEP—для компрометації індійських урядових організацій. Імпланти покладалися на легітимні хмарні платформи для командування та управління, включаючи Google Sheets, Firebase Realtime Database і Microsoft Graph API, щоб діяльність зливалася з нормальним трафіком SaaS. Аналіз також відзначає артефакти, які свідчать про використання розробниками генеративного ШІ для допомоги у створенні коду. Кампанія оцінюється як імовірно пов’язана з підгрупою APT36, що базується в Пакистані.
Розслідування
ThreatLabz провів як динамічний, так і статичний аналіз бекдорів, задокументував методи персистентності, робочі процеси C2 і поведінку ексфільтрації даних. Команда також здійснила картування інфраструктури підтримки, спостерігала за географічною і User-Agent–базованою фільтрацією, і захопила індикатори на рівні коду, які свідчать про генерацію джерела за допомогою ШІ.
Пом’якшення
Застосовуйте багатошарові методи виявлення для підозрілих PDF/LNK ланцюгів доставки та контролюйте заплановані завдання, які запускають виконання PowerShell або VBS. Застосовуйте строгі зовнішні обмеження і моніторинг аномалій для хмарних сервісів, які зазвичай зловживаються як C2, включаючи Google Sheets, Firebase та Microsoft Graph. Використовуйте блокування на основі хешів для відомих корисних навантажень і блокуйте ідентифіковані зловмисні домени та IP-адреси.
Відповідь
Після виявлення ізолюйте кінцеву точку, завершіть приховану діяльність cmd.exe та PowerShell, видаліть відповідні заплановані завдання і видаліть бекдор бінарні файли. Збережіть і перегляньте логи C2 на основі Google Sheets і артефакти Firebase, потім проведіть полювання у середовищі на додаткові вузли, які демонструють ті ж індикатори.
Потік Атаки
Виявлення
Завантаження або вивантаження через PowerShell (через cmdline)
Перегляд
Домен Microsoft Graph API, розв’язаний незвичайним процесом (через dns_query)
Перегляд
Підозрілі файли в загальному профілі користувача (через подія файлу)
Перегляд
Спроба виконання підозрілого GNU Wget (через cmdline)
Перегляд
Виклик підозрілих .NET методів з PowerShell (через powershell)
Перегляд
Підозріле виконання з загального профілю користувача (через creation процесу)
Перегляд
Можливе введення/виведення даних/C2 через сторонні сервіси/інструменти (через dns)
Перегляд
Підозрілі вилучені файли з архіву (через подія файлу)
Перегляд
IOC (SourceIP) для виявлення: APT-атаки націлені на уряд Індії з використанням SHEETCREEP, FIREPOWER і MAILCREEP | Частина 2
Перегляд
IOC (HashMd5) для виявлення: APT-атаки націлені на уряд Індії з використанням SHEETCREEP, FIREPOWER і MAILCREEP | Частина 2
Перегляд
IOC (DestinationIP) для виявлення: APT-атаки націлені на уряд Індії з використанням SHEETCREEP, FIREPOWER і MAILCREEP | Частина 2
Перегляд
IOC (HashSha1) для виявлення: APT-атаки націлені на уряд Індії з використанням SHEETCREEP, FIREPOWER і MAILCREEP | Частина 2
Перегляд
IOC (HashSha256) для виявлення: APT-атаки націлені на уряд Індії з використанням SHEETCREEP, FIREPOWER і MAILCREEP | Частина 2
Перегляд
Виявлення команд PowerShell для розгортання бекдору SHEETCREEP та FIREPOWER [Windows PowerShell]
Перегляд
Виявлення C2-комунікації бекдору SHEETCREEP та FIREPOWER [Windows мережеве з’єднання]
Перегляд
Моделювання виконання
Передумова: Перевірка готовності телеметрії та базового рівня має пройти.
Обґрунтування: В цьому розділі викладено точне виконання техніки противника (TTP), розробленої для запуску правила виявлення. Команди та наративи МАЮТЬ безпосередньо відображати визначені TTP та прагнути генерувати точну телеметрію, очікувану логікою виявлення. Абстрактні або нерелевантні приклади призведуть до помилкової діагностики.
-
Атака наративу та команди:
- Інсценувати зловмисний PNG:
- Нападник створює PNG-файл (
details.png), який насправді містить скомпільовану потокову байтову збірку .NET, але із перевернутими байтами, щоб уникнути статичного аналізу.
- Нападник створює PNG-файл (
- Запустіть PowerShell у прихованому режимі для завантаження збірки:
- Нападник запускає PowerShell з
-WindowStyle Hidden -Commandта одною лінією, яка читає перевернуті байти, відновлює правильний порядок, завантажує збірку через[System.Reflection.Assembly]::Load(), і запускає відомий вхідний пункт (Task10.Program::MB()).
- Нападник запускає PowerShell з
- Альтернативне розгортання вогневої потужності на основі LNK:
- Створено спеціально
.lnkярлик виконуєpowershell.exeз--headless -e(закодований сценарій) для отримання і запуску віддаленого PowerShell бекдору.
- Створено спеціально
Ці кроки точно відповідають рядкам, які шукає правило Sigma, що гарантує спрацьовування попередження.
- Інсценувати зловмисний PNG:
-
Сценарій регресійного тестування:
# ------------------------------------------------- # Імітація корисного навантаження SHEETCREEP – відтворює точну командну лінію # ------------------------------------------------- # 1. Створіть фіктивну .NET збірку (простий C# hello world) та скомпілюйте її $source = @" using System; public class Task10 { public static void MB() { Console.WriteLine("Payload executed"); } } "@ $tempDir = "$env:TEMPsheetcreep" New-Item -ItemType Directory -Force -Path $tempDir | Out-Null $csFile = Join-Path $tempDir "Task10.cs" $dllFile = Join-Path $tempDir "Task10.dll" $source | Set-Content -Path $csFile -Encoding UTF8 # Скомпілюйте за допомогою csc (припускається, що SDK .NET Framework встановлено) $cscPath = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" & $cscPath /target:library /out:$dllFile $csFile # 2. Прочитайте байти DLL, переверніть їх і запишіть до .png файлу $bytes = [IO.File]::ReadAllBytes($dllFile) $revBytes = $bytes[($bytes.Length-1)..0] $pngPath = Join-Path $tempDir "details.png" [IO.File]::WriteAllBytes($pngPath, $revBytes) # 3. Виконайте точну зловмисну командну лінію PowerShell (це викличе правило) $maliciousCmd = '-WindowStyle Hidden -Command "$b=[IO.File]::ReadAllBytes(''details.png'');' + '([System.Reflection.Assembly]::Load([byte[]]($b[($b.Length-1)..0])).GetType("Task10.Program")::MB())"' Start-Process -FilePath "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" ` -ArgumentList $maliciousCmd ` -WindowStyle Hidden ` -NoNewWindow # Очистити (опціонально, виконайте після перевірки) # Remove-Item -Recurse -Force $tempDir -
Команди очищення:
# Видаліть тимчасові файли та каталоги, створені для тесту $tempDir = "$env:TEMPsheetcreep" if (Test-Path $tempDir) { Remove-Item -Recurse -Force $tempDir }