展示 HN:Stuxnet – 重建的臭名昭著网络武器源代码
摘要
这个仓库包含 Stuxnet 网络武器的重建源代码,用于教育和研究目的,保留了原始逻辑和攻击向量以便分析。
查看缓存全文
缓存时间: 2026/09/08 00:33
Sadpainy/Stuxnet
来源:https://github.com/Sadpainy/Stuxnet
Stuxnet
构建状态 许可证:GPL v3(https://www.gnu.org/licenses/gpl-3.0) 平台
本仓库包含对臭名昭著的Stuxnet蠕虫的严格教育与研究导向的重构。它凝聚了全球安全研究社区自2010年原始二进制样本被发现以来,对其进行无数小时逆向工程分析的成果。
免责声明:本代码仅提供用于学术研究、恶意软件分析培训和防御性研究。其并非用于任何恶意目的,亦非可部署的恶意软件。作者及贡献者不认可任何非法或不道德的行为。
目录
概述
核心组件
技术架构
构建指南
使用说明
法律与许可
致谢
概述
Stuxnet被广泛认为是首个已知的、旨在对工业控制系统(ICS)造成物理破坏的网络武器。它专门针对西门子Step 7软件及S7-300/400可编程逻辑控制器(PLC),最终通过操纵变频器驱动来损坏离心机转子。
本仓库是从反编译二进制文件中重构的源代码。它保留了原有的逻辑与攻击向量,同时重构了代码库结构以提升可读性和分析便利性。
关键特性
目标:西门子SIMATIC WinCC、Step 7及S7系列PLC。
传播途径:USB驱动器(LNK漏洞利用)、网络共享(Print Spooler漏洞)、点对点(P2P)网络。
有效载荷:修改PLC程序块逻辑(OB1/OB35)以改变电机频率。
隐蔽性:具备高级Rootkit能力(MRxCls.sys、MRxNet.sys),可隐藏文件、进程和注册表项。
核心组件
仓库结构基于原始恶意软件分析中识别出的主要模块组织。
模块:加载器/投放器 文件名:winsta.exe、~WTR4141.tmp 描述:负责初始感染、权限提升及其他组件部署的入口点。
模块:权限提升 文件名:~WTR4132.tmp 描述:利用Win32k.sys漏洞获取系统级权限。
模块:S7钩子库 文件名:s7otbxdx.dll 描述:对原始s7otbxsx.dll的恶意替换。拦截Step 7与PLC之间的通信。
模块:Step7钩子库 文件名:s7aaapix.dll 描述:拦截Step 7工程环境中的AUT(自动化工具)API调用。
模块:Rootkit(文件系统) 文件名:mrxcls.sys 描述:通过SSDT钩子隐藏Stuxnet文件、进程和注册表项的内核模式驱动。
模块:Rootkit(网络) 文件名:mrxnet.sys 描述:过滤文件系统请求以隐藏恶意文件,并实现P2P传播。
模块:有效载荷(攻击) 文件名:s7plcmain 描述:负责“频率篡改”攻击以损坏离心机的核心逻辑。
技术架构
以下描述了Stuxnet框架的高层执行流程。
阶段1:初始感染向量(USB/网络) 阶段2:投放器与权限提升 阶段3:环境检测 阶段4a:发现目标(西门子软件)→ 安装S7钩子 阶段4b:非目标 → 自毁/空闲 阶段5:监控PLC写入 阶段6:检测OB1/OB35写入 → 注入有效载荷 阶段7:修改频率输出 阶段8:造成离心机物理损坏 阶段9:安装Rootkit(MRxCls) 阶段10:隐藏文件与注册表 阶段11:加载网络模块(MRxNet) 阶段12:P2P传播
执行流程
-
环境侦察:蠕虫检测特定西门子软件(WinCC、Step 7)和特定目标PLC(S7-315、S7-417)的存在。
-
DLL注入:拦截s7blk_write函数调用。
-
代码注入:当用户向PLC下载项目时,恶意代码被附加到OB1/OB35程序块中。
-
物理影响:PLC执行被篡改的代码,导致连接的变频器(VFD)以异常频率(高/低)运转,造成机械损坏。
构建指南
重要提示:本代码库设计用于受控虚拟环境中的静态分析和调试。并非用于在任何关键基础设施上实际部署。
构建要求
构建环境:Microsoft Visual Studio 2019/2022(Windows)或mingw-w64。
目标操作系统:Windows XP / Windows 7(确保驱动兼容性)。
驱动套件:Windows Driver Kit (WDK) 7600(若编译内核驱动)。
构建用户模式模块
克隆仓库
git clone https://github.com/Sadpainy/Stuxnet.git cd stuxnet-analysis
构建主投放器
cd winsta nmake /f Makefile.win
构建S7钩子库
cd ../s7otbxdx cl /LD s7otbxdx.c user32.lib ws2_32.lib
使用说明
本代码适用于:
恶意软件分析:理解高级持续性威胁(APT)中使用的特定代码逻辑。
防御性研究:为工业控制系统安全工具(如YARA规则、Snort签名)开发检测特征。
学术研究:探索网络安全与关键基础设施保护的交叉领域。
分析环境设置
-
隔离环境:使用启用仅主机网络的虚拟机(VMWare/VirtualBox),禁用互联网连接。
-
加载模块:使用IDA Pro、Ghidra或x64dbg等工具分析.dll和.sys文件。
-
监控行为:使用Process Monitor (ProcMon)、Process Hacker和Wireshark观察行为。
法律与许可
许可证
本项目采用GNU通用公共许可证v3.0发布。详见LICENSE文件。
免责声明
本仓库中的代码是出于教育目的的逆向工程产物。Stuxnet蠕虫的原始作者身份匿名,但此重构版本是独立安全研究人员的成果。
作者不主张对原始恶意软件的所有权。
代码按“原样”提供,不附带任何明示或暗示的保证。
对于因使用本代码造成的任何误用或损害,作者不承担任何责任。
使用本仓库即表示您承诺自行确保遵守所有适用法律法规。
致谢
此研究与重构工作离不开全球网络安全厂商提供的深入分析和威胁情报。
Symantec(W32.Stuxnet技术文档)
Kaspersky Lab(Stuxnet事件始末)
ESET(Stuxnet深度分析)
Amr Thabet 和 Christian Roggia(research-virus/stuxnet)
这是学术性重构。请用它来构筑更强大的防御,而非造成伤害。
相似文章
Fast16:震网前身的破坏工具旨在颠覆核武器模拟
安全研究人员发现了Fast16,一个大约在2005年的震网前身破坏框架,它通过挂钩LS-DYNA和AUTODYN软件来篡改高爆炸药引爆模拟,从而瞄准核武器模拟。
Show HN: OSINT工具,可发现域名上的暴露文件
一款新的OSINT工具,用于搜索域名以发现暴露的路径和配置错误,对安全研究人员和渗透测试人员很有用。
@UnTalNixon_exe: 这太疯狂了!一个开源AI,在真实攻击者之前就入侵你的应用 +56,000 星。多代理架构,真实工作……
Strix是一个开源AI工具,采用多代理架构,自主执行安全测试,覆盖OWASP Top 10漏洞,并提供真实世界的概念验证和30秒快速设置。
@wsl8297: 想学网络安全,最耗时间的往往不是学习本身,而是找资料:教程一套、工具一套、练习环境又在别处,东拼西凑就先浪费大半天。 GitHub 上的 h4cker 项目由安全领域知名作者 Omar Santos 长期维护,把常用资源做成了一份一站式导…
该文章介绍了 Omar Santos 维护的 h4cker GitHub 项目,它是一个一站式网络安全资源导航,涵盖攻防技术、云安全、应用安全、AI 安全以及主流安全认证备考资料,帮助学习者高效找到教程、工具和实验环境。
一次失败的(国家支持?)攻击剖析
对一次针对Rust开发者的复杂假面试骗局的详细复盘,该骗局涉及伪造的VC人设和通过TypeScript仓库投递的定制RAT。作者凭借警惕性和AI辅助代码审查成功规避了感染。