
Selbst entwickelte Tools für Lateral Movement/Code Execution
Dieses Repository basiert auf dem bereits existierenden MiscTool, daher ein großes Lob an rasta-mouse für die Veröffentlichung und dafür, dass er mir die richtige Motivation gegeben hat, daran zu arbeiten.
Befehlsausführung / Seitwärtsbewegung über PsExec-ähnliche Funktionalität. Muss im Kontext eines privilegierten Benutzers ausgeführt werden. Das Tool basiert auf dem CsExec von rasta-mouse, ist jedoch darauf ausgelegt, zusätzliche Kontrolle über die Dienst-Erstellung zu ermöglichen, insbesondere:
CheeseExec.exe <targetMachine> <serviceName> <binPath> <action>
Siehe auch TikiService.
CheesePS ist ein Framework für Befehlsausführung / Seitwärtsbewegung. Es nutzt System.Management.Automation.PowerShell, um beliebigen Code über PowerShell zu laden und auszuführen.
Das Tool ist nativ in der Lage, gängige Einschränkungen zu umgehen, indem es PowerShell-Runspaces auf lokalen oder entfernten Zielen erstellt und verwendet. Muss im Kontext eines privilegierten Benutzers ausgeführt werden (bei Verwendung von PowerShell-Remoting).
Das Tool wurde ursprünglich als Erweiterung von rasta_mouse CsPosh entwickelt, ist aber so weit gewachsen, dass es ein eigenständiges Framework geworden ist und jetzt als allgemeiner PowerShell-Injektor verwendet werden kann.
Die Idee hinter diesem Tool wurde in folgendem Artikel zusammengefasst:
Die wichtigsten implementierten Funktionen sind:
Der folgende Screenshot ist ein einigermaßen genaues Schema zur Beschreibung des Arbeitsablaufs des Tools:

Usage:
-t, --target=VALUE Target machine
-c, --code=VALUE Code to execute
-e, --encoded Indicates that provided code is base64 encoded
-a, --am-si-bypass=VALUE Uses the given PowerShell script to bypass A-M-S-
I (fs, smb o http[s])
--aX, --encrypted-am-si
Indicates that provided A.M.S.I. bypass is
encrypted
-i, --import=VALUE Imports additional PowerShell modules (fs, smb o
http[s])
--iX, --encrypted-imports
Indicates that provided PowerShell modules are
encrypted
-o, --outstring Append Out-String to code
-r, --redirect Redirect stderr to stdout
-d, --domain=VALUE Domain for alternate credentials
-u, --username=VALUE Username for alternate credentials
-p, --password=VALUE Password for alternate credentials
-X, --encrypt=VALUE Encrypt a script with an hardcoded key
-D, --decrypt=VALUE Test decryption of a script with an hardcoded key
-n, --skip-bypass=VALUE Skip A.M.S.I (A), WLDP (W) or ALL (*) Bypass
techniques
-l, --lockdown-escape Try to enable PowerShell FullLanguage mode using
REGINI
-w, --wldp-bypass=VALUE Uses the given PowerShell script to bypass WLDP
(fs, smb o http[s])
--wX, --encrypted-wldp Indicates that provided WLDP bypass is encrypted
-x, --executable=VALUE [Download and] Execute given executable
--xX, --encrypted-executable
Indicates that provided Exe/DLL is encrypted
--xCS, --executable-csharp
Indicates that the executable provided is C# -
(.NET)
-R, --reflective-injection Uses Invoke-ReflectivePEInjection to load the
assmebly from memory (requires Invoke-
ReflectivePEInjection to be imported!)
-P, --powershell-decrypt Force use of PowerShell-based decryption
-k, --encryption-key=VALUE Uses the provided key for encryption/decryption
--ssl Force use of SSL
-h, -?, --help Show Help
Hinweis: Wenn ohne Ziel ausgeführt, wird das Skript gegen die lokale Maschine ausgeführt
Siehe auch AmsiBypass.
Befehlsausführung / Seitwärtsbewegung über DCOM. Muss im Kontext eines privilegierten Benutzers ausgeführt werden. Dieses Tool basiert auf dem CsDCOM von rasta-mouse, wurde jedoch verbessert, um zusätzliche Methoden hinzuzufügen, die sich an die neuen Forschungen von Philip Tsukerman anpassen. Es gibt auch eine experimentelle Methode, um eventuelle Versuche, betroffene DCOM-Objekte über dcomcfg zu deaktivieren, zu "reparieren", aber dafür müssen einige Vorbedingungen erfüllt sein, damit es richtig funktioniert.
Die Idee hinter diesem Tool wurde in folgendem Artikel zusammengefasst:
Aktuelle Methoden: MMC20.Application, ShellWindows, ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine, OfficeMacro.
Usage:
-t, --target=VALUE Target Machine
-b, --binary=VALUE Binary: powershell.exe
-a, --args=VALUE Arguments: -enc <blah>
-m, --method=VALUE Methods: MMC20Application, ShellWindows,
ShellBrowserWindow, ExcelDDE, VisioAddonEx,
OutlookShellEx, ExcelXLL, VisioExecLine,
OfficeMacro
-r, --reg, --registry Enable registry manipulation
-h, -?, --help Show Help
Hinweis: Bei Ausführung mit -t . wird das Skript gegen die lokale Maschine ausgeführt
Siehe auch Laterale Bewegung mit DCOM-Objekten und C#
RDP-Anmeldedaten-Dieb über RDI (reflektives DLL-Injecting). Muss im Kontext eines privilegierten Benutzers oder eines Benutzers mit SeImpersonatePrivilege ausgeführt werden.
Dieses Tool baut auf dem RdpThief von MDSec auf, wurde jedoch vollständig in ein einziges C#-Programm verpackt, um es über .NET-Reflection (Assembly.Load und ähnliches) ausführen zu können. Auf diese Weise kann es über Covenant ausgeführt werden, ohne dass eine DLL auf das Zielsystem hochgeladen werden muss.
Usage:
CheeseRDP [actions]
Actions:
wait: keep listening for any new mstsc.exe process indefinitely (stop with ctrl-C)
clean: delete the credentials dump file if present
dump: dump the content of the file if present, parsing the credentials in a compact format
Hinweis: Bei Ausführung ohne Optionen wird versucht, in einen aktiven mstsc.exe-Prozess zu injecten (die Standardwartezeit beträgt 10 Sekunden)
Befehlsausführung / Seitwärtsbewegung über MSSQL-Vertrauensstellung. Dieses Tool wurde entwickelt, um einige der Einschränkungen zu überwinden, die durch bereits existierende Tools wie esc gegeben sind, hauptsächlich in Bezug auf MSSQL-Impersonation. Darüber hinaus wurde CheeseSQL speziell für die Ausführung über Covenant (mittels reflektivem Laden) modifiziert und automatisiert die wichtigsten Phasen des MSSQL-Vertrauensmissbrauchs. Besonders lustig ist die Implementierung des CLR-Missbrauchs, die es einem Benutzer ermöglicht, eine MSSQL-Erweiterung im laufenden Betrieb mit Roslyn zu kompilieren und hochzuladen, um eine Befehlsausführung zu erreichen. Ein kleines Demo ist unten dargestellt, der ausgeführte Befehl ist ein codierter PowerShell Covenant-Downloader:

Nach meiner Regel "immer Anerkennung, wo Anerkennung gebührt", wurde dieses Tool auf der Grundlage eines bereits existierenden Projekts von Jb05s namens SharpSQL entwickelt, daher ein großes Lob an Jeremy für seine Arbeit.
Außerdem empfehle ich dringend, sich alle Tools von NetSPI zur MSSQL-Überwachung und -Ausnutzung anzusehen, da sie wirklich großartig sind:
[*] List of available commands:
- findspn : Find MSSQL Instances, using Domain SPNs
- listdb : List available Databases on the server
- gethash : Send Service Account Net-NTLM Hash to an Arbitrary IP
- getlogin : Retrieve SQL Logins Available for Impersonation
- getdbuser : Retrieve Information on the SQL Login, Currently Mapped User, and Available User Roles
- getlinked : Retrieve Information about Linked Servers
- getserverinfo : Retrieve current values of 'xp_cmdshell', 'ole automation procedures' and 'clr enabled'
- xp : Execute Encoded PowerShell Command via 'xp_cmdshell'
- ole : Execute Encoded PowerShell Command via 'sp_OACreate' and 'sp_OAMethod'
- clr : Execute Encoded PowerShell Command via custom .NET assemblies
- rpc : Configure Linked SQL Server to Allow RPC connections
- linkedquery : Execute Encoded PowerShell Command on Linked SQL Server via 'OPENQUERY'
- openquery : Execute an arbitrary query using 'OPENQUERY'
[*] For detailed usage, type:
- CheeseSQL <command> /help