
Educational reconstruction of the Stuxnet worm for malware analysis and defensive research. Includes modules for privilege escalation, rootkit functionality, and PLC payload injection targeting Siemens Step 7 and S7 PLCs.
This repository contains a strictly educational and research-oriented reconstruction of the infamous Stuxnet worm. It is the product of countless hours of reverse engineering work conducted by the global security research community on the original binary samples discovered in 2010.
Warning: This code is provided solely for academic study, malware analysis training, and defensive research. The authors and contributors do not condone illegal or unethical activities.
It is not intended to be used for any malicious purposes, nor is it a deployable piece of malware.
Status
Overview
Core Components
Technical Architecture
Build Instructions
Usage
Legal and License
Acknowledgements
Build: Unstable
Clean Code: Verified
Code Quality: Tests Passing
Coverage: Excellent
Time: 2026-10-17 06:00
Added a version that's closer to the original in detail, plus a clean version. both built entirely from the known clues. The file is named Reboot.zip and the password is Stuxnet.
If you don't think the reconstruction version is good...
Stuxnet is widely recognized as the first known cyber-weapon designed to cause physical destruction to industrial control systems (ICS). It specifically targeted Siemens Step 7 software and S7-300/400 PLCs, ultimately manipulating frequency converter drives to damage centrifuge rotors.
This repository is a reconstructed source code derived from the decompiled binaries. It preserves the original logic and attack vectors while structuring the codebase for readability and analysis.
Target: Siemens SIMATIC WinCC, Step 7, and S7 PLCs.
Propagation: USB drives (LNK exploits), Network shares (Print Spooler), Peer-to-Peer (P2P).
Payload: Modification of PLC block logic (OB1/OB35) to alter motor frequencies.
Stealth: Advanced Rootkit capabilities (MRxCls.sys, MRxNet.sys) for file, process, and registry hiding.
The repository is organized by the primary modules identified during the analysis of the original malware.
winsta.exe, ~WTR4141.tmp~WTR4132.tmpWin32k.sys vulnerability to gain system-level privileges.s7otbxdx.dlls7otbxsx.dll. It intercepts communication between Step 7 and the PLC.- Module: Step7 Hook Library
- Filename:
s7aaapix.dll- Description: Intercepts AUT (Automation Tool) API calls within the Step 7 engineering environment.
mrxcls.sysmrxnet.sys- Module: Payload (Attack)
- Filename:
s7plcmain- Description: The core logic responsible for the "Frequency Tampering" attack that damages the centrifuges.
The following describes the high-level execution flow of the Stuxnet framework.
Stage 1: Initial Infection Vector (USB/Network)
Stage 2: Dropper and Escalation
Stage 3: Check Environment
Stage 4a: Target Found (Siemens Software) -> Install S7 Hooks
Stage 4b: Non-target -> Self-Destruct/Idle
Stage 5: Monitor PLC Writes
Stage 6: Detect OB1/OB35 Write -> Inject Payload
Stage 7: Modify Frequency Output
Stage 8: Physical Damage to Centrifuges
Stage 9: Install Rootkit (MRxCls)
Stage 10: Hide Files and Registry
Stage 11: Load Network Module (MRxNet)
Stage 12: P2P Propagation
Execution Flow
Environment Reconnaissance: The worm checks for the presence of specific Siemens software (WinCC, Step 7) and specific target PLCs (S7-315, S7-417).
DLL Injection: It intercepts the s7blk_write function call.
Code Injection: When a user downloads a project to the PLC, the malicious code is appended to the OB1/OB35 blocks.
Physical Impact: The PLC executes the manipulated code, causing the connected variable frequency drives (VFDs) to spin at abnormal frequencies (high/low), resulting in mechanical damage.
Important: This codebase is designed for static analysis and debugging in a controlled virtual environment. It is not intended for live deployment on any critical infrastructure.
Build Environment: Microsoft Visual Studio 2019/2022 (Windows) or mingw-w64.
Target OS: Windows XP / Windows 7 (for driver compatibility).
Driver Kit:Windows Driver Kit (WDK) 7600 (if compiling kernel drivers).
Building the User-Mode Modules
Clone the repository
git clone https://github.com/Sadpainy/Stuxnet.git
cd Stuxnet
Build the main dropper
cd Main
nmake /f Makefile.win
Build the S7 hook library
cd ../s7otbxdx
cl /LD s7otbxdx.c user32.lib ws2_32.lib
This code is intended for:
Malware Analysis: Understanding the specific code logic used in advanced persistent threats (APTs).
Defensive Research: Developing detection signatures for ICS security tools (e.g., YARA rules, Snort signatures).
Academic Study: Examining the intersection of cybersecurity and critical infrastructure protection.
Analysis Setup
Isolate Environment: Use a virtual machine (VMWare/VirtualBox) with Host-Only networking enabled. Disable internet connectivity.
Load Modules: Analyze the .dll and .sys files using tools such as IDA Pro, Ghidra, or x64dbg.
Monitor Activity: Use Process Monitor (ProcMon), Process Hacker, and Wireshark to observe the behavior.
This project is licensed under the GNU Affero General Public License v3.0, LICENSE.Stuxnet (Must-Read, Very Important), LICENSE.XOR (Must-Read, Very Important), LICENSE.Detail, Apache License 2.0 and LICENSE.Desktop. See the LICENSE file for details.
No Disclaimer. That's on you to be self-aware.
This research and reconstruction would not have been possible without the extensive analysis and threat intelligence provided by global cybersecurity vendors.
Symantec (W32.Stuxnet dossier)
Kaspersky Lab (The Stuxnet saga)
ESET (Stuxnet under the microscope)
Amr Thabet and Christian Roggia (research-virus/stuxnet)
This is an academic reconstruction. Use it to build stronger defenses, not to cause harm.
Thank you like this repository!