Add files via upload

This commit is contained in:
雾島风起時
2025-09-25 03:56:33 +08:00
committed by GitHub
parent 88fa0c589d
commit d3799b9ab3
27 changed files with 1049 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
### Print Nightmare 漏洞分析
**1. 漏洞原理**
Print Nightmare 的核心原理是**权限升级**和**任意文件写入**。它利用了 `RpcAddPrinterDriver` 这个 RPC(远程过程调用)函数中存在的逻辑缺陷
- **`RpcAddPrinterDriverEx` 函数**:这是一个用于在服务器上安装打印机驱动的函数。通常情况下,只有拥有管理员权限的用户才能调用这个函数
- **非特权用户的利用**:漏洞的根源在于,攻击者发现可以通过一个**普通用户**的身份,调用这个函数,并让其加载一个**恶意的 DLL 文件**
- **权限升级**:当打印后台处理程序(`spoolsv.exe`)以 **SYSTEM 权限**运行,并加载这个恶意 DLL 文件时,恶意代码也会以 SYSTEM 权限执行,从而实现权限提升
简单来说,攻击者利用这个漏洞**欺骗**了 SYSTEM 权限的打印服务,让它去加载一个恶意的 DLL 文件,从而以最高权限运行恶意代码
**2. 漏洞利用过程**
一个典型的 Print Nightmare 漏洞利用过程可以分为以下几步:
1. **准备恶意 DLL**:攻击者首先需要编写一个恶意的 DLL 文件。这个 DLL 文件的核心功能是**建立反向 Shell**、**创建新的管理员账户**或者**执行任意系统命令**
2. **准备 SMB 共享**:攻击者将这个恶意 DLL 文件放置在自己的机器上,并通过 **SMBServer Message Block**协议共享出来
3. **发起 RPC 请求**:攻击者以一个普通用户的身份,向目标机器的打印服务发起一个 `RpcAddPrinterDriverEx` RPC 请求
4. **恶意 DLL 加载**:在 RPC 请求中,攻击者指定要加载的驱动文件路径为自己的 SMB 共享路径。当打印服务收到这个请求后,它会以 **SYSTEM 权限**去连接攻击者的 SMB 共享,并加载恶意 DLL 文件
5. **远程代码执行**:一旦 DLL 文件被加载到 `spoolsv.exe` 进程中,其中的恶意代码就会被执行,从而在目标机器上获得 **SYSTEM 权限**