
Collection de fonctions PowerShell qu'un Red Teamer peut utiliser lors d'un engagement
Collection de fonctions PowerShell qu'un Red Teamer peut utiliser pour collecter des données depuis une machine ou obtenir un accès à une cible. J'ai ajouté des fichiers ps1 pour les commandes incluses dans le module RedTeamEnum. Cela vous permettra de trouver et d'utiliser facilement une seule commande si c'est tout ce que vous voulez. Si vous voulez le module complet, effectuez les actions suivantes après avoir téléchargé le répertoire RedTeamEnum et son contenu sur votre appareil.
C:\PS> robocopy .\RedTeamEnum $env:USERPROFILE\Documents\WindowsPowerShell\Modules\RedTeamEnum *
# Cela copiera le module vers un emplacement qui vous permet de l'importer facilement. Si vous utilisez la synchronisation OneDrive, vous devrez peut-être utiliser $env:USERPROFILE\OneDrive\Documents\WindowsPowerShell\Modules\RedTeamEnum à la place.
C:\PS> Import-Module -Name RedTeamEnum -Verbose
# Cela importera toutes les commandes du module.
C:\PS> Get-Command -Module RedTeamEnum
# Cela listera toutes les commandes du 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
# Les deux exemples ci-dessus convertissent la chaîne Password123 en une valeur de hachage MD5
C:\PS> Convert-SID -Username tobor
# L'exemple ci-dessus convertit le nom d'utilisateur tobor en sa valeur SID
C:\PS> Convert-SID -SID S-1-5-21-2860287465-2011404039-792856344-500
# L'exemple ci-dessus convertit la valeur SID en son nom d'utilisateur associé
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'
# Cet exemple utilise les mots de passe du fichier pass.txt pour craquer le fichier KiTTY.7z protégé par mot de passe
C:\PS> Test-BruteForceCredentials -ComputerName DC01.domain.com -UseSSL -Username 'admin','administrator' -Passwd 'Password123!' -SleepMinutes 5
# Cet exemple teste le seul mot de passe défini contre les deux utilisateurs admin et administrator sur l'ordinateur distant DC01.domain.com en utilisant WinRM sur HTTPS avec un intervalle de 5 minutes entre chaque tentative
C:\PS> Test-BruteForceCredentials -ComputerName File.domain.com -UserFile C:\Temp\users.txt -PassFile C:\Temp\rockyou.txt
# Cet exemple teste chaque mot de passe de rockyou.txt contre chaque nom d'utilisateur du fichier users.txt sans pause entre les tentatives
C:\PS> Get-LdapInfo -Detailed -SPNNamedObjects -Domain domain.com -Credential (Get-Credential)
# Ce qui précède renvoie toutes les propriétés des objets retournés dans domain.com
#
C:\PS> Get-LdapInfo -DomainControllers | Select-Object -Property 'Name','ms-Mcs-AdmPwd'
# Si cela est exécuté en tant qu'administrateur, il renverra le mot de passe LAPS pour le compte administrateur local
#
C:\PS> Get-LdapInfo -ListUsers | Where-Object -Property SamAccountName -like "user.samname"
# NOTE : Si vous incluez le paramètre "-Detailed" et redirigez la sortie vers Where-Object, cela ne renverra aucune propriété. Si vous souhaitez afficher toutes les propriétés de votre résultat, cela devra être effectué en utilisant le format ci-dessous
#
C:\PS> Get-LdapInfo -AllServers | Where-Object -Property LogonCount -gt 1 | Select-Object -Property *
C:\PS> Get-NetworkShareInfo -ShareName C$
# L'exemple ci-dessus renvoie des informations sur le partage C$ sur la machine locale
#RÉSULTATS
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
# L'exemple ci-dessus découvre et renvoie des informations sur NETLOGON, SYSVOL et C$ sur les 3 périphériques distants DC01, DC02 et 10.10.10.1
C:\PS> Test-PrivEsc
C:\PS> Get-InitialEnum
C:\PS> Start-SimpleHTTPServer
Ouvrir le serveur HTTP sur le port 8000
#OU
C:\PS> Start-SimpleHTTPServer -Port 80
# Ouvrir le serveur HTTP sur le 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
# NOTE : Le paramètre source ne fonctionne que si la valeur IP Source Routing est "Oui"
C:\PS> Invoke-PingSweep -Subnet 10.0.0.0 -Start 1 -End 20 -Count 2
# La valeur par défaut pour count est 1
C:\PS> Invoke-PingSweep -Subnet 172.16.0.0 -Start 64 -End 128 -Count 3 -Source Multiple