
Erweiterbares Host-Triage-Tool für Red Teams, das dynamisch OpSec-bewusste Prüfungen lädt, um Benutzer-, Domänen-, Berechtigungs- und Anmeldeinformationen von Windows-Endpunkten per execute-assembly zu sammeln.
Erweiterbare, konfigurierbare Host-Triage.
SitRep soll eine leichte, erweiterbare Alternative zur Host-Triage bieten. Prüfungen werden zur Laufzeit dynamisch aus eigenständigen Dateien geladen. Dies ermöglicht es Operatoren, bestehende Prüfungen schnell zu ändern oder bei Bedarf neue Prüfungen hinzuzufügen.
Prüfungen sind nach Kategorien gruppiert und können als OpSec-sicher/unsicher markiert werden. Unsichere Prüfungen werden nur geladen, wenn das Flag /AllowUnsafe angegeben wird.
Interessante Ergebnisse werden mit einem "[*]" hervorgehoben.
Prüfungen sind in Kategorien unterteilt. Dies ermöglicht ihre Anzeige in geeigneten Gruppen. Die folgenden Prüfungen sind derzeit verfügbar:
Umgebung
Verteidigung
Berechtigungen
Software
Anmeldeinformationen
Die folgenden Prüfungen sind derzeit als nicht OpSec-sicher markiert:
Sie sollten diese Konfiguration überprüfen und die OpSec-Tags nach Bedarf aktualisieren.
Alle Prüfungen sind standardmäßig aktiviert. Da Prüfungen jedoch dynamisch geladen werden, ist es möglich, sie zu deaktivieren.
Deaktivieren einer Prüfung
CheckBase enthält eine boolesche Eigenschaft "Enabled", die standardmäßig auf true gesetzt ist. Diese kann in der abgeleiteten Klasse durch Hinzufügen eines Konstruktors gesetzt werden. Das folgende Beispiel deaktiviert die CurrentUser-Prüfung (CurrentUser.cs):
public CurrentUser()
{
base.Enabled = false;
}
Prüfungen aus dem Build ausschließen
Da Prüfungen dynamisch geladen werden, ist es möglich, eine Prüfung ohne weitere Änderungen aus dem Build auszuschließen. Der einfachste Weg ist, in Visual Studio mit der rechten Maustaste auf die Prüfungsklasse zu klicken und "Aus Projekt ausschließen" zu wählen. Die Prüfung kann wieder hinzugefügt werden, indem aus demselben Kontextmenü "In Projekt einschließen" gewählt wird.
Dieser Ansatz hat den Vorteil, dass der Code aus dem kompilierten Artefakt entfernt wird.
Alle Prüfungen ausführen
SitRep.exe /AllowUnsafe
Nur OpSec-sichere Prüfungen ausführen (Standard)
SitRep.exe
SitRep ist für die Ausführung über execute-assembly (oder Äquivalent) ausgelegt.

Prüfungen erben von CheckBase und implementieren das ICheck-Interface. Dies erzwingt die für das dynamische Laden von Prüfungen erforderlichen Muster. Andere Methoden und Klassen können nach Bedarf hinzugefügt werden.
Das ICheck-Interface stellt die folgenden Eigenschaften und Methoden bereit:
Abgeleitete Klassen müssen die in CheckBase definierte Methode "ToString()" überschreiben. Diese Methode wird beim Anzeigen der Ausgabe jeder Prüfung aufgerufen.
Der Zugriff auf native Methoden wird über Klassen im Ordner "NativeMethods" bereitgestellt. Jede Klasse ist nach der DLL benannt, mit der sie interagiert.
Prüfungen sind für ihre eigene Fehlerbehandlung verantwortlich. Aktuelle Prüfungen umschließen die gesamte "Check"-Methode mit einem try-catch-Block; die Verwendung dieses Musters wird empfohlen.
Ein Beispiel für eine leere Prüfung ist unten dargestellt:
using SitRep.Interfaces;
using System;
namespace SitRep.Checks.Software
{
class ExampleCheck : CheckBase, ICheck
{
public bool IsOpsecSafe => true;
public int DisplayOrder => 1;
public Enums.Enums.CheckType CheckType => Enums.Enums.CheckType.Credential;
public void Check()
{
try
{
throw new NotImplementedException();
}
catch
{
Message = "Check failed [*]";
}
}
public override string ToString()
{
throw new NotImplementedException();
}
}
}
PRs sind willkommen. Bitte stellen Sie sicher, dass Prüfungen eigenständig sind (d. h. nicht von der Ausgabe anderer Prüfungen abhängig). Prüfungen sollten nach Möglichkeit in sich geschlossen sein, wobei der gesamte einmalige Code innerhalb der Prüfungsklasse vorhanden sein sollte.
Haben Sie jemals versucht, einen domänengebundenen Windows-Endpunkt zu mocken? Das ist der Grund.
SitRep verwendet Code von Seatbelt, SharpUp und zufälligen StackOverflow-Beiträgen. Entsprechende Credits wurden hinzugefügt.