Meerkat

Meerkat ist eine Sammlung von PowerShell-Modulen, die für die Sammlung von Artefakten und Erkundung von Windows-basierten Endpunkten ohne einen vorinstallierten Agenten entwickelt wurden. Zu den Anwendungsfällen gehören Incident-Response-Triage, Bedrohungsjagd, Basislinienüberwachung, Schnappschussvergleiche und mehr.
Artefakte
- Ingestieren mit Ihrer bevorzugten SIEM-Lösung (Schauen Sie sich das SIEM-Repository an!)
Inhaltsverzeichnis
Schnellstart
Anforderungen
- Erfordert PowerShell 5.0 oder höher auf dem „scannenden“ Gerät.
- Erfordert PowerShell 3.0 oder höher auf den Zielsystemen. Sie können dies weiter abwärtskompatibel zu PowerShell 2.0 machen, indem Sie Vorkommen von "Get-CIMinstance" durch "Get-WMIObject" ersetzen.
- Erfordert WinRM-Zugriff.
Installation mit Git
Führen Sie in einer Eingabeaufforderung oder PowerShell-Konsole Folgendes aus...
git clone "https://github.com/TonyPhipps/Meerkat" "C:\Program Files\WindowsPowerShell\Modules\Meerkat"
Zum Aktualisieren...
cd C:\Program Files\WindowsPowerShell\Modules\Meerkat
git pull
Installation mit PowerShell
Kopieren Sie diesen Code und fügen Sie ihn in eine PowerShell-Konsole ein.
$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
Zum Aktualisieren führen Sie denselben Codeblock einfach erneut aus.
Funktionen können auch verwendet werden, indem Sie die .psm1-Datei öffnen und deren gesamten Inhalt in eine PowerShell-Konsole kopieren.
Meerkat ausführen
Dieser Befehl gibt die Ergebnisse in C:\Users\YourName\Meerkat\ aus.
HINWEIS: Die folgenden Module liefern keine Ergebnisse, wenn sie nicht mit Administratorrechten ausgeführt werden.
- AuditPolicy
- Drivers
- EventsLoginFailures
- Hotfixes
- RegistryMRU
- Registry
- Processes
- RecycleBin
Analyse
Analysemethoden und -techniken finden Sie in den Wiki-Seiten.
Fehlerbehebung
Installieren eines PowerShell-Moduls
Wenn Ihr System Module nicht automatisch in Ihrem Benutzerprofil lädt, müssen Sie das Modul möglicherweise manuell importieren.
Import-Module C:\Program Files\WindowsPowerShell\Modules\Meerkat\Meerkat.psm1
Es wird empfohlen, die folgende Vorgehensweise anzuwenden, um den tatsächlichen Problembereich zu ermitteln.
TEST 1 – FUNKTIONIERT MEERKAT LOKAL?
- Testen Sie Meerkat auf dem lokalen System
TEST 2 – FUNKTIONIERT DAS FERNSCANNEN?
Hinweis: Führen Sie diesen Test mit einem Konto durch, das lokale Administratorrechte auf dem Zielsystem besitzt.
- Testen Sie Meerkat gegen ein entferntes Windows-System
- Invoke-Meerkat -Computer RemoteName
TEST 3 – KÖNNEN SIE DEN GEPLANTEN TASK UND DAS MSA ERSTELLEN?
- Entfernen Sie alle vorhandenen geplanten Tasks, die mit Meerkat zusammenhängen.
- Entfernen Sie alle mit Meerkat verbundenen MSAs.
- Konfigurieren Sie die Datei Schedule-Meerkat.ps1 und führen Sie sie aus.
TEST 4 – FUNKTIONIERT MEERKAT-TASK.PS1?
Hinweis: Führen Sie diesen Test mit einem Konto durch, das lokale Administratorrechte auf dem Zielsystem besitzt.
- Konfigurieren Sie die Datei Meerkat-Task.ps1 mit # OPTION 1 (lokaler Host)
- Führen Sie das Skript manuell aus.
TEST 5 – FUNKTIONIERT DER GEPLANTE TASK UND DAS MSA?
- Führen Sie das Skript Meerkat-Task.ps1 über geplante Tasks aus.
Wenn dies fehlschlägt:
- Stellen Sie sicher, dass WinRM auf dem Remote-Host aktiviert ist.
- Stellen Sie sicher, dass das MSA lokale Administratorrechte auf dem Remote-Host besitzt.
TEST 6 – FUNKTIONIERT MEERKAT-TASK.PS1 REMOT?
- Konfigurieren Sie die Datei Meerkat-Daily-Task.ps1 mit # OPTION 3 (Remote-Host, Täglich)
- Geben Sie einen Remote-Host in hosts.txt an.
- Führen Sie das Skript manuell mit einem Konto aus, das lokale Administratorrechte auf dem Remote-System besitzt.
TEST 7 – HAT DAS MSA DIE RICHTIGEN BERECHTIGUNGEN AUF REMOTE-HOSTS?
- Konfigurieren Sie die Datei Meerkat-Task.ps1 mit # OPTION 3 (Remote-Host, Täglich)
- Geben Sie einen Remote-Host in hosts.txt an.
- Führen Sie das Skript Meerkat-Task.ps1 über geplante Tasks aus.
TEST 8 – FUNKTIONIERT ALLES JETZT?
- Konfigurieren Sie die Datei Meerkat-Task.ps1 mit # OPTION 2 (vollautomatischer Domänenscan)
- Führen Sie das Skript manuell mit einem Konto aus, das lokale Administratorrechte auf dem Remote-System besitzt.
- Führen Sie das Skript Meerkat-Task.ps1 über geplante Tasks aus.
Hinzufügen eines neuen Moduls
- Erstellen Sie die neue .psm1-Datei, vorzugsweise durch Kopieren eines vorhandenen Moduls mit ähnlicher Logik und Verwenden als Ausgangspunkt.
- Aktualisieren Sie den Modulnamen.
- Ersetzen Sie mit Suchen/Ersetzen alle Vorkommen des Vorlagennamens.
- Aktualisieren Sie die Abschnitte Zusammenfassung, Beschreibung, Parameter, Beispiele und Hinweise.
- Ersetzen Sie die process{}-Logik durch die neue Logik. Stellen Sie sicher, dass sie ein Array passender PowerShell-Objekte zurückgibt.
- Speichern Sie das Modul unter einem geeigneten Namen.
- Fügen Sie den neuen Modulnamen zu Meerkat.psd1 hinzu. Dies kann manuell oder durch Ausführen von /Utilities/Generate-ModuleManifest.ps1 erfolgen.
- Fügen Sie das neue Modul zur Tabelle in dieser README.md hinzu.
- Fügen Sie es zur Artefakt-Tabelle hinzu.
- Fügen Sie das neue Modul zu Invoke-Meerkat.psm1 hinzu
- Fügen Sie es zum Parameter m/mod/modules hinzu, einschließlich sowohl des ValidateSet als auch des $Modules-Arrays selbst.
- Fügen Sie es in begin{} zu $ModuleCommandArray hinzu.
- Fügen Sie es in begin{} zum Codeblock
if ($All) {} hinzu.
- Wenn das Modul mehr als ein paar Sekunden dauert, fügen Sie es auch zum Codeblock
if ($Quick) { hinzu. Dies verhindert, dass es ausgeführt wird, wenn der Benutzer -Fast verwendet.
Bildschirmfotos
Ausgabe des Befehls „Invoke-Meerkat“

Ausgabedateien

Ähnliche Projekte
Was zeichnet Meerkat aus?
- Leichtgewichtig. Passt auf eine Diskette!
- Sehr geringer Fußabdruck/Auswirkung auf die Ziele.
- Nutzt PowerShell & WMI/CIM.
- Der Codierungsstil fördert ordnungsgemäße Code-Reviews, Lernen und „Ausleihen“.
- Keine DLLs oder kompilierte Komponenten.
- Standardisierte Ausgabe – standardmäßig .csv und kann einfach json, xml usw. unterstützen.