Dit document beschrijft een repository met een strikt educatieve reconstructie van de Stuxnet-worm, gebaseerd op reverse engineering van originele binaire samples uit 2010. Stuxnet staat bekend als het eerste cyberwapen dat specifiek is ontworpen om fysieke schade toe te brengen aan industriële controlesystemen (ICS), in het bijzonder Siemens S7-PLC's, om centrifugerotors te saboteren.
De belangrijkste technische componenten omvatten:
- Infectie & Escalatie: Modules voor de initiële dropper en privilege-escalatie via Windows-kwetsbaarheden.
- Hooking: Kwaadaardige DLL's die de communicatie tussen de engineering-software (Step 7) en de PLC onderscheppen.
- Stealth: Kernel-mode rootkits die bestanden, processen en register-sleutels verbergen.
- Payload: De kernlogica die motorfrequenties manipuleert om mechanische schade te veroorzaken.
De reconstructie is bedoeld voor academische studie, het ontwikkelen van detectiesignaturen (zoals YARA-regels) en het begrijpen van Advanced Persistent Threats (APT's), mits gebruikt in een volledig geïsoleerde virtuele omgeving.
Stuxnet
Disclaimer: Deze code wordt uitsluitend verstrekt voor academische studie, training in malware-analyse en defensief onderzoek. Het is niet bedoeld om voor kwaadaardige doeleinden te worden gebruikt, noch is het een inzetbaar stuk malware. De auteurs en bijdragers keuren illegale of onethische activiteiten af.
Overzicht
Stuxnet staat algemeen bekend als het eerste bekende cyberwapen dat is ontworpen om fysieke schade toe te brengen aan industriële controlesystemen (ICS). Het richtte zich specifiek op Siemens Step 7-software en S7-300/400 PLC's, met als uiteindelijke doel het manipuleren van frequentieregelaars om centrifugerotors te beschadigen.
Deze repository is een gereconstrueerde broncode afgeleid van gedecompileerde binaries. Hierbij is de originele logica en de aanvalsvectoren behouden, terwijl de codebase is gestructureerd voor betere leesbaarheid en analyse.
Belangrijkste kenmerken
- Doelwit: Siemens SIMATIC WinCC, Step 7 en S7 PLC's.
- Verspreiding: USB-sticks (LNK-exploits), netwerkshares (Print Spooler), Peer-to-Peer (P2P).
- Payload: Modificatie van PLC-bloklogica (OB1/OB35) om motorfrequenties te wijzigen.
- Stealth: Geavanceerde rootkit-mogelijkheden (
MRxCls.sys, MRxNet.sys) voor het verbergen van bestanden, processen en register-sleutels.
Kerncomponenten
De repository is georganiseerd op basis van de primaire modules die tijdens de analyse van de originele malware zijn geïdentificeerd.
- Module: Loader/Dropper
- Bestandsnamen:
winsta.exe, ~WTR4141.tmp
- Beschrijving: Het instappunt dat verantwoordelijk is voor de initiële infectie, privilege-escalatie en het implementeren van andere componenten.
- Module: Privilege Escalation
- Bestandsnaam:
~WTR4132.tmp
- Beschrijving: Maakt gebruik van de
Win32k.sys-kwetsbaarheid om systeemrechten te verkrijgen.
- Module: S7 Hook Library
- Bestandsnaam:
s7otbxdx.dll
- Beschrijving: Een kwaadaardige vervanging van de originele
s7otbxsx.dll. Deze onderschept de communicatie tussen Step 7 en de PLC.
- Module: Step7 Hook Library
- Bestandsnaam:
s7aaapix.dll
- Beschrijving: Onderschept AUT (Automation Tool) API-aanroepen binnen de Step 7 engineering-omgeving.
- Module: Rootkit (Bestandssysteem)
- Bestandsnaam:
mrxcls.sys
- Beschrijving: Een kernel-mode driver die wordt gebruikt om Stuxnet-bestanden, processen en register-sleutels te verbergen via SSDT-hooking.
- Module: Rootkit (Netwerk)
- Bestandsnaam:
mrxnet.sys
- Beschrijving: Filtert bestandssysteemverzoeken om kwaadaardige bestanden te verbergen en maakt P2P-verspreiding mogelijk.
- Module: Payload (Aanval)
- Bestandsnaam:
s7plcmain
- Beschrijving: De kernlogica die verantwoordelijk is voor de "Frequency Tampering"-aanval die de centrifuges beschadigt.
Technische Architectuur
Hieronder volgt de beschrijving van de overkoepelende uitvoeringsstroom van het Stuxnet-framework.
Uitvoeringsstappen
- Initiële infectievector (USB/Netwerk)
- Dropper en escalatie
- Omgevingscontrole
- splitsing:
- 4a. Doelwit gevonden (Siemens Software): Installatie van S7 Hooks.
- 4b. Geen doelwit: Zelfvernietiging of inactief worden.
- Monitoren van PLC-schrijfacties
- Detectie van OB1/OB35-schrijfactie → Injectie van payload
- Modificatie van frequentie-output
- Fysieke schade aan centrifuges
- Installatie van Rootkit (
MRxCls)
- Verbergen van bestanden en register
- Laden van netwerkmodule (
MRxNet)
- P2P-verspreiding
Uitvoeringsflow
- Omgevingsverkenning: De worm controleert op de aanwezigheid van specifieke Siemens-software (WinCC, Step 7) en specifieke doel-PLC's (S7-315, S7-417).
- DLL-injectie: Het onderschept de
s7blk_write functieaanroep.
- Code-injectie: Wanneer een gebruiker een project naar de PLC downloadt, wordt de kwaadaardige code toegevoegd aan de OB1/OB35-blokken.
- Fysieke impact: De PLC voert de gemanipuleerde code uit, waardoor de aangesloten variabele frequentieregelaars (VFD's) op abnormale frequenties (hoog/laag) draaien, wat leidt tot mechanische schade.
Instructies voor Build
Belangrijk: Deze codebase is ontworpen voor statische analyse en debugging in een gecontroleerde virtuele omgeving. Het is niet bedoeld voor live-implementatie op kritieke infrastructuur.
Vereisten
- Build-omgeving: Microsoft Visual Studio 2019/2022 (Windows) of
mingw-w64.
- Doel-OS: Windows XP / Windows 7 (voor driver-compatibiliteit).
- Driver Kit: Windows Driver Kit (WDK) 7600 (indien kernel-drivers worden gecompileerd).
User-Mode Modules bouwen
- Clone de repository:
``bash git clone https://github.com/Sadpainy/Stuxnet.git cd stuxnet-analysis ``
- Bouw de main dropper:
``bash cd winsta nmake /f Makefile.win ``
- Bouw de S7 hook library:
``bash cd ../s7otbxdx cl /LD s7otbxdx.c user32.lib ws2_32.lib ``
Gebruik
Deze code is bedoeld voor:
- Malware-analyse: Het begrijpen van de specifieke codelogica die wordt gebruikt in Advanced Persistent Threats (APT's).
- Defensief onderzoek: Het ontwikkelen van detectiesignaturen voor ICS-beveiligingstools (bijv. YARA-regels, Snort-signaturen).
- Academische studie: Het onderzoeken van de intersectie tussen cybersecurity en de bescherming van kritieke infrastructuur.
Analyse-opstelling
- Geïsoleerde omgeving: Gebruik een virtuele machine (VMWare/VirtualBox) met "Host-Only" netwerking ingeschakeld. Schakel de internetverbinding uit.
- Modules laden: Analyseer de
.dll en .sys bestanden met tools zoals IDA Pro, Ghidra of x64dbg.
- Activiteit monitoren: Gebruik Process Monitor (ProcMon), Process Hacker en Wireshark om het gedrag te observeren.
Juridisch en Licentie
Licentie
Dit project is gelicenseerd onder de GNU General Public License v3.0. Zie het LICENSE-bestand voor details.
Disclaimer
De code in deze repository is een product van reverse engineering uitsluitend voor educatieve doeleinden. De oorspronkelijke auteurs van de Stuxnet-worm zijn anoniem, maar de hierin opgenomen reconstructie is het werk van onafhankelijke security researchers.
- De auteurs claimen geen eigendom over de originele malware.
- De code wordt geleverd "AS IS" zonder enige vorm van garantie.
- De auteurs zijn niet verantwoordelijk voor enig misbruik of schade veroorzaakt door deze code.
Door gebruik te maken van deze repository erkent u dat u uitsluitend verantwoordelijk bent voor het waarborgen van de naleving van alle toepasselijke wetten en voorschriften.
Erkenningen
Dit onderzoek en deze reconstructie zouden niet mogelijk zijn geweest zonder de uitgebreide analyse en threat intelligence verstrekt door wereldwijde cybersecurity-leveranciers:
- Symantec (W32.Stuxnet dossier)
- Kaspersky Lab (The Stuxnet saga)
- ESET (Stuxnet under the microscope)
- Amr Thabet en Christian Roggia (research-virus/stuxnet)
Dit is een academische reconstructie. Gebruik het om sterkere verdedigingen te bouwen, niet om schade aan te richten.
Stuxnet
Disclaimer: Deze code wordt uitsluitend verstrekt voor academische studie, training in malware-analyse en defensief onderzoek. Het is niet bedoeld om voor kwaadaardige doeleinden te worden gebruikt, noch is het een inzetbaar stuk malware. De auteurs en bijdragers keuren illegale of onethische activiteiten af.
Overzicht
Stuxnet staat algemeen bekend als het eerste bekende cyberwapen dat is ontworpen om fysieke schade toe te brengen aan industriële controlesystemen (ICS). Het richtte zich specifiek op Siemens Step 7-software en S7-300/400 PLC's, met als uiteindelijke doel het manipuleren van frequentieregelaars om centrifugerotors te beschadigen.
Deze repository is een gereconstrueerde broncode afgeleid van gedecompileerde binaries. Hierbij is de originele logica en de aanvalsvectoren behouden, terwijl de codebase is gestructureerd voor betere leesbaarheid en analyse.
Belangrijkste kenmerken
- Doelwit: Siemens SIMATIC WinCC, Step 7 en S7 PLC's.
- Verspreiding: USB-sticks (LNK-exploits), netwerkshares (Print Spooler), Peer-to-Peer (P2P).
- Payload: Modificatie van PLC-bloklogica (OB1/OB35) om motorfrequenties te wijzigen.
- Stealth: Geavanceerde rootkit-mogelijkheden (
MRxCls.sys, MRxNet.sys) voor het verbergen van bestanden, processen en register-sleutels.
Kerncomponenten
De repository is georganiseerd op basis van de primaire modules die tijdens de analyse van de originele malware zijn geïdentificeerd.
- Module: Loader/Dropper
- Bestandsnamen:
winsta.exe, ~WTR4141.tmp
- Beschrijving: Het instappunt dat verantwoordelijk is voor de initiële infectie, privilege-escalatie en het implementeren van andere componenten.
- Module: Privilege Escalation
- Bestandsnaam:
~WTR4132.tmp
- Beschrijving: Maakt gebruik van de
Win32k.sys-kwetsbaarheid om systeemrechten te verkrijgen.
- Module: S7 Hook Library
- Bestandsnaam:
s7otbxdx.dll
- Beschrijving: Een kwaadaardige vervanging van de originele
s7otbxsx.dll. Deze onderschept de communicatie tussen Step 7 en de PLC.
- Module: Step7 Hook Library
- Bestandsnaam:
s7aaapix.dll
- Beschrijving: Onderschept AUT (Automation Tool) API-aanroepen binnen de Step 7 engineering-omgeving.
- Module: Rootkit (Bestandssysteem)
- Bestandsnaam:
mrxcls.sys
- Beschrijving: Een kernel-mode driver die wordt gebruikt om Stuxnet-bestanden, processen en register-sleutels te verbergen via SSDT-hooking.
- Module: Rootkit (Netwerk)
- Bestandsnaam:
mrxnet.sys
- Beschrijving: Filtert bestandssysteemverzoeken om kwaadaardige bestanden te verbergen en maakt P2P-verspreiding mogelijk.
- Module: Payload (Aanval)
- Bestandsnaam:
s7plcmain
- Beschrijving: De kernlogica die verantwoordelijk is voor de "Frequency Tampering"-aanval die de centrifuges beschadigt.
Technische Architectuur
Hieronder volgt de beschrijving van de overkoepelende uitvoeringsstroom van het Stuxnet-framework.
Uitvoeringsstappen
- Initiële infectievector (USB/Netwerk)
- Dropper en escalatie
- Omgevingscontrole
- splitsing:
- 4a. Doelwit gevonden (Siemens Software): Installatie van S7 Hooks.
- 4b. Geen doelwit: Zelfvernietiging of inactief worden.
- Monitoren van PLC-schrijfacties
- Detectie van OB1/OB35-schrijfactie → Injectie van payload
- Modificatie van frequentie-output
- Fysieke schade aan centrifuges
- Installatie van Rootkit (
MRxCls)
- Verbergen van bestanden en register
- Laden van netwerkmodule (
MRxNet)
- P2P-verspreiding
Uitvoeringsflow
- Omgevingsverkenning: De worm controleert op de aanwezigheid van specifieke Siemens-software (WinCC, Step 7) en specifieke doel-PLC's (S7-315, S7-417).
- DLL-injectie: Het onderschept de
s7blk_write functieaanroep.
- Code-injectie: Wanneer een gebruiker een project naar de PLC downloadt, wordt de kwaadaardige code toegevoegd aan de OB1/OB35-blokken.
- Fysieke impact: De PLC voert de gemanipuleerde code uit, waardoor de aangesloten variabele frequentieregelaars (VFD's) op abnormale frequenties (hoog/laag) draaien, wat leidt tot mechanische schade.
Instructies voor Build
Belangrijk: Deze codebase is ontworpen voor statische analyse en debugging in een gecontroleerde virtuele omgeving. Het is niet bedoeld voor live-implementatie op kritieke infrastructuur.
Vereisten
- Build-omgeving: Microsoft Visual Studio 2019/2022 (Windows) of
mingw-w64.
- Doel-OS: Windows XP / Windows 7 (voor driver-compatibiliteit).
- Driver Kit: Windows Driver Kit (WDK) 7600 (indien kernel-drivers worden gecompileerd).
User-Mode Modules bouwen
- Clone de repository:
``bash git clone https://github.com/Sadpainy/Stuxnet.git cd stuxnet-analysis ``
- Bouw de main dropper:
``bash cd winsta nmake /f Makefile.win ``
- Bouw de S7 hook library:
``bash cd ../s7otbxdx cl /LD s7otbxdx.c user32.lib ws2_32.lib ``
Gebruik
Deze code is bedoeld voor:
- Malware-analyse: Het begrijpen van de specifieke codelogica die wordt gebruikt in Advanced Persistent Threats (APT's).
- Defensief onderzoek: Het ontwikkelen van detectiesignaturen voor ICS-beveiligingstools (bijv. YARA-regels, Snort-signaturen).
- Academische studie: Het onderzoeken van de intersectie tussen cybersecurity en de bescherming van kritieke infrastructuur.
Analyse-opstelling
- Geïsoleerde omgeving: Gebruik een virtuele machine (VMWare/VirtualBox) met "Host-Only" netwerking ingeschakeld. Schakel de internetverbinding uit.
- Modules laden: Analyseer de
.dll en .sys bestanden met tools zoals IDA Pro, Ghidra of x64dbg.
- Activiteit monitoren: Gebruik Process Monitor (ProcMon), Process Hacker en Wireshark om het gedrag te observeren.
Juridisch en Licentie
Licentie
Dit project is gelicenseerd onder de GNU General Public License v3.0. Zie het LICENSE-bestand voor details.
Disclaimer
De code in deze repository is een product van reverse engineering uitsluitend voor educatieve doeleinden. De oorspronkelijke auteurs van de Stuxnet-worm zijn anoniem, maar de hierin opgenomen reconstructie is het werk van onafhankelijke security researchers.
- De auteurs claimen geen eigendom over de originele malware.
- De code wordt geleverd "AS IS" zonder enige vorm van garantie.
- De auteurs zijn niet verantwoordelijk voor enig misbruik of schade veroorzaakt door deze code.
Door gebruik te maken van deze repository erkent u dat u uitsluitend verantwoordelijk bent voor het waarborgen van de naleving van alle toepasselijke wetten en voorschriften.
Erkenningen
Dit onderzoek en deze reconstructie zouden niet mogelijk zijn geweest zonder de uitgebreide analyse en threat intelligence verstrekt door wereldwijde cybersecurity-leveranciers:
- Symantec (W32.Stuxnet dossier)
- Kaspersky Lab (The Stuxnet saga)
- ESET (Stuxnet under the microscope)
- Amr Thabet en Christian Roggia (research-virus/stuxnet)
Dit is een academische reconstructie. Gebruik het om sterkere verdedigingen te bouwen, niet om schade aan te richten.