admin管理员组文章数量:1632156
0x00 前言
在一次应急响应的过程中发现某恶意脚本使用desktop.ini更改文件夹属性进行隐藏。但是一直在忙于出差没啥时间进行研究,刚好现在稍微有一点时间,于是对desktop.ini进行研究。发现网上没有类似文章,遂特此对此研究过程进行记录。
0x01 啥是desktop.ini
首先,对于常年玩电脑的人来说,desktop.ini文件肯定是不陌生的,因为有时候在Windows下需要查看、移动、修改系统文件时,我们需要在 文件夹-文件-更改文件夹和搜索选项-查看-高级设置 中设置以下选项:
desktop.ini同时具有“系统操作文件”和“隐藏文件属性”双重属性,因此需要反勾选“隐藏受保护的操作系统文件”,并选择“显示隐藏的文件、文件夹和驱动器”才会显示desktop.ini
设置完成后,你会发现:神奇!有些文件夹下竟然出现了desktop.ini文件。那么他到底有什么用呢?我们查阅MicroSoft官方的资料库,可以略知一二:
文件系统文件夹通常显示一个标准图标和一组属性,例如指定文件夹是否共享。 可以通过在该文件夹中创建Desktop.ini文件来指定不同的选项来自定义单个文件夹的外观和行为。
如何使用Desktop.ini自定义文件夹 - Win32 apps | Microsoft Learn使用Desktop.ini文件自定义单个文件夹的外观和行为。https://learn.microsoft/zh-cn/windows/win32/shell/how-to-customize-folders-with-desktop-ini注意其中有很重要一段话,后面我们将会利用该命令使其生效:
可以使用 attrib +s FolderName 从命令行将文件夹设为系统文件夹。
有了官方文档做参考,我们可以照着官方文档所给的文件示范来实际操作一下,体验一下该文件的神秘之处。
0x02 如何编写desktop.ini
创建desktop.ini有两种方式:
第一种方式:
新建文件夹后,右键点击 文件夹-属性-自定义-确定,没错,无需修改任何设置项目,即可在该文件夹下生成desktop.ini,原因就是因为,刚刚自定义中默认选择了图片格式,因此你看到生成的desktop.ini应该如下所示:
[ViewState]
Mode=
Vid=
FolderType=Pictures
其实我们不难发现,该文件其实就是记录了文件夹相关信息,便于计算机去读取识别。
第二种方式:
正如上文中官方文件所述,我们可以手动创建编辑desktop.ini:
[.ShellClassInfo]
ConfirmFileOp=0
NoSharing=1
IconFile=Folder.ico
IconIndex=0
InfoTip=Some sensible information.
并保存,保存后按照文档所示,对该文件夹进行命令执行以刷新文件夹属性(这离我随便找了个ico文件复制进来):
attrib +s C:\xxx\xxx\xxx
执行完后可以立即看到,文件夹缩略图发生了改变,同时,如果你把鼠标放上去也会发现提示词发生了变化
0x03 各项参数及其含义
[.ShellClassInfo] 节
不同的属性部分,微软通过不同的节来划分,不同的节名称采用中括号“[”、“]”扩起来,这里先解释[.ShellClassInfo]节
ConfirmFileOp
将此项设置为 0 以避免在删除或移动文件夹时出现“您正在删除系统文件夹”警告。
NoSharing
在 Windows Vista 或更高版本下不受支持。 将此项设置为 1 以防止共享文件夹。
IconFile
如果要为文件夹指定自定义图标,请将此项设置为图标的文件名。 首选 .ico 文件扩展名,但也可以指定.bmp文件,或.exe和.dll包含图标的文件。 如果使用相对路径,则图标可供通过网络查看文件夹的用户使用。 还必须设置 IconIndex 条目。
IconIndex
设置此项以指定自定义图标的索引。 如果分配给 IconFile 的文件仅包含单个图标,请将 IconIndex 设置为 0。
InfoTip
将此项设置为信息性文本字符串。 当光标悬停在文件夹上时,它将显示为信息提示。 如果用户单击文件夹,则信息文本将显示在文件夹的信息块中,低于标准信息。
LocalizedResourceName
官方没有给解释,但是从名称可以直译为“本地化资源名称”,这也解释了为什么在用户目录下进入Desktop文件夹,会在资源管理器里面直接显示桌面的原因了。
下图中两个路径是等价的:
CLSID
这个就非常神奇了,他会影响整个文件夹的工作方式,首先我们来看下他有什么用,根据微软官方的解释,他可以将文件夹链接到其嵌入的对象
CLSID 密钥 - Win32 apps | Microsoft LearnCLSID 是标识 COM 类对象的全局唯一标识符。 如果服务器或容器允许链接到其嵌入的对象,则需要为每个受支持的对象类注册 CLSID。https://learn.microsoft/zh-cn/windows/win32/com/clsid-key-hklm打个比方:如果我将desktop.ini文件设置为如下属性并重新调整权限:
CLSID={21ec2020-3aea-1069-a2dd-08002b30309d}
你会发现,图标变了,并且文件夹名被置空了,双击打开将会是如下的界面
神奇,我竟然在文件夹内打开了控制面板,那么熟悉该功能点的RedTeam应该想起了一个知识点,利用该方法调用一些正常情况下被禁用的组建,这里不详细探讨,可以参考以下链接:
https://github/3gstudent/3gstudent.github.io/blob/b04d1073fc75c9d1bfab04e60be28bf0ac6e2a1a/_posts/2018-1-23-%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7%E2%80%94%E2%80%94%E5%88%A9%E7%94%A8%E5%9B%BE%E6%A0%87%E6%96%87%E4%BB%B6%E8%8E%B7%E5%8F%96%E8%BF%9E%E6%8E%A5%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84NTLMv2%20Hash.mdhttps://github/3gstudent/3gstudent.github.io/blob/b04d1073fc75c9d1bfab04e60be28bf0ac6e2a1a/_posts/2018-1-23-%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7%E2%80%94%E2%80%94%E5%88%A9%E7%94%A8%E5%9B%BE%E6%A0%87%E6%96%87%E4%BB%B6%E8%8E%B7%E5%8F%96%E8%BF%9E%E6%8E%A5%E6%96%87%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84NTLMv2%20Hash.md除此之外还有其他参数等等等等,后续还会补充
0x04 神奇的CLSID
在Windows下有这么一个系统文件夹:C:\Windows\Offline Web Pages
那么他有什么神奇的地方呢?我们先点开看看,发现其打开竟然没有desktop.ini,但是我们明明开了隐藏和系统文件属性显示的啊,为什么呢,我们通过命令行又可以看到(此处需要给dir加参数,显示H属性文件)
这个文件夹本身是用于存储离线网页的,那么问题来了,同样的desktop.ini给其他文件夹能否使用呢,答案当然是可以的:
在某一文件夹下创建如下所示内容的desktop.ini,同时创建一个文本文件hide_file.txt,然后使用命令 attrib +s xxxxx 使其生效:
[.ShellClassInfo]
CLSID={F5175861-2688-11d0-9C5E-00AA00A45957}
那么你会发现此时文件夹会自动修改图标:
当我们进入文件夹时,已经发现所有文件已经被隐藏,即使是打开显示隐藏文件也不会显示。其实它的本质并不是隐藏,而是类似上文中的控制面板,直接新建了一个页面覆盖在原有的文件夹上,让你看不到,即使是没有隐藏属性或系统属性的文件或文件夹,也会被覆盖,让你误以为确实没有文件了,但我们通过命令行或属性依然可以看到:
那他有什么用呢,其实主要还是隐藏文件比较好用,,,其他也没什么用途了。
如果想要将其恢复为正常文件夹,attrib -s C:\xxx\xxx\xxx 即可
0x05 参考
https://books.google.hk/books?id=-STO5wXKPgkC&pg=PA91&lpg=PA91&dq=CLSID%3D%7BF5175861-2688-11d0-9C5E-00AA00A45957%7D&source=bl&ots=QUJBCSYw8U&sig=ACfU3U2ijgIopYlEV1sDrWm1eiKLEcPWNQ&hl=zh-CN&sa=X&ved=2ahUKEwj2p4S1ibOBAxUNbt4KHa3tAkw4ChDoAXoECAQQAw#v=onepage&q=CLSID%3D%7BF5175861-2688-11d0-9C5E-00AA00A45957%7D&f=false
DESKTOP.INI - Windows XP examples - PeatSoft
DESKTOP.INI - Windows ME examples - PeatSoft
https://wwwblogs/Chinasf/archive/2010/01/07/1640922.html
XP 和 Vista 用户文件夹 Desktop.ini - 聊设计|MyStudio Blog
Windows让英文文件夹显示中文名称 | 麦子花开
关于文件夹外观设置文件desktop.ini目前为止最完整的解析 _desktop.ini 标准-CSDN博客
修改desktop.ini 自定义文件夹[高级篇]-CSDN博客
Desktop.ini Documentation - PeatSoft
W32.Flamer: Spreading Mechanism Tricks and Exploits
怎么把自己喜欢的图片弄成界面图标和文件夹图标-ZOL问答
版权声明:本文标题:关于desktop.ini文件的杂谈 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729106367a1186879.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论