
Ein Post-Exploitation-Tool, geschrieben in C#, verwendet entweder CIM oder WMI, um entfernte Systeme abzufragen.
SharpStrike ist ein Post-Exploitation-Tool, das in C# geschrieben ist und entweder CIM oder WMI verwendet, um entfernte Systeme abzufragen. Es kann bereitgestellte Anmeldeinformationen oder die aktuelle Benutzersitzung verwenden.
Hinweis: Einige Befehle verwenden PowerShell in Kombination mit WMI, gekennzeichnet mit ** im Befehl --show-commands.
SharpStrike ist eine C#-Neufassung und Erweiterung von @Matt_Grandy_'s CIMplant und @christruncer's WMImplant.
SharpStrike ermöglicht es Ihnen, Daten über ein entferntes System zu sammeln, Befehle auszuführen, Daten zu exfiltrieren und mehr. Das Tool erlaubt Verbindungen über Windows Management Instrumentation, WMI, oder Common Interface Model, CIM; genauer gesagt Windows Management Infrastructure, MI. CIMplant erfordert lokale Administratorberechtigungen auf dem Zielsystem.
Es ist wahrscheinlich am einfachsten, die erstellte Version unter Releases zu verwenden, beachten Sie jedoch, dass sie im Debug-Modus kompiliert ist. Wenn Sie die Lösung selbst erstellen möchten, führen Sie die folgenden Schritte aus.
Der Build erzeugt zwei Versionen von SharpStrike: GUI (WinForms) & Konsolenanwendung. Jede Version implementiert die gleichen Funktionen.
Console Version:
SharpStrike.exe --help
SharpStrike.exe --show-commands
SharpStrike.exe --show-examples
SharpStrike.exe -c ls_domain_admins
SharpStrike.exe -c ls_domain_users_list
SharpStrike.exe -c cat -f "c:\users\user\desktop\file.txt" -s [remote IP address]
SharpStrike.exe -c cat -f "c:\users\user\desktop\file.txt" -s [remote IP address] -u [username] -d [domain] -p [password] -c
SharpStrike.exe -c command_exec -e "quser" -s [remote IP address] -u [username] -d [domain] -p [password]
GUI version:
show-commands
show-examples
ls_domain_admins
ls_domain_users_list
cat -f "c:\users\user\desktop\file.txt" -s [remote IP address]
cat -f "c:\users\user\desktop\file.txt" -s [remote IP address] -u [username] -d [domain] -p [password]
command_exec -e "quser" [remote IP address] -u [username] -d [domain] -p [password]
cat - Liest den Inhalt einer Datei
copy - Kopiert eine Datei von einem Ort zu einem anderen
download** - Lädt eine Datei vom Zielcomputer herunter
ls - Auflistung von Dateien/Verzeichnissen eines bestimmten Ordners
search - Suche nach einer Datei auf einem Benutzer
upload** - Lädt eine Datei auf den Zielcomputer hoch
command_exec** - Führt einen Befehlszeilenbefehl aus und gibt die Ausgabe aus. Mit dem Flag nops ausführen, um PowerShell zu deaktivieren
disable_wdigest - Setzt den Registrierungswert für UseLogonCredential auf Null
enable_wdigest - Fügt den Registrierungswert UseLogonCredential hinzu
disable_winrm** - Deaktiviert WinRM auf dem Zielsystem
enable_winrm** - Aktiviert WinRM auf dem Zielsystem
reg_mod - Ändert die Registrierung auf dem Zielcomputer
reg_create - Erstellt den Registrierungswert auf dem Zielcomputer
reg_delete - Löscht die Registrierung auf dem Zielcomputer
remote_posh** - Führt ein PowerShell-Skript auf einem entfernten Computer aus und gibt die Ausgabe zurück
sched_job - Nicht implementiert, da Win32_ScheduledJobs auf eine veraltete API zugreift
service_mod - Erstellt, löscht oder ändert Systemdienste
ls_domain_users*** - Listet Domänenbenutzer auf
ls_domain_users_list*** - Listet Domänenbenutzer sAMAccountName auf
ls_domain_users_email*** - Listet E-Mail-Adressen von Domänenbenutzern auf
ls_domain_groups*** - Listet Domänenbenutzergruppen auf
ls_domain_admins*** - Listet Domänenadministratoren auf
ls_user_groups*** - Listet Domänenbenutzer mit ihren zugehörigen Gruppen auf
ls_computers*** - Listet Computer in der aktuellen Domäne auf
process_kill - Beendet einen Prozess per Name oder Prozess-ID auf dem Zielcomputer
process_start - Startet einen Prozess auf dem Zielcomputer
ps - Prozessauflistung
active_users - Listet Domänenbenutzer mit aktiven Prozessen auf dem Zielsystem
basic_info - Dient zum Auflisten grundlegender Metadaten des Zielsystems
drive_list - Listet lokale und Netzwerklaufwerke auf
share_list - Listet Netzwerkfreigaben auf
ifconfig - Ruft IP-Informationen von NICs mit aktiven Netzwerkverbindungen ab
installed_programs - Ruft eine Liste der installierten Programme auf dem Zielcomputer ab
logoff - Meldet Benutzer vom Zielcomputer ab
reboot (or restart) - Startet den Zielcomputer neu
power_off (or shutdown) - Schaltet den Zielcomputer aus
vacant_system - Stellt fest, ob ein Benutzer nicht am System ist
edr_query - Fragt das lokale oder entfernte System nach EDR-Anbietern ab
logon_events - Identifiziert Benutzer, die sich an einem System angemeldet haben
* Alle PowerShell kann mit dem Flag --nops deaktiviert werden, obwohl einige Befehle nicht ausgeführt werden (upload/download, enable/disable WinRM)
** Kennzeichnet PowerShell-Nutzung (entweder über einen PowerShell Runspace oder durch die Win32_Process::Create-Methode)
*** Kennzeichnet LDAP-Nutzung - Namespace "root\directory\ldap"
Konsolenversion:
GUI-Version:

SharpStrike besteht aus drei Hauptprojekten:
Hier werden die anfänglichen CIM/WMI-Verbindungen hergestellt und an den Rest der Anwendung weitergegeben
Gesamter Funktionscode für die WMI-Befehle
Gesamter Funktionscode für die CIM (MI)-Befehle
CIMplant Teil 1: Erkennung einer C#-Implementierung von WMImplant
WMImplant – Eine WMI-basierte agentenlose Post-Exploitation-RAT entwickelt in PowerShell