Meerkat

Meerkat — это набор модулей PowerShell, предназначенных для сбора артефактов и разведки оконечных точек на базе Windows без необходимости предварительно развертывать агент. Варианты использования включают первичный анализ инцидентов, охоту за угрозами, мониторинг базовых показателей, сравнение снимков состояния и многое другое.
Артефакты
- Принимайте данные с помощью вашей SIEM (Посмотрите репозиторий SIEM!)
Содержание
Быстрый старт
Требования
- Требуется PowerShell 5.0 или выше на «сканирующем» устройстве.
- Требуется PowerShell 3.0 или выше на целевых системах. Можно обеспечить обратную совместимость до PowerShell 2.0, заменив экземпляры "Get-CIMinstance" на "Get-WMIObject".
- Требуется доступ по WinRM.
Установка с помощью Git
В командной строке или консоли PowerShell введите следующее...
git clone "https://github.com/TonyPhipps/Meerkat" "C:\Program Files\WindowsPowerShell\Modules\Meerkat"
Для обновления...
cd C:\Program Files\WindowsPowerShell\Modules\Meerkat
git pull
Установка с помощью PowerShell
Скопируйте/вставьте это в консоль PowerShell
$Modules = "C:\Program Files\WindowsPowerShell\Modules\"
New-Item -ItemType Directory $Modules\Meerkat\ -force
Invoke-WebRequest https://github.com/TonyPhipps/Meerkat/archive/master.zip -OutFile $Modules\master.zip
Expand-Archive $Modules\master.zip -DestinationPath $Modules
Copy-Item $Modules\Meerkat-master\* $Modules\Meerkat\ -Force -Recurse
Remove-Item $Modules\Meerkat-master -Recurse -Force
Для обновления просто снова выполните тот же набор команд.
Функции также можно использовать, открыв файл .psm1 и скопировав всё его содержимое в консоль PowerShell.
Запуск Meerkat
Эта команда выведет результаты в папку C:\Users\ВашеИмя\Meerkat\
ПРИМЕЧАНИЕ: Следующие модули не вернут результатов при запуске без прав администратора
- AuditPolicy
- Drivers
- EventsLoginFailures
- Hotfixes
- RegistryMRU
- Registry
- Processes
- RecycleBin
Анализ
Методологии и методики анализа представлены на страницах Wiki.
Устранение неполадок
Установка модуля PowerShell
Если ваша система не загружает модули автоматически в вашем профиле, возможно, потребуется импортировать модуль вручную.
Import-Module C:\Program Files\WindowsPowerShell\Modules\Meerkat\Meerkat.psm1
Рекомендуется применить следующий подход, чтобы определить, где именно возникает проблема.
ТЕСТ 1 – РАБОТАЕТ ЛИ MEERKAT ЛОКАЛЬНО?
- Проверьте Meerkat на локальной системе
ТЕСТ 2 – РАБОТАЕТ ЛИ УДАЛЕННОЕ СКАНИРОВАНИЕ?
Примечание: Выполните этот тест с учетной записью, имеющей права локального администратора на целевой системе.
- Проверьте Meerkat на удаленной системе Windows
- Invoke-Meerkat -Computer RemoteName
ТЕСТ 3 – МОЖЕТЕ ЛИ ВЫ СОЗДАТЬ ЗАДАНИЕ ПЛАНИРОВЩИКА И MSA?
- Удалите все существующие задания планировщика, связанные с Meerkat
- Удалите все MSA, связанные с Meerkat
- Настройте файл Schedule-Meerkat.ps1, затем запустите его.
ТЕСТ 4 – РАБОТАЕТ ЛИ MEERKAT-TASK.PS1?
Примечание: Выполните этот тест с учетной записью, имеющей права локального администратора на целевой системе.
- Настройте файл Meerkat-Task.ps1 с помощью # ВАРИАНТ 1 (локальный хост)
- Запустите скрипт вручную.
ТЕСТ 5 – РАБОТАЮТ ЛИ ЗАДАНИЕ ПЛАНИРОВЩИКА И MSA?
- Запустите скрипт Meerkat-Task.ps1 через задания планировщика.
Если это не удается:
- Убедитесь, что WinRM включен на удаленном хосте
- Убедитесь, что MSA имеет права локального администратора на удаленном хосте
ТЕСТ 6 – РАБОТАЕТ ЛИ MEERKAT-TASK.PS1 УДАЛЕННО?
- Настройте файл Meerkat-Daily-Task.ps1 с помощью # ВАРИАНТ 3 (удаленный хост, ежедневно)
- Укажите удаленный хост в файле hosts.txt
- Запустите скрипт вручную с учетной записью, имеющей права локального администратора на удаленной системе.
ТЕСТ 7 – ИМЕЕТ ЛИ MSA СООТВЕТСТВУЮЩИЕ РАЗРЕШЕНИЯ НА УДАЛЕННЫХ ХОСТАХ?
- Настройте файл Meerkat-Task.ps1 с помощью # ВАРИАНТ 3 (удаленный хост, ежедневно)
- Укажите удаленный хост в файле hosts.txt
- Запустите скрипт Meerkat-Task.ps1 через задания планировщика.
ТЕСТ 8 – ВСЕ ЛИ ТЕПЕРЬ РАБОТАЕТ?
- Настройте файл Meerkat-Task.ps1 с помощью # ВАРИАНТ 2 (полностью автоматизированное сканирование домена)
- Запустите скрипт вручную с учетной записью, имеющей права локального администратора на удаленной системе.
- Запустите скрипт Meerkat-Task.ps1 через задания планировщика.
Добавление нового модуля
- Создайте новый файл .psm1, желательно скопировав существующий модуль со схожей логикой и используя его как отправную точку.
- Обновите имя модуля
- Используя поиск и замену, замените все вхождения имени шаблона
- Обновите разделы Synopsis, Description, Parameters, Examples и Notes
- Замените логику process{} новой логикой. Убедитесь, что она возвращает массив соответствующих объектов PowerShell.
- Сохраните модуль с подходящим именем.
- Добавьте имя нового модуля в файл Meerkat.psd1. Это можно сделать вручную или запустив /Utilities/Generate-ModuleManifest.ps1
- Добавьте новый модуль в таблицу в этом файле README.md
- Добавьте в таблицу «Артефакты».
- Добавьте новый модуль в файл Invoke-Meerkat.psm1
- Добавьте в параметр m/mod/modules, включая ValidateSet и сам массив $Modules.
- В begin{} добавьте в $ModuleCommandArray
- В begin{} добавьте в блок кода
if ($All) {}
- Если выполнение модуля занимает более нескольких секунд, также добавьте в блок кода
if ($Quick) {. Это предотвратит его запуск, когда пользователь вызывает -Fast
Скриншоты
Результат выполнения команды "Invoke-Meerkat"

Выходные файлы

Похожие проекты
Что делает Meerkat особенным?
- Легковесность. Помещается на дискету!
- Очень малое воздействие/след на целевых системах.
- Использует PowerShell и WMI/CIM.
- Стиль кодирования поощряет правильное рецензирование кода, обучение и «заимствование».
- Нет DLL или скомпилированных компонентов.
- Стандартизированный вывод — по умолчанию в формате .csv, легко поддерживает json, xml и т.д.