常见问题的解决方法
0x01 文件被隐藏¶
Windows 常见的隐藏文件的手段有三个
- 常规属性中勾选隐藏
- attrib 设置额外权限
- NTFS 备用数据流(ads)
1. 设置隐藏属性¶
这种方式勾选查看中的显示隐藏的项目就可以找到
2. attrib 设置额外权限¶
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/attrib
语法
attrib [{+|-}r] [{+|-}a] [{+|-}s] [{+|-}h] [{+|-}o] [{+|-}i] [{+|-}x] [{+|-}p] [{+|-}u] [{+|-}b] [<drive>:][<path>][<filename>] [/s [/d] [/l]]
参数 | 说明 |
---|---|
{+\|-}r |
设置 (+) 或清除 (-) 只读文件属性。 |
{+\|-}a |
设置 (+) 或清除 (-) 存档文件属性。 此属性集标记自上次备份以来发生更改的文件。 xcopy 命令使用存档属性。 |
{+\|-}s |
设置 (+) 或清除 (-) 系统文件属性。 如果文件使用此属性集,则必须先清除该属性,然后才能更改该文件的任何其他属性。 |
{+\|-}h |
设置 (+) 或清除 (-) 隐藏文件属性。 如果文件使用此属性集,则必须先清除该属性,然后才能更改该文件的任何其他属性。 |
{+\|-}o |
设置 (+) 或清除 (-) 脱机文件属性。 |
{+\|-}i |
设置 (+) 或清除 (-) 非内容索引文件属性。 |
{+\|-}x |
设置 (+) 或清除 (-) 推移文件属性。 |
{+\|-}p |
设置 (+) 或清除 (-) 固定的文件属性。 |
{+\|-}u |
设置 (+) 或清除 (-) 取消固定的文件属性。 |
{+\|-}b |
设置 (+) 或清除 (-) SMR Blob 文件属性。 |
[<drive>:][<path>][<filename>] |
指定要查看或更改其属性的目录、文件或文件组的位置和名称。 可以在 filename 参数中使用 ? 和 * 通配符来显示或更改一组文件的属性。 |
/s | 将 attrib 和任何命令行选项应用于当前目录及其所有子目录中的匹配文件。 |
/d | 将 attrib 和任何命令行选项应用于目录。 |
/l | 将 attrib 和任何命令行选项应用于符号链接,而不是符号链接的目标。 |
/? | 在命令提示符下显示帮助。 |
比较常见的隐藏方法
其实也就是
- 设置系统文件属性
- 设置存档文件属性
- 设置隐藏文件属性
- 设置文件只读属性
将参看 -> 选项 -> 文件夹选项 -> 查看中的隐藏受保护的操作系统文件(推荐) 前面的选项取消勾选就可以看到了
可以通过 attrib name
的方式查看某个文件或文件夹的属性
确定属性后,可以通过 attrib -x
来取消相关属性设置
3. NTFS 备用数据流¶
在 NTFS 文件系统中允许一个文件或目录拥有多个独立的“数据流”(streams)。每个文件都有一个主数据流(默认可见的内容,例如文本文件里的文字),而 ADS 则是附加的“隐藏流”,可以存储额外的数据(如二进制、文本或元数据)。
攻击者可以将恶意内容放在隐藏流中,之后无论是二进制还是 webshell 这类的文本都可以正常调用,直接使用 dir
是看不到的
一般 ADS 的用途为: 互联网下载文件标记
Windows 使用 ADS 的 :Zone.Identifier:$DATA
流来标记文件来源(e.g., 从互联网下载的文件会附加这个流,记录“Internet Zone”)。这触发安全警告(如“此文件可能不安全”),并与 SmartScreen 或 Defender 集成。
1) 创建 NTFS 备用数据流¶
创建一个 NTFS 备用数据流方法如下:
2) 使用自带命令查看和删除备用数据流¶
查看 NTFS 备用数据流
使用 type 和 dir 查看该文件
如果想查看所有的数据流,需要使用 dir /r
,可以使用 more < xxx:xxx
来获取隐藏流的内容
删除 NTFS 备用数据流
Windows 自带的命令(除 PowerShell) 无法直接删除隐藏流,但是可以通过置空的方法来完成
3) 使用 streams.exe 查看和删除备用数据流¶
SysinternalsSuite
中的 streams.exe
就是用来干这个的
查看 NTFS 备用数据流
删除 NTFS 备用数据流
4) 通过 PowerShell 查看和删除备用数据流¶
查看 NTFS 备用数据流
删除 NTFS 备用数据流
0x02 恶意文件被删除¶
1) 根据二进制文件执行记录查找¶
具体参照 常规安全检查 -> 0x01 近期活动