Haider303/facebook-media-driver-exploit
GitHub: Haider303/facebook-media-driver-exploit
针对存在漏洞的 Windows 内核驱动实现本地提权的概念验证代码,利用未校验地址的 IOCTL 原语完成从管理员到 SYSTEM 权限的提升。
Stars: 6 | Forks: 1
# facebook-media — Windows 内核 LPE
概念验证(PoC)本地提权漏洞利用,针对存在漏洞的内核驱动。将任意物理内存读写原语串联起来,以窃取 SYSTEM token。
## 它的功能
位于 `\\.\facebook-media` 的驱动暴露了三个缺乏地址验证的 IOCTL:
| IOCTL | 原语 |
|---|---|
| `0x222000` | 读取内核虚拟内存 |
| `0x222018` | 读取物理内存 |
| `0x22201C` | 写入物理内存 |
这些操作被串联起来,用 SYSTEM token 覆盖当前进程的 token,从而获得 `NT AUTHORITY\SYSTEM` 权限。
## 环境要求
- Windows 10/11 x64
- 管理员权限
- 已加载 `facebook-media.sys`
- Visual Studio 2022 Build Tools
## 编译
从开始菜单中打开 **x64 Native Tools Command Prompt for VS 2022**。
验证你是否使用了正确的编译器:
```
cl
```
它应该显示 `for x64` —— 如果显示 `x86`,说明你打开的命令提示符不对。
导航到项目文件夹并进行编译:
```
cl /EHsc exploit.c /Fe:exploit.exe psapi.lib advapi32.lib
```
## 用法
以管理员身份运行:
```
exploit.exe
```
无需输入。将会打开一个具有 `NT AUTHORITY\SYSTEM` 权限的 `cmd.exe` 窗口。
## EPROCESS 偏移量
已针对 Windows 10/11 x64 硬编码。如果在不同的构建版本上运行,请使用 WinDbg 进行验证:
```
dt nt!_EPROCESS Token
dt nt!_EPROCESS ActiveProcessLinks
dt nt!_EPROCESS UniqueProcessId
dt nt!_KPROCESS DirectoryTableBase
```
## 免责声明
仅供教育和研究目的使用。作者不对任何滥用行为负责。请仅在你拥有或获得书面授权的测试系统上进行测试。
标签:C/C++, Web报告查看器, Windows内核, 事务性I/O, 协议分析, 客户端加密, 本地提权, 权限提升, 白帽子