跳转至

常见问题的解决方法

0x01 文件被隐藏

Windows 常见的隐藏文件的手段有三个

  • 常规属性中勾选隐藏
  • attrib 设置额外权限
  • NTFS 备用数据流(ads)

1. 设置隐藏属性

image-20240111212337038

image-20240111212359778

这种方式勾选查看中的显示隐藏的项目就可以找到

image-20240111212558198

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 +s +a +h +r 文件地址

其实也就是

  • 设置系统文件属性
  • 设置存档文件属性
  • 设置隐藏文件属性
  • 设置文件只读属性

将参看 -> 选项 -> 文件夹选项 -> 查看中的隐藏受保护的操作系统文件(推荐) 前面的选项取消勾选就可以看到了

image-20240111214236734

image-20240111214307222

image-20240111214330464

可以通过 attrib name 的方式查看某个文件或文件夹的属性

image-20240111214419477

确定属性后,可以通过 attrib -x 来取消相关属性设置

attrib -s -a -h -r 文件地址

image-20240111214607636

3. NTFS 备用数据流

在 NTFS 文件系统中允许一个文件或目录拥有多个独立的“数据流”(streams)。每个文件都有一个主数据流(默认可见的内容,例如文本文件里的文字),而 ADS 则是附加的“隐藏流”,可以存储额外的数据(如二进制、文本或元数据)。

攻击者可以将恶意内容放在隐藏流中,之后无论是二进制还是 webshell 这类的文本都可以正常调用,直接使用 dir 是看不到的

一般 ADS 的用途为: 互联网下载文件标记

Windows 使用 ADS 的 :Zone.Identifier:$DATA 流来标记文件来源(e.g., 从互联网下载的文件会附加这个流,记录“Internet Zone”)。这触发安全警告(如“此文件可能不安全”),并与 SmartScreen 或 Defender 集成。

1) 创建 NTFS 备用数据流

创建一个 NTFS 备用数据流方法如下:

echo "这是主数据流的内容(可见)。" > demo.txt

image-20250716213757549

echo "这是隐藏的备用数据流的内容(不可见)。" > demo.txt:hidden_stream.txt

image-20250716213914713

2) 使用自带命令查看和删除备用数据流

查看 NTFS 备用数据流

使用 type 和 dir 查看该文件

image-20250716214037705

如果想查看所有的数据流,需要使用 dir /r,可以使用 more < xxx:xxx 来获取隐藏流的内容

image-20250716214413128

删除 NTFS 备用数据流

Windows 自带的命令(除 PowerShell) 无法直接删除隐藏流,但是可以通过置空的方法来完成

3) 使用 streams.exe 查看和删除备用数据流

SysinternalsSuite 中的 streams.exe 就是用来干这个的

查看 NTFS 备用数据流

streams64.exe -s <dir>

image-20250716214751754

image-20250716214820072

删除 NTFS 备用数据流

streams64.exe -d <file>

image-20250716215235150

4) 通过 PowerShell 查看和删除备用数据流

查看 NTFS 备用数据流

Get-Item -Path demo.txt -Stream *
Get-Content -Path demo.txt -Stream hidden_stream.txt

image-20250716215643589

删除 NTFS 备用数据流

Remove-Item -Path demo.txt -Stream hidden_stream.txt

image-20250716215802900

0x02 恶意文件被删除

1) 根据二进制文件执行记录查找

具体参照 常规安全检查 -> 0x01 近期活动

扫码_搜索联合传播样式-标准色版