
C# Targeted Attack Reconnissance Tools
Dies ist eine benutzerdefinierte .NET-Assembly, die eine Reihe von Lagebewusstseinsaktivitäten durchführt. Es gibt mehrere aktuelle Funktionspakete:
Ich wusste nicht, dass GhostPack entwickelt wurde, als ich dies schrieb; wir veröffentlichten unsere Tools ungefähr zur gleichen Zeit. Tatsache ist, dass GhostPack jetzt weitaus funktionsreicher ist. Ich entferne die PrivescCheck-Funktion, da SharpUp deren gesamte Funktionalität und mehr abdeckt.
Der entscheidende Punkt ist, dass alles in purem .NET implementiert ist – also kein PowerShell.
Es wird über Befehlszeilenparameter konfiguriert und gesteuert, was es für die Verwendung mit Beacons execute-assembly-Direktive geeignet macht.
Dies sammelt eine Reihe von Informationen vom Host. Achtung, es könnte eine MENGE an Ausgabe geben. Es wird angezeigt:
Das Verb 'basic' muss in der Befehlszeile übergeben werden, gefolgt von der spezifischen Prüfung, die erforderlich ist. Wenn das Wort 'all' als zweiter Parameter übergeben wird, wird jede Prüfung durchgeführt.
Beachten Sie, dass bei Verwendung von 'all' automatisch ein 'proxycheck http://www.google.com' eingefügt wird. Siehe Abschnitt proxycheck für Details.
Alle grundlegenden Prüfungen durchführen: beacon> execute-assembly /tmp/Reconerator.exe oder beacon> execute-assembly /tmp/Reconerator.exe basic all
Nur MRU-Enumeration durchführen: beacon> execute-assembly /tmp/Reconerator.exe basic mru
Nur gemappte Laufwerke auflisten: beacon> execute-assembly /tmp/Reconerator.exe basic mappeddrives
Relativ sicher. Es wird die Systemregistrierung abgefragt; es ist unwahrscheinlich, dass dies überwacht wird.
Damit können Sie eine LDAP-Abfrage durchführen. Am einfachsten lässt sich dies anhand eines Beispiels demonstrieren.
Dies zeigt alle Benutzer in der Domäne 'dc=stufus,dc=lan' mit W2K8DC als Domänencontroller an:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 0
Dies zeigt maximal 5 Benutzer in der Domäne 'dc=stufus,dc=lan' mit W2K8DC als Domänencontroller an:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 5
Dies zeigt alle Mitglieder der Domänenadministratorengruppe in der Domäne 'dc=stufus,dc=lan' mit W2K8DC als Domänencontroller an:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "(&(objectClass=group)(cn=Domain Admins))" 0
Dies zeigt alle Mitglieder der Domänenadministratoren- oder Unternehmensadministratorengruppen in der Domäne 'dc=stufus,dc=lan' mit W2012DC als Domänencontroller an:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2012DC/dc=stufus,dc=lan" "(&(objectClass=group)(|(cn=Enterprise Admins)(cn=Domain Admins)))" 0
Dies erzeugt Netzwerkverkehr zu dem von Ihnen angegebenen Domänencontroller. Um Missverständnisse zu vermeiden: Es wird LDAP verwendet (im Gegensatz zu RPC oder ähnlichem).
Dies führt eine DNS-Abfrage mit dem DNS-Server des Hosts durch.
Auflösen von www.google.com:
beacon> execute-assembly /tmp/Reconerator.exe resolvehost www.google.com
Dies erzeugt eine DNS-Abfrage an den Domänencontroller, aber es ist unwahrscheinlich, dass dies als Alarm ausgelöst wird, aufgrund des schieren Volumens legitimer DNS-Anfragen.
Dies ermöglicht die Interaktion mit der Windows-Suche (ehemals Windows-Indexdienst), mit der Sie schnell nach interessanten Dateien und Ordnern (und deren Inhalten) suchen können. E-Mails werden normalerweise indiziert, Netzwerkordner jedoch nicht. Daher ist es möglicherweise nicht optimal für die Suche in Benutzer-Heimatverzeichnissen, wenn diese remote gespeichert sind. Dennoch ist es sehr schnell.
Die Schnittstelle zur Windows-Suche ist SQL-artig; diese Implementierung ermöglicht es Ihnen, im Wesentlichen den Inhalt der 'WHERE'-Klausel anzugeben. Am einfachsten lässt es sich anhand von Beispielen erklären, aber Sie müssen MSDN lesen, wenn Sie alle möglichen Kriterien kennenlernen möchten.
Findet alles, was indiziert wurde und irgendwo das Wort 'password' enthält (d.h. durchsucht die Inhalte von Dateien und E-Mails):
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "CONTAINS('password')"
Findet alles, was indiziert wurde und das Wort 'stufus' im Pfad oder Dateinamen enthält:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemPathDisplay LIKE '%stufus%'"
Findet alles, was indiziert wurde und das Wort 'stufus' im Dateinamen ODER das Wort 'secret' enthält:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemName LIKE '%stufus%' OR CONTAINS('secret')"
Mir ist nichts bekannt, was dies als verdächtig erscheinen lassen würde.
Dies gibt den Proxyserver zurück, der verwendet würde, um eine bestimmte URL zu besuchen. Dies dient zur Bewältigung der Situation, in der es unterschiedliche Proxys für verschiedene URLs oder verschiedene komplexe Ausnahmen geben kann. Die interessierende URL wird als Parameter übergeben.
Beachten Sie, dass bei Angabe von 'basic all' (siehe oben) automatisch ein proxycheck auf http://www.google.com eingefügt wird, unter der Annahme, dass die meisten Organisationen einen einzigen ausgehenden Proxy für den gesamten nicht-internen Internetzugang haben.
Zeigt den Proxyserver an, der beim Besuch von www.google.com verwendet wird:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck www.google.com
Zeigt den Proxyserver an, der beim Besuch von https://www.mwrinfosecurity.com verwendet wird:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck https://www.mwrinfosecurity.com
Dies ist eine lokale und legitime Aktivität; mir ist nichts bekannt, was dies als verdächtig erscheinen lassen würde.
Dies untersucht eine Reihe von Privilegienausweitungsvektoren und berichtet, ob sie möglich sind oder nicht. Derzeit beträgt diese Anzahl 1.
Ähnlich wie beim BASIC-Modul oben kann privesccheck all in der Befehlszeile angegeben werden, um alle Prüfungen zu versuchen, oder eine bestimmte Prüfung, falls erforderlich.
Das Verb 'basic' muss in der Befehlszeile übergeben werden, gefolgt von der spezifischen Prüfung, die erforderlich ist. Wenn das Wort 'all' als zweiter Parameter übergeben wird, wird jede Prüfung durchgeführt.
| Prüfung | Beschreibung |
|---|---|
| alwaysinstallelevated | Bestimmt, ob der Schlüssel 'AlwaysInstallElevated' auf 1 gesetzt ist oder nicht. Wenn gesetzt, wird jede MSI-Datei als lokaler Administrator ausgeführt. |
| Prüfung | Hinweise |
|---|---|
| alwaysinstallelevated | Dies ist eine lokale Registry-Abfrage; es ist unwahrscheinlich, dass dies als bösartig eingestuft wird. |
Alle Privilegienausweitungsprüfungen versuchen:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck all
Nur prüfen, ob der AlwaysInstallElevated-Registrierungsschlüssel gesetzt ist:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck alwaysinstallelevated
Kompilieren Sie dies in Visual Studio 2019. Es zielt derzeit auf .NET v4 ab. Sie können dies in den Kompilierungseinstellungen ändern, wenn Sie möchten.
| Prüfung | Beschreibung |
|---|
| env | Zeigt alle Umgebungsvariablen an. |
| info | Zeigt die IP-Adresse des Hosts und die Haupt-/Nebenversion des Betriebssystems an. |
| mru | Durchsucht verschiedene Listen "zuletzt verwendet". Diese umfassen derzeit den Verlauf des Ausführen-Dialogs und die Office-Datei- und Pfad-MRU für alle Versionen von Word, Excel, PowerPoint, Access, Publisher und Visio. Es zeigt auch den Speicherort des speziellen Ordners "Zuletzt verwendet" an. |
| favourites | Zeigt die in den Favoriten gespeicherten URLs an (im Grunde die Lesezeichen des Benutzers). Es unterstützt derzeit keine Unterordner; das muss ich noch beheben. |
| mappeddrives | Zeigt die Netzlaufwerke aus der Benutzersitzung an. Nützlich, um schnell zentrale Dateifreigaben und Heimatverzeichnisse zu finden. Wenn es gemappt ist, enthält es wahrscheinlich nützliche Daten. |
| installedapplications | Listet die installierten Anwendungen auf. Dies umfasst Anwendungen, die als Administrator (lokal auf dem Rechner) installiert wurden, und Anwendungen, die vom aktuellen Benutzer installiert wurden. Sie werden an unterschiedlichen Stellen in der Registry aufgelistet. |
| onedrive | Zeigt Informationen zu OneDrive an (einschließlich synchronisierter Teamwebsites/Mandanten). |