
Sammlung von PowerShell-Funktionen, die ein Red Teamer in einem Einsatz verwenden kann
Sammlung von PowerShell-Funktionen, die ein Red Teamer verwenden kann, um Daten von einem Rechner zu sammeln oder Zugriff auf ein Ziel zu erhalten. Ich habe ps1-Dateien für die Befehle hinzugefügt, die im RedTeamEnum-Modul enthalten sind. So kannst du einfach einen einzelnen Befehl finden und verwenden, falls du nur das möchtest. Wenn du das gesamte Modul möchtest, führe nach dem Herunterladen des RedTeamEnum-Verzeichnisses und dessen Inhalt auf dein Gerät die folgenden Schritte aus:
C:\PS> robocopy .\RedTeamEnum $env:USERPROFILE\Documents\WindowsPowerShell\Modules\RedTeamEnum *
# This will copy the module to a location that allows you to easily import it. If you are using OneDrive sync you may need to use $env:USERPROFILE\OneDrive\Documents\WindowsPowerShell\Modules\RedTeamEnum instead.
C:\PS> Import-Module -Name RedTeamEnum -Verbose
# This will import all the commands in the module.
C:\PS> Get-Command -Module RedTeamEnum
# This will list all the commands in the module.
C:\PS> Convert-Base64 -Value "Convert me to base64!" -Encode
C:\PS> Convert-Base64 -Value "Q29udmVydCBtZSB0byBiYXNlNjQh" -Decode
C:\PS> Convert-StringToHash -String "Convert me to base64!"
C:\PS> Convert-StringToHash -String "Password123" -Encoding UTF8 -Algorithm MD5
# Beide obigen Beispiele konvertieren die Zeichenfolge Password123 in einen MD5-Hash-Wert
C:\PS> Convert-SID -Username tobor
# Das obige Beispiel konvertiert tobor in seinen SID-Wert
C:\PS> Convert-SID -SID S-1-5-21-2860287465-2011404039-792856344-500
# Der obige Wert konvertiert den SID-Wert in den zugehörigen Benutzernamen
C:\PS> Test-BruteForceZipPassword -PassFile 'C:\Users\USER\Downloads\Applications\pass.txt' -Path 'C:\Users\USER\Downloads\Applications\KiTTY.7z' -ZipExe 'C:\Program Files\7-Zip\7z.exe'
# Dieses Beispiel verwendet die Passwörter in der Datei pass.txt, um die passwortgeschützte Datei KiTTY.7z zu knacken
C:\PS> Test-BruteForceCredentials -ComputerName DC01.domain.com -UseSSL -Username 'admin','administrator' -Passwd 'Password123!' -SleepMinutes 5
# Dieses Beispiel testet das eine definierte Passwort gegen die Benutzer admin und administrator auf dem entfernten Computer DC01.domain.com mit WinRM über HTTPS und einer Wartezeit von 5 Minuten zwischen den Versuchen
C:\PS> Test-BruteForceCredentials -ComputerName File.domain.com -UserFile C:\Temp\users.txt -PassFile C:\Temp\rockyou.txt
# Dieses Beispiel testet jedes Passwort in rockyou.txt gegen jeden Benutzernamen in der Datei users.txt ohne Pause zwischen den Versuchen
C:\PS> Get-LdapInfo -Detailed -SPNNamedObjects -Domain domain.com -Credential (Get-Credential)
# Das obige Beispiel gibt alle Eigenschaften der zurückgegebenen Objekte in domain.com zurück
#
C:\PS> Get-LdapInfo -DomainControllers | Select-Object -Property 'Name','ms-Mcs-AdmPwd'
# Wenn dies als Administrator ausgeführt wird, gibt es das LAPS-Passwort für das lokale Administratorkonto zurück
#
C:\PS> Get-LdapInfo -ListUsers | Where-Object -Property SamAccountName -like "user.samname"
# HINWEIS: Wenn Sie den Schalter "-Detailed" einfügen und die Ausgabe an Where-Object weiterleiten, werden keine Eigenschaften zurückgegeben. Wenn Sie alle Eigenschaften Ihres Ergebnisses anzeigen möchten, muss es mit dem folgenden Format ausgeführt werden
#
C:\PS> Get-LdapInfo -AllServers | Where-Object -Property LogonCount -gt 1 | Select-Object -Property *
C:\PS> Get-NetworkShareInfo -ShareName C$
# Das obige Beispiel gibt Informationen zur Freigabe C$ auf dem lokalen Rechner zurück
#RESULTS
Name : C$
InstallDate :
Description : Default share
Path : C:\
ComputerName : TOBORDESKTOP
Status : OK
C:\PS> Get-NetworkShareInfo -ShareName NETLOGON,SYSVOL,C$ -ComputerName DC01.domain.com, DC02.domain.com, 10.10.10.1
# Das obige Beispiel findet und gibt Informationen zu NETLOGON, SYSVOL und C$ auf den 3 entfernten Geräten DC01, DC02 und 10.10.10.1 zurück
C:\PS> Test-PrivEsc
C:\PS> Get-InitialEnum
C:\PS> Start-SimpleHTTPServer
# Öffnet HTTP-Server auf Port 8000
#ODER
C:\PS> Start-SimpleHTTPServer -Port 80
# Öffnet HTTP-Server auf Port 80
C:\PS> Invoke-PortScan -IpAddress 192.168.0.1
C:\PS> Invoke-PingSweep -Subnet 192.168.1.0 -Start 192 -End 224 -Source Singular
# HINWEIS: Der Parameter Source funktioniert nur, wenn der Wert für IP Source Routing "Yes" ist
C:\PS> Invoke-PingSweep -Subnet 10.0.0.0 -Start 1 -End 20 -Count 2
# Standardwert für count ist 1
C:\PS> Invoke-PingSweep -Subnet 172.16.0.0 -Start 64 -End 128 -Count 3 -Source Multiple