
Pädagogische Rekonstruktion des Stuxnet-Wurms für Malware-Analyse und defensive Forschung. Enthält Module für Privilege Escalation, Rootkit-Funktionalität und PLC-Payload-Injection, die auf Siemens Step 7 und S7-SPSen abzielen.
Dieses Repository enthält eine ausschließlich zu Bildungs- und Forschungszwecken dienende Rekonstruktion des berüchtigten Stuxnet-Wurms. Es ist das Ergebnis unzähliger Stunden an Reverse-Engineering-Arbeit, die von der globalen Sicherheitsforschungsgemeinschaft an den 2010 entdeckten Original-Binärdateien durchgeführt wurde.
Haftungsausschluss: Dieser Code wird ausschließlich für akademische Studien, Malware-Analyse-Training und defensive Forschung bereitgestellt. Er ist weder für böswillige Zwecke gedacht noch handelt es sich um einsatzfähige Malware. Die Autoren und Mitwirkenden befürworten keine illegalen oder unethischen Aktivitäten.
Inhaltsverzeichnis
Überblick
Kernkomponenten
Technische Architektur
Build-Anleitung
Verwendung
Rechtliches und Lizenz
Danksagungen
Stuxnet gilt weithin als die erste bekannte Cyber-Waffe, die darauf ausgelegt war, physische Zerstörung an industriellen Steuerungssystemen (ICS) zu verursachen. Sie zielte speziell auf Siemens Step 7 Software und S7-300/400-SPS ab und manipulierte letztlich Frequenzumrichter-Antriebe, um Zentrifugenrotoren zu beschädigen.
Dieses Repository ist ein rekonstruierter Quellcode, der aus den dekompilierten Binärdateien abgeleitet wurde. Es bewahrt die ursprüngliche Logik und die Angriffsvektoren, während die Codebasis für Lesbarkeit und Analyse strukturiert wird.
Hauptmerkmale
Ziel: Siemens SIMATIC WinCC, Step 7 und S7-SPS.
Verbreitung: USB-Laufwerke (LNK-Exploits), Netzwerkfreigaben (Print Spooler), Peer-to-Peer (P2P).
Payload: Modifikation der SPS-Blocklogik (OB1/OB35) zur Änderung der Motorfrequenzen.
Tarnung: Fortschrittliche Rootkit-Fähigkeiten (MRxCls.sys, MRxNet.sys) zum Verbergen von Dateien, Prozessen und Registrierungseinträgen.
Das Repository ist nach den primären Modulen organisiert, die während der Analyse der ursprünglichen Malware identifiziert wurden.
Modul: Loader/Dropper Dateiname: winsta.exe, ~WTR4141.tmp Beschreibung: Einstiegspunkt, verantwortlich für die Erstinfektion, Privilegienausweitung und Bereitstellung weiterer Komponenten.
Modul: Privilegienausweitung Dateiname: ~WTR4132.tmp Beschreibung: Nutzt die Win32k.sys-Schwachstelle aus, um Systemrechte zu erlangen.
Modul: S7-Hook-Bibliothek Dateiname: s7otbxdx.dll Beschreibung: Böswilliger Ersatz der ursprünglichen s7otbxsx.dll. Fängt die Kommunikation zwischen Step 7 und der SPS ab.
Modul: Step7-Hook-Bibliothek Dateiname: s7aaapix.dll Beschreibung: Fängt AUT-API-Aufrufe (Automation Tool) innerhalb der Step-7-Engineering-Umgebung ab.
Modul: Rootkit (Dateisystem) Dateiname: mrxcls.sys Beschreibung: Kernel-Mode-Treiber zum Verbergen von Stuxnet-Dateien, -Prozessen und -Registrierungsschlüsseln mittels SSDT-Hooking.
Modul: Rootkit (Netzwerk) Dateiname: mrxnet.sys Beschreibung: Filtert Dateisystemanfragen, um böswillige Dateien zu verbergen, und ermöglicht P2P-Verbreitung.
Modul: Payload (Angriff) Dateiname: s7plcmain Beschreibung: Die Kernlogik, verantwortlich für den „Frequenzmanipulations“-Angriff, der die Zentrifugen beschädigt.
Im Folgenden wird der Ablauf auf hoher Ebene des Stuxnet-Frameworks beschrieben.
Stufe 1: Erster Infektionsvektor (USB/Netzwerk) Stufe 2: Dropper und Ausweitung Stufe 3: Umgebungsprüfung Stufe 4a: Ziel gefunden (Siemens-Software) -> S7-Hooks installieren Stufe 4b: Kein Ziel -> Selbstzerstörung/Leerlauf Stufe 5: SPS-Schreibvorgänge überwachen Stufe 6: OB1/OB35-Schreibvorgang erkennen -> Payload injizieren Stufe 7: Frequenzausgabe modifizieren Stufe 8: Physische Beschädigung der Zentrifugen Stufe 9: Rootkit installieren (MRxCls) Stufe 10: Dateien und Registrierung verbergen Stufe 11: Netzwerkmodul laden (MRxNet) Stufe 12: P2P-Verbreitung
Ausführungsablauf
Umgebungsaufklärung: Der Wurm prüft das Vorhandensein bestimmter Siemens-Software (WinCC, Step 7) und bestimmter Ziel-SPS (S7-315, S7-417).
DLL-Injektion: Er fängt den Funktionsaufruf s7blk_write ab.
Code-Injektion: Wenn ein Benutzer ein Projekt auf die SPS herunterlädt, wird der böswillige Code an die OB1/OB35-Blöcke angehängt.
Physische Auswirkung: Die SPS führt den manipulierten Code aus, wodurch die angeschlossenen Frequenzumrichter (VFDs) mit abnormalen Frequenzen (hoch/niedrig) drehen, was zu mechanischen Schäden führt.
Build-Anleitung
Wichtig: Diese Codebasis ist für statische Analyse und Debugging in einer kontrollierten virtuellen Umgebung ausgelegt. Sie ist nicht für den Live-Einsatz auf kritischer Infrastruktur gedacht.
Anforderungen
Build-Umgebung: Microsoft Visual Studio 2019/2022 (Windows) oder mingw-w64.
Ziel-Betriebssystem: Windows XP / Windows 7 (für Treiberkompatibilität).
Treiber-Kit: Windows Driver Kit (WDK) 7600 (falls Kernel-Treiber kompiliert werden).
Erstellen der User-Mode-Module
Repository klonen
git clone https://github.com/Sadpainy/Stuxnet.git cd stuxnet-analysis
Haupt-Dropper erstellen
cd winsta nmake /f Makefile.win
S7-Hook-Bibliothek erstellen
cd ../s7otbxdx cl /LD s7otbxdx.c user32.lib ws2_32.lib
Dieser Code ist gedacht für:
Malware-Analyse: Verständnis der spezifischen Codelogik, die in Advanced Persistent Threats (APTs) verwendet wird.
Defensive Forschung: Entwicklung von Erkennungssignaturen für ICS-Sicherheitstools (z. B. YARA-Regeln, Snort-Signaturen).
Akademische Studien: Untersuchung der Schnittstelle zwischen Cybersicherheit und Schutz kritischer Infrastruktur.
Analyse-Setup
Umgebung isolieren: Verwenden Sie eine virtuelle Maschine (VMWare/VirtualBox) mit aktiviertem Host-Only-Netzwerk. Deaktivieren Sie die Internetverbindung.
Module laden: Analysieren Sie die .dll- und .sys-Dateien mit Tools wie IDA Pro, Ghidra oder x64dbg.
Aktivität überwachen: Verwenden Sie Process Monitor (ProcMon), Process Hacker und Wireshark, um das Verhalten zu beobachten.
Rechtliches und Lizenz
Dieses Projekt ist unter der GNU General Public License v3.0 lizenziert. Einzelheiten finden Sie in der Datei LICENSE.
Der Code in diesem Repository ist ein Produkt des Reverse Engineering ausschließlich zu Bildungszwecken. Die ursprünglichen Autoren des Stuxnet-Wurms sind anonym, aber die hierin enthaltene Rekonstruktion ist das Werk unabhängiger Sicherheitsforscher.
Die Autoren beanspruchen kein Eigentum an der ursprünglichen Malware.
Der Code wird „WIE BESEHEN“ ohne jegliche Gewährleistung bereitgestellt.
Die Autoren sind nicht verantwortlich für Missbrauch oder Schäden, die durch diesen Code verursacht werden.
Durch die Nutzung dieses Repositorys erkennen Sie an, dass Sie allein dafür verantwortlich sind, die Einhaltung aller geltenden Gesetze und Vorschriften sicherzustellen.
Diese Forschung und Rekonstruktion wäre nicht möglich gewesen ohne die umfangreiche Analyse und Bedrohungsinformationen, die von globalen Cybersicherheitsanbietern bereitgestellt wurden.
Symantec (W32.Stuxnet-Dossier)
Kaspersky Lab (Die Stuxnet-Saga)
ESET (Stuxnet unter dem Mikroskop)
Amr Thabet und Christian Roggia (research-virus/stuxnet)
Dies ist eine akademische Rekonstruktion. Nutzen Sie sie, um stärkere Verteidigungen aufzubauen, nicht um Schaden anzurichten.