yankywilson/DNS-Filter-Bypass-Forensics-Toolkit
GitHub: yankywilson/DNS-Filter-Bypass-Forensics-Toolkit
一套面向 Windows 终端的防御性取证工具包,专门解决用户利用加密代理浏览器绕过 DNS 过滤后无本地历史记录可查的取证调查难题。
Stars: 0 | Forks: 0
# DNS 过滤器绕过取证工具包
**面向 IT 安全团队的防御性取证脚本**,用于检测、调查和修复受管 Windows 终端上未经授权的过滤器绕过活动。
本工具包是在一次真实的 incident response 期间开发的,当时发现受管网内的用户使用加密代理浏览器规避了基于 DNS 的内容过滤。这些脚本作为检测和调查工具,旨在对整个设备群进行审计,追踪用户在多台机器上的活动,并确认违规范围。
## 使用场景
- **Incident Response:** 怀疑用户绕过了您的 DNS 过滤器 —— 调查其使用了哪些机器以及进行了哪些操作
- **设备群合规审计:** 扫描终端以确认 DNS 过滤代理已安装、正在运行且未被规避
- **取证证据收集:** 当注重隐私的浏览器未留下本地历史记录时,捕获内存转储和浏览器 artifacts
- **修复:** 删除未经授权的用户配置文件,并验证已调查机器的清理情况
## 脚本
### 设备群审计
| 脚本 | 用途 |
|--------|---------|
| `Full-Audit.ps1` | 完整的终端取证扫描 —— 检测绕过工具、检查过滤代理健康状况、审计 DNS 配置、查找目标用户痕迹、标记浏览器异常 |
| `Filter-Bypass-Audit.ps1` | 专项合规性检查 —— 过滤器是否正在运行?Microsoft Store 是否被屏蔽?是否存在绕过应用、VPN 扩展或可疑的 prefetch 条目? |
### 取证调查
| 脚本 | 用途 |
|--------|---------|
| `Find-UserProfile.ps1` | 确定特定用户是否曾登录过此机器 —— 配置文件文件夹、注册表 SID、安全日志、浏览器数据 |
| `Find-UserHistory.ps1` | 深度历史分析 —— 解码的配置文件加载时间戳、配置文件服务事件日志、已删除配置文件的 NTFS 残留 |
| `Extract-BrowserHistory.ps1` | 通过原始二进制提取从 Chrome/Edge 中恢复 URL —— 无需 sqlite3,可通过远程 shell 运行 |
| `Detect-PrivacyShield.ps1` | 针对 PrivacyShield Browser 的 7 种检测方法 —— 可捕获活动安装以及已移除安装的取证痕迹 |
| `Capture-MemoryDump.ps1` | 易失性证据收集 —— 通过 WinPMem 进行的 RAM 转储、进程、网络连接、事件日志、prefetch、浏览器数据 |
### 修复
| 脚本 | 用途 |
|--------|---------|
| `Remove-UserProfile.ps1` | 调查后安全移除域用户配置文件 —— WMI 移除、注册表清理、验证 |
## 存在的原因
基于 DNS 的内容过滤器通过拦截 DNS 查询并阻止被禁止的域来工作。加密代理浏览器彻底打破了这一点 —— 本地 DNS 解析器从不被查询,因此过滤器永远看不到目标地址。这些浏览器也不会在本地留下任何取证痕迹:没有历史记录、没有 cookies、没有缓存。
恢复访问内容的**唯一**方法是通过易失性内存 (RAM) 取证和 Windows artifact 分析:
| 取证来源 | 普通浏览器 | 代理浏览器 |
|----------------|---------------|---------------|
| 浏览器历史记录 DB | 完整的 URL 历史 | 只有代理基础设施的 URL |
| DNS 客户端日志 | 查询的每一个域名 | 只有代理域名 |
| 网络跟踪 | 可见目标 IP | 到单一代理 IP 的加密隧道 |
| **内存转储** | RAM 中的 URL | **RAM 中的 URL** ✓ |
| **Prefetch 文件** | 应用程序执行记录 | **应用程序执行记录** ✓ |
| **Store 部署日志** | 安装事件 | **安装事件** ✓ |
| **配置文件服务日志** | 用户登录时间戳 | **用户登录时间戳** ✓ |
本工具包针对了所有有效的恢复方法。
## 使用方法
通过后台 shell(ScreenConnect、ConnectWise、PSExec)以 Administrator 身份远程运行。所有输出仅发送到控制台 —— 不向磁盘写入任何内容(`Capture-MemoryDump.ps1` 除外)。
1. 在每个脚本顶部的 `CONFIG` 部分编辑目标用户名和 SID
2. 粘贴到您的远程 shell 中
3. 复制控制台输出以作记录
## 检测内容
**代理/隐私浏览器:** PrivacyShield 以及类似的通过 Microsoft Store 分发的基于 NW.js 的加密代理浏览器。
**VPN/隧道应用:** 35 款以上的 VPN 和代理应用程序(Psiphon、Ultrasurf、Tor、商业 VPN 客户端)。
**浏览器扩展:** Chrome 和 Edge 中的 VPN、代理和匿名化扩展。
**基础设施缺陷:** 缺少过滤代理、未过滤的 DNS 解析器、Microsoft Store 未被屏蔽。
**取证异常:** 浏览器历史记录为空(代理浏览器特征)、已删除的配置文件仍保留注册表项。
## 环境要求
- Windows 10/11,PowerShell 5.1+,Administrator 权限
- 用于内存转储的 WinPMem —— [下载](https://github.com/Velocidex/WinPmem/releases)
## 许可证
MIT
标签:AI合规, Chrome取证, DNS 解析, DNS过滤绕过, Edge取证, EDR, HTTPS请求, HTTP工具, IPv6, IT合规, Libemu, OpenCanary, PowerShell, SecList, SID分析, VPN扩展检测, Windows事件日志, Windows取证, 事件响应工具, 企业安全, 内存取证, 加密代理浏览器, 子域名变形, 安全基线检查, 安全应急响应, 安全脚本, 数字取证, 无文件历史恢复, 浏览器历史提取, 端点合规审计, 终端安全, 网络安全审计, 网络资产管理, 脆弱性评估, 自动化脚本, 预读取文件分析