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/

参数详解表

参数作用说明
--host0.0.0.0监听所有网络接口,允许外部访问
--port80使用HTTP标准端口提供服务
--authanonymous匿名认证,无需登录验证
--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服务器地址攻击连接点,指向恶意文件源

把以上所有的代码复制到之前新建的库文件中,并保存。




  
  @windows.storage.dll,-34582
  6
  true
  @imageres.dll,-1003
  
    {7d49d726-3c21-4f05-99aa-fdc2c9474656}
  
  
  
    
      true
      false
      
        http://192.168.50.128/
      
    
  


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

接下来文章中进行说明以上的后续内容。


创作不易求一波暴击点赞❤️ 关注 收藏⭐️ 评论

您的支持是我创作最大的动力!

posted @ 2025-12-04 18:38  gccbuaa  阅读(9)  评论(0)    收藏  举报