渗透测试的WINDOWS NTFS技巧集合
字数 1595 2025-08-29 08:32:24
Windows NTFS 文件系统渗透测试技巧全集
目录
- 技巧1: 创建没有权限的文件夹 (CVE-2018-1036)
- 技巧2: 使用供选数据流(ADS)绕过路径限制
- 技巧3: 创建无法通过"..."文件夹找到的文件
- 技巧4: "隐藏"目录连接的指向目标
- 技巧5: 隐藏供选数据流(ADS)
- 技巧6: 隐藏进程二进制
- Windows CMD的技巧
- 防御建议
技巧1: 创建没有权限的文件夹 (CVE-2018-1036)
原理
Windows允许为文件夹设置特殊权限,例如允许创建文件但不允许创建文件夹。通过在文件名末尾添加::$INDEX_ALLOCATION可以绕过这种限制。
操作步骤
- 在受限文件夹(如C:\Windows\Tasks\)中执行:
mkdir test::$INDEX_ALLOCATION - 现在可以在创建的文件夹中自由创建文件和子文件夹
删除方法
rd test::$INDEX_ALLOCATION
影响
- 绕过ACL权限限制
- 可能导致权限提升
- 微软已修复(CVE-2018-1036)
技巧2: 使用供选数据流(ADS)绕过路径限制
ADS基础
- 文件格式:
<文件名>:<数据流名称>:<类型> - 默认格式:
test.txt::$DATA - 特殊流:
Zone.Identifier(下载文件时自动添加)
关键技巧
-
执行ADS中的程序:
wmic process call create "C:\test:Putty.exe" -
文件夹ADS:
echo 123 > C:\Windows\Tracing:test.dll- 路径解析会返回C:\Windows\,但实际上文件存储在C:\Windows\Tracing中
-
绕过安全检查:
- 上传
:foo.ps1文件,创建applicationFolder\uploadedData:foo.ps1 - 安全检查认为文件在
applicationFolder\中
- 上传
-
特殊字符:
- 使用原生API创建包含
"或*的文件名 - 可能导致路径解析问题或XSS
- 使用原生API创建包含
技巧3: 创建无法通过"..."文件夹找到的文件
创建特殊文件夹
mkdir ....::$INDEX_ALLOCATION
访问方法
cd ...\...\
特性
- 无法通过GUI(explorer.exe)正常访问
- PowerShell搜索会陷入无限循环
- 大多数命令行工具可以访问
- 反病毒软件通常可以检测其中内容
技巧4: "隐藏"目录连接的指向目标
创建隐藏目录连接
mklink /J "..." "C:\Windows\System32"
特性
dir命令显示[...]而非实际目标- 可以创建多级连接点
- 路径混淆可能导致执行错误文件
安全影响
- 可用于TOCTOU攻击
- 可能绕过应用程序白名单
技巧5: 隐藏供选数据流(ADS)
隐藏方法
-
使用保留名:
echo 123 > ...:hidden.txt- 不会显示在
dir /r或streams.exe中
- 不会显示在
-
添加空格和点:
echo test > "test. .::$DATA"- 工具无法正常访问
-
驱动器根目录ADS:
echo 123 > C:\:abc.txt- 隐藏在
dir /r中
- 隐藏在
技巧6: 隐藏进程二进制
操作步骤
-
创建三个文件:
file(合法程序)file. .(恶意程序)filex x(另一个合法程序)
-
使用调试器(WinDbg)修改进程创建参数:
- 在
ntdll!NtCreateUserProcess设置断点 - 修改文件名指针,将
x改为.
- 在
-
结果:
- 执行
file. .(恶意程序) - 任务管理器显示
file的签名 - Process Explorer显示
filex x的路径
- 执行
影响
- 可能绕过基于哈希的白名单检查
- 进程信息显示不准确
Windows CMD的技巧
命令混淆
-
插入^符号:
ca^l^c- 等同于
calc
- 等同于
-
零长度环境变量:
cal%os:~0,-56%c- 利用子字符串创建空变量
-
路径技巧:
C:\Windows/\//\system32\calc.exe- 混合使用
\和/
- 混合使用
-
UNC路径:
\\127.0.0.1\C$\windows\system32\calc.exe
防御建议
-
权限设置:
- 不要仅依赖文件夹创建权限作为安全边界
-
路径处理:
- 规范化所有路径
- 检查特殊字符和ADS
-
进程监控:
- 不依赖表面信息验证进程合法性
-
工具使用:
- 使用专门工具检测ADS和特殊文件夹
- 考虑使用原始磁盘扫描而非API
-
输入验证:
- 严格验证文件名和路径输入
- 处理所有可能的路径表示形式