Кібератаки APT на уряд Індії із використанням GOGITTER, GITSHELLPAD та GOSHELL | Частина 1
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Zscaler ThreatLabz виявила дві кампанії – Gopher Strike та Sheet Attack, які здійснює група APT, пов’язана з Пакистаном, що націлена на індійські державні організації. Діяльність включає введення інструментарію на базі Golang, зокрема GOGITTER, GITSHELLPAD та GOSHELL, для розгортання навантажень, використання приватних репозиторіїв GitHub для C2 та розгортання маяка Cobalt Strike. Початковий доступ досягається шляхом спиарфішинг-розсилки PDF, що заманює жертв завантажувати шкідливі ISO файли. Оператори застосовують кілька методів уникнення, включаючи перевірки середовища, додавання файлів та збереження запланованих завдань.
Розслідування
Аналіз показав, що GOGITTER перевіряє наявність скрипта windows_api.vbs, створює його, якщо він відсутній, і реєструє заплановане завдання для його запуску кожні 50 хвилин. GITSHELLPAD використовує GitHub REST API для отримання команд і ексфільтрації даних, тоді як GOSHELL умовно завантажує підготовлений маяк Cobalt Strike лише на вибраних хостах. Інструменти вбудовують жорстко закодовані URL-адреси та рядки клієнтського агента для перешкоди автоматизованому аналізу та пісочниці. Кампанії також використовували приватні репозиторії GitHub для розміщення підтримуючих навантажень, таких як adobe_update.zip.
Пом’якшення
Блокуйте виконання ненадійних/непідписаних бінарних файлів Golang та впроваджуйте суворий білий список і перевірку для створення запланованих завдань. Відстежуйте вихідний трафік на відомі шкідливі домени та ресурси GitHub, що використовуються як C2, включаючи аномальне використання GitHub API з не розробницьких кінцевих точок. Посилення безпеки електронної пошти шляхом сканування PDF-вкладень на предмет обфускації та блокування посилань, які перенаправляють на завантаження ISO. Виявлення на кінцевих точках мають сигналізувати про створення windows_api.vbs та періодичні виконання завдань, що відповідають інтервалам в 50 хвилин.
Відповідь
Якщо виявлено будь-які IOC, ізолюйте кінцеву точку, припиніть і видаліть заплановане завдання, та видаліть пов’язані зі шкідницею артефакти. Виконайте судову перевірку діяльності GitHub на основі C2, збережіть журнали виконання команд і видаліть, де це можливо, будь-який ексфільтрований чи завантажений контент. Перезавантажте облікові дані для уражених облікових записів, проведіть пошук бічного пересування та оновіть виявлення з вилученими індикаторами для ідентифікації пов’язаної діяльності в усій середовищі.
graph TB %% Class definitions classDef action fill:#99ccff classDef technique fill:#b3e5fc classDef tool fill:#ffe0b2 classDef malware fill:#ffcccb classDef process fill:#d5f5e3 classDef operator fill:#ff9900 %% Nodes – Attack Steps step1_initial_access[“<b>Техніка</b> – T1204.002 Виконання Користувачем: Шкідливий Файл<br/><b>Опис</b>: Користувач запускає шкідливий файл, доставлений за допомогою соціальної інженерії.<br/><b>Деталі</b>: Spear-phishing PDF, замаскований під оновлення Adobe Acrobat; натискання фальшивої кнопки завантажує ISO з корисним навантаженням.”] class step1_initial_access technique step2_recon[“<b>Техніка</b> – T1593.003 Пошук у Відкритих Вебсайтах/Доменах: Репозиторії Коду<br/><b>Опис</b>: Зловмисник збирає інформацію з публічних сайтів хостингу коду.<br/><b>Деталі</b>: Зловмисники створюють приватні репозиторії GitHub, які згодом використовуються для C2 та корисних навантажень.”] class step2_recon technique step3_exec_vbscript[“<b>Техніка</b> – T1059.005 Інтерпретатор Команд і Скриптів: Visual Basic<br/><b>Опис</b>: Виконує скрипти Visual Basic для запуску команд.<br/><b>Деталі</b>: GOGITTER завантажує windows_api.vbs та запускає його для отримання подальших команд із веб-сервера.”] class step3_exec_vbscript technique step4_exec_cmd[“<b>Техніка</b> – T1059.003 Інтерпретатор Команд і Скриптів: Командний Рядок Windows<br/><b>Опис</b>: Використовує нативний командний рядок Windows для виконання.<br/><b>Деталі</b>: GITSHELLPAD виконує команди net user, systeminfo, tasklist та curl.”] class step4_exec_cmd technique step5_persistence[“<b>Техніка</b> – T1053.005 Заплановане Завдання/Робота: Заплановане Завдання<br/><b>Опис</b>: Створює заплановане завдання для періодичного виконання шкідливого коду.<br/><b>Деталі</b>: GOGITTER створює завдання з назвою MicrosoftEdge_ConfigurationUpdate_<random>, яке запускає VBScript кожні 50 хвилин.”] class step5_persistence technique step6_masquerade[“<b>Техніка</b> – T1036.008 Маскування: Маскування Типу Файлу та T1036.007 Подвійне Розширення Файлу<br/><b>Опис</b>: Файли мають назви, що виглядають легітимно та приховують справжній тип.<br/><b>Деталі</b>: Скинуті файли з назвами windows_api.vbs, adobe_update.zip, edgehost.exe.”] class step6_masquerade technique step7_obfuscation[“<b>Техніка</b> – T1027.015 Обфусковані Файли або Інформація: Стиснення<br/><b>Опис</b>: Використовує стиснення для приховування шкідливих корисних навантажень.<br/><b>Деталі</b>: Корисні навантаження запаковані в архіви ZIP/RAR, розміщені у приватному репозиторії GitHub.”] class step7_obfuscation technique step8_account_disc[“<b>Техніка</b> – T1087.001 Виявлення Облікових Записів: Локальний Обліковий Запис<br/><b>Опис</b>: Перелічує локальні облікові записи користувачів у системі.<br/><b>Деталі</b>: GITSHELLPAD виконує \”net user\” для отримання списку облікових записів.”] class step8_account_disc technique step9_network_disc[“<b>Техніка</b> – T1016.001 Виявлення Мережевої Конфігурації Системи: Виявлення Підключення до Інтернету<br/><b>Опис</b>: Перевіряє підключення до Інтернету та доступні C2-ендпоїнти.<br/><b>Деталі</b>: Використовує curl для перевірки доступності доменів зловмисника.”] class step9_network_disc technique step10_collection[“<b>Техніка</b> – T1560.002 Архівація Зібраних Даних: Архівація через Бібліотеку<br/><b>Опис</b>: Стискає зібрані дані в архіви для подальшого використання.<br/><b>Деталі</b>: Інструменти після компрометації доставляються у вигляді ZIP/RAR-архівів.”] class step10_collection technique step11_c2[“<b>Техніка</b> – T1102.001 Веб-Сервіс: Dead Drop Resolver<br/><b>Опис</b>: Обмінюється даними з C2 через веб-сервіс, що діє як dead-drop.<br/><b>Деталі</b>: Використовує GitHub REST API для завантаження info.txt та опитування command.txt.”] class step11_c2 technique step12_exfil[“<b>Техніка</b> – T1567.001 Екcфільтрація через Веб-Сервіс: Екcфільтрація до Репозиторію Коду<br/><b>Опис</b>: Екcфільтрує дані шляхом завантаження їх до репозиторію коду.<br/><b>Деталі</b>: Зібраний info.txt завантажується до репозиторію GitHub, контрольованого зловмисником.”] class step12_exfil technique %% Connections – Attack Flow step1_initial_access –>|призводить_до| step2_recon step2_recon –>|призводить_до| step3_exec_vbscript step3_exec_vbscript –>|призводить_до| step4_exec_cmd step4_exec_cmd –>|призводить_до| step5_persistence step5_persistence –>|призводить_до| step6_masquerade step6_masquerade –>|призводить_до| step7_obfuscation step7_obfuscation –>|призводить_до| step8_account_disc step8_account_disc –>|призводить_до| step9_network_disc step9_network_disc –>|призводить_до| step10_collection step10_collection –>|призводить_до| step11_c2 step11_c2 –>|призводить_до| step12_exfil
Потік атаки
Виявлення
Можлива спроба комунікації по IP Lookup Domain (через dns)
Переглянути
Підозрілий процес використовує URL в командному рядку (via cmdline)
Переглянути
Підозріле використання CURL (via cmdline)
Переглянути
Можливе вивчення системи (via cmdline)
Переглянути
Можливе вивчення облікових записів або груп (via cmdline)
Переглянути
Підозрілі вилучені файли з архіву (via file_event)
Переглянути
Можливе виявлення конфігурації системної мережі (via cmdline)
Переглянути
IOC (HashSha1) для виявлення: Атаки APT на індійський уряд із використанням GOGITTER, GITSHELLPAD та GOSHELL | Частина 1
Переглянути
IOC (HashMd5) для виявлення: Атаки APT на індійський уряд із використанням GOGITTER, GITSHELLPAD та GOSHELL | Частина 1
Переглянути
IOC (HashSha256) для виявлення: Атаки APT на індійський уряд із використанням GOGITTER, GITSHELLPAD та GOSHELL | Частина 1
Переглянути
Виявлення бекдору GITSHELLPAD і команд очищення [Створення процесів Windows]
Переглянути
Виявлення завантажувача GOGITTER та комунікації C2 [Мережеве підключення Windows]
Переглянути
Виконання симуляції
Передумова: Телеметрія & Передпольотна перевірка Базової лінії повинна пройти.
Обґрунтування: Цей розділ детально описує точне виконання техніки супротивника (TTP), призначеної для спрацьовування правила виявлення. Команди та опис ПОВИННІ прямо відображати виявлені TTP і прагнути створити саме ту телеметрію, яку очікує логіка виявлення. Абстрактні або не пов’язані приклади призведуть до невірного діагностування.
-
Сценарій атаки та команди:
Група APT розгортає бекдор GITSHELLPAD (edgehost.exe) на скомпрометованому Windows-хості. Щоб зливатися зі звичайною системною поведінкою, зловмисник запускає бекдор через командний шел Windows (cmd /c). Після виконання корисного навантаження (наприклад, завантаження додаткових модулів), бекдор виконує “очищення”, зупиняючи власний процес за допомогоюtaskkill /F /PID <PID>. Обидві дії генерують події створення процесів, які містять ім’я бінарника та необхідні підрядки командного рядка, відповідно до правила Sigma. -
Сценарій регресійного тесту:
# ------------------------------------------------- # Симуляція виконання бекдору GITSHELLPAD та очищення # ------------------------------------------------- # 1. Скинути файл-заглушку edgehost.exe (будь-який нешкідливий виконуваний файл) $src = "$env:SystemRootSystem32notepad.exe" $dst = "$env:TEMPedgehost.exe" Copy-Item -Path $src -Destination $dst -Force # 2. Запустіть edgehost.exe через cmd /c (відповідає шаблону cmd_cmd) $proc = Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$dst`"" -PassThru # 3. Зачекайте кілька секунд, щоб переконатися, що процес живий Start-Sleep -Seconds 5 # 4. Очищення: зупинити процес edgehost.exe за допомогою taskkill (відповідає шаблону taskkill_cmd) $pid = $proc.Id cmd /c "taskkill /F /PID $pid" # 5. Видалити скинутий файл Remove-Item -Path $dst -Force -
Команди очищення:
# Переконайтесь, що всі мимовільні екземпляри edgehost.exe завершено Get-Process -Name "edgehost" -ErrorAction SilentlyContinue | Stop-Process -Force # Видаліть тимчасовий бінарник, якщо ще присутній $tempPath = "$env:TEMPedgehost.exe" if (Test-Path $tempPath) { Remove-Item $tempPath -Force }