0

0

EternalBlueC:一款针对永恒之蓝的CC++实现工具

看不見的法師

看不見的法師

发布时间:2025-09-06 08:10:03

|

610人浏览过

|

来源于php中文网

原创

eternalbluec++套件在c/c++中重新构建,涵盖了ms17-010漏洞、eternalblue/ms17-010漏洞检测器、doublepulsar检测器以及doublepulsaruploaddll和shellcode上传工具

该项目的目标包括:

  1. 将项目转换为其他语言,如Java和C#,并实现扫描和攻击的图形用户界面(GUI)。

  2. 允许编辑永恒之蓝漏洞利用有效负载,以移除DoublePulsar后门,并支持发送自定义负载和Shellcode。

  3. 添加对EternalRomance(需要命名管道)的支持。

    立即学习C++免费学习笔记(深入)”;

此外,附加的网络教育代码存储库还包含以下用于教育目的的内容:

  1. DoublePulsar x86/x64上传DLL的Python脚本。

  2. EternalBlue一体化二进制文件。

  3. 多体系结构内核队列apc汇编代码以及Windows x86/x64多体系内核从环0到环3通过排队的APC内核代码。

  4. 来自worawit的EternalBlue x64/x86内核有效载荷Shellcode。

  5. EternalBlue的回放文件。

以下是EternalBlue Suite的具体实现:

ms17_vuln_status.cpp - 该程序发送了4个SMB数据包,包括1个协商、1个会话设置、1个树连接和1个TransNamedPipe请求。随后,该程序从TransNamedPipeRequest(PeekNamedPipe请求)中读取NT_STATUS响应,并检查SMB数据包中的NT_STATUS是否等于0xC0000205(STATUS_INSUFF_SERVER_RESOURCES)。如果条件满足,则目标系统可能易受MS17-010攻击。该程序已在未修补的Windows 7 x64系统上进行了测试。

EternalBlueC:一款针对永恒之蓝的CC++实现工具

通义千问
通义千问

阿里巴巴推出的全能AI助手

下载

doublepulsar_check.cpp - 该程序发送了4个SMB数据包,包括1个协商、1个会话设置、1个树连接和1个Trans2 SESSION_SETUP数据包。通过发送Trans2 SESSION_SETUP数据包,可以将Trans2响应数据包中发送的Multiplex ID(41)与Multiplex ID:0x51或81进行比较。如果响应,则表示计算机上存在DoublePulsar后门。DoublePulsar后门会读取发送的Multiplex ID,在ping命令成功后,在Trans2 SESSION_SETUP响应中为Multiplex ID返回十六进制的+10。随后,发送命令(在SMB数据包的超时参数中发送)以刻录DoublePulsar后门。DoublePulsar后门处于休眠状态,未被移除。该程序已在Windows 7 x64系统上进行了测试。

EternalBlueC:一款针对永恒之蓝的CC++实现工具

EternalBlue.cpp - 该程序发送了多个SMB数据包,包括协商、会话设置、树连接以及多个NT trans和Trans2数据包。这些NT传输包的格式不正确,这会在受害者计算机的内存中造成漏洞。更多的空白或空SMB数据包通过多个套接字发送到受害者的同一端口。大部分EternalBlue的base64有效负载通过socket1发送,其中协商、SessionSetup和TreeConnect数据包都在此套接字上发送。然后创建20个其他套接字,并将数据发送到这些套接字(套接字3到套接字21)。之后,DoublePulsar后门通过插座3发送到插座21。随后,程序关闭插座,引爆受害者电脑上的EternalBlue和DoublePulsar后门。然后发送SMB断开连接和SMB注销请求并关闭连接。此漏洞攻击有效,并在Windows 7 x64系统上进行了测试。整个过程大约需要5秒钟让后门完全运行,类似于互联网上报道的永恒之蓝攻击。可能需要更多的利用尝试。然而,目前有一个错误,TreeID和UserID没有在数据包中正确设置,这将在后续版本中修复。当TreeID和UserID设置为默认值时,这将适用于最近打开的计算机。当默认值设置为“0800”时,这些数据包必须更新其TreeID和UserID值。

EternalBlueC:一款针对永恒之蓝的CC++实现工具EternalBlueC:一款针对永恒之蓝的CC++实现工具EternalBlueC:一款针对永恒之蓝的CC++实现工具

DoublePulsarXORKeyCalculator.cpp - 该程序发送了4个SMB数据包,包括1个协商数据包和3个请求。最后一个请求是Trans2 SESSION_SETUP请求。然后,接收Trans2 SESSION_SETUP响应,并在(Recvbuff[18]->Recvbuff[22])处提取SMB签名。SMB签名从十六进制字符转换为无符号整数。该无符号整数通过DoublePulsar XOR密钥计算器函数运行,该函数生成一个XOR密钥,该密钥可用于加密将上传到DoublePulsar后门的shellcode或DLL有效负载。

注意:SESSION_SETUP数据参数必须包含此存储库的有效负载上传部分中计算出的DoublePulsar XOR密钥的char版本。已在Windows 7 x64系统上测试。屏幕截图示例:

EternalBlueC:一款针对永恒之蓝的CC++实现工具

doublepulsar_upload.cpp - 该程序发送了4个SMB数据包,包括1个协商、1个会话设置、1个树连接和1个Trans2 SESSION_SETUP数据包。发送Trans2 SESSION SETUP请求数据包以获取Trans2 SESSION_SETUP响应数据包中的SMB签名。该签名通过从DoublePulsar后门二进制文件中提取的DoublePulsar XOR密钥计算器进行处理。然后,程序读取一个DLL文件(示例:payload.dll),并将其与userland shellcode(userland_shellcode.bin)相结合,然后用我们根据SMB签名计算出的DoublePulsar XOR密钥对缓冲区进行XOR运算。数据包通过分配内存,复制Trans2数据包,编辑SMB事务正常工作所需的值(UserID, ProcessID, TreeID, MultiplexID),然后将XORed数据(shellcode + DLL)复制到末尾,并通过它循环发送到DoublePulsar后门。每次发送的总数据包长度为4096字节。数据包总长度=4178。4096一般用于XOR加密数据。这项工作仍在进行中,无法正常工作。

TODO:可能需要使用TRANS2数据包结构实现Trans2上传函数,而不是使用十六进制编辑Trans2数据包进行捕获。

Doublepulsar_UploadShellcode.cpp - 该程序发送了5个SMB数据包,包括1个协商、1个会话设置、1个树连接、1个ping Trans2 SESSION_SETUP数据包和1个exec Trans2 SESSION_SETUP数据包。发送Trans2 SESSION SETUP请求数据包以获取TRANS2 SESSION_SETUP响应数据包中的SMB签名。该签名通过从DoublePulsar后门二进制文件中提取的DoublePulsar XOR密钥计算器进行处理。然后,程序从一个缓冲区(NOPs/x90)复制示例shellcode,它使用我们根据SMB签名计算出的DoublePulsar XOR密钥对缓冲区进行XORs运算。数据包是通过分配内存,复制Trans2 exec数据包(来自Wannacry),编辑SMB事务正常工作所需的值(UserID,TreeID),然后将SESSION_PARAMETERS和4096字节的XORed数据(shellcode)复制到末尾,并以4178字节的数据包总长度将其发送到DoublePulsar后门。数据包总长度=4178,SESSION_PARAMETERS为12。4096一般用于XOR加密数据。这项工作仍在进行中,无法正常工作。

TODO:可能需要使用结构来实现Trans2上载函数,而不是使用十六进制编辑Trans2数据包进行捕获。

项目地址EternalBlueC:

https://www.php.cn/link/f9c1e83924ec2b3b79247ac16c7c966b

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

772

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

661

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

765

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

679

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1385

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

570

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

730

2023.08.11

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

9

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.6万人学习

Excel 教程
Excel 教程

共162课时 | 13万人学习

PHP基础入门课程
PHP基础入门课程

共33课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号