如何使用SCCMSecrets识别SCCM策略中潜在的安全问题

关于SCCMSecrets

SCCMSecrets是一款针对SCCM策略的安全扫描与检测工具,该工具旨在提供一种有关 SCCM 策略的全面安全检测方法。

该工具可以从各种权限级别执行,并将尝试发现与策略分发相关的潜在错误配置。除了分发点上托管的包脚本外,它还将转储遇到的所有秘密策略的内容以及集合变量。

工具要求

requests

typer[all]

bs4

cryptography

requests_ntlm

requests_toolbelt

pyasn1_modules

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

$ git clone https://github.com/synacktiv/SCCMSecrets

然后切换到项目目录中,激活虚拟环境,并使用pip命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

$ cd SCCMSecrets$ python3 -m venv .venv && source .venv/bin/activate$ python3 -m pip install -r requirements.txt

工具使用

$ python3 SCCMSecrets.py --helpUsage: SCCMSecrets.py [OPTIONS]                                                                                                                                                                                   --distribution-point         TEXT     目标分发点[默认值:无][必需]                                                                                                               --client-name                TEXT     将在SCCM中创建的客户端的名称。需要FQDN(例如fake.corp.com)[默认值:无]  --management-point           TEXT     客户的管理点。仅当管理点与分发点不在同一台机器上时才需要。[默认值:无] --bruteforce-range           INTEGER  执行匿名策略脚本转储时bruteforce的包ID数。介于0(00000)和1048575(FFFFF)之间[默认值:4095]--extensions                 TEXT     逗号分隔的扩展名列表,用于确定检索包脚本时将下载哪些文件[默认值:.ps1、.bat、.xml、.txt、.pfx]--username                   TEXT     域帐户的用户名(可以是用户帐户,也可以是机器帐户)[默认值:无]--password                   TEXT     域帐户的密码(可以是用户帐户,也可以是机器帐户)[默认值:无]--registration-sleep         INTEGER  注册新设备后应等待的时间(秒)。建议几分钟,以便将新设备添加到设备集合中(默认情况下为3分钟,可能需要增加)[默认值:180]--use-existing-device        TEXT     此选项可用于使用以前注册的设备重新运行SCCMSecrets.py;或者冒充合法的SCCM客户端。在这两种情况下,它都期望路径该文件夹至少包含一个guid.txt文件(SCCM设备guid)和key.pem文件(客户端的私钥)。 [默认值:无]--verbose                 启用Verbose输出--help                                显示工具帮助信息和退出   

工具运行演示

运行 SCCMSecrets.py 而不提供凭据(尝试利用自动设备批准来检索秘密策略,尝试利用分发点匿名访问来转储外部资源):

$ python3 SCCMSecrets.py --distribution-point 'mecm.sccm.lab/' --client-name test.sccm.lab

使用域用户凭据运行 SCCMSecrets.py(尝试利用自动设备批准来检索机密策略,使用提供的凭据或匿名访问来转储外部资源)。指定较短的暴力破解范围和特定文件扩展名以将其列入白名单,以进行外部资源转储:

$ python3 SCCMSecrets.py --distribution-point 'mecm.sccm.lab/' --client-name test2.sccm.lab --bruteforce-range 64 --extensions '.txt,.xml,.ps1,.pfx,.ini,.conf' --username 'franck' --password 'rockthee' --verbose

使用域机器帐户凭据运行 SCCMSecrets.py(注册一个新的已批准的设备,允许转储机密策略,使用提供的凭据或匿名访问进行外部资源转储)。指定注册后等待的更长时间,以确保在请求策略之前将注册的设备成功添加到集合中:

$ python3 SCCMSecrets.py --distribution-point 'mecm.sccm.lab/' --client-name test3.sccm.lab --verbose --registration-sleep 300 --username 'azule$' --password 'Password123!'

运行 SCCMSecrets.py 以模拟被入侵的合法 SCCM 客户端。该CLIENT_DEVICE文件夹包含一个 guid.txt 文件(被入侵客户端的 GUID)和一个 key.pem 文件(被入侵客户端的私钥):

$ python3 SCCMSecrets.py --distribution-point 'mecm.sccm.lab/' --client-name test4.sccm.lab --verbose --use-existing-device CLIENT_DEVICE/

项目地址

SCCMSecrets:【GitHub传送门】

参考资料

https://www.synacktiv.com/publications/sccmsecretspy-exploiting-sccm-policies-distribution-for-credentials-harvesting-initial 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/55111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++篇】启航——初识C++(下篇)

接上篇【C篇】启航——初识C(上篇) 目录 一、引用 1.引用的概念 2.引用的基本语法 3.引用的特点 3.1 别名 3.2 不占用额外内存 3.3 必须初始化 3.4 不能为 NULL 4.引用的使用 4.1 函数参数传递 4.2 返回值 4.3 常量引用 5.引用和指针的关…

网站建设公司如何选?2024专业网站建设公司哪家好TOP3

要找一家靠谱的网站建设公司,可以根据以下五点判断: 1.企业的工商信息 企业有多少人、什么时候成立的、成立资金是多少、是否有违约记录这些都可以在查企业的那种app里可以看到,去查的时候一定要仔细甄别,别最后找了一家皮包公司…

PCL 索引空间采样

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 索引空间采样 2.1.2 可视化原始点云和下采样后的点云 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总&#xf…

软件设计师——计算机网络

📔个人主页📚:秋邱-CSDN博客☀️专属专栏✨:软考——软件设计师🏅往期回顾🏆:🌟其他专栏🌟:C语言_秋邱 一、OSI/ RM七层模型(⭐⭐⭐) ​ 层次 名称 主要功…

主流的消息队列

简介 目前市面上主流开源的消息队列主要RabbitMQ、RockectMQ、Kafka、ActiveMQ。这四种消息队列都是比较常见,下面我们从各个维度比较他们有缺点。 ActiveMQ ActiveMQ作为“老古董”,市面上用的已经不多。 社区: Apache 开发语言&#xff…

【Iceberg分析】调研Iceberg中表的原地演变

调研Iceberg中表的原地演变 文章目录 调研Iceberg中表的原地演变原生非分区表文件关系图表的原地演变之表schema演变新增字段new_column文件关系变化图为新增字段写入数据文件关系变化图删除新增字段文件关系变化图新增字段new_column2文件关系变化图删除数据文件关系变化图 原…

【并发】ThreadLocal 为什么会内存泄露

ThreadLocal 引起内存泄漏的原因主要与 ThreadLocalMap 的实现方式有关。ThreadLocalMap 使用了弱引用来存储 ThreadLocal 对象,但是它的值是强引用。如果不正确地使用 ThreadLocal 或者忘记在适当的时候移除 ThreadLocal 值,可能会导致内存泄漏。 内存…

TCP编程:从入门到实践

目录 一、引言 二、TCP协议原理 1.面向连接 2.可靠传输 三、TCP编程实践 1.TCP服务器 2.TCP客户端 四、总结 本文将带你了解TCP编程的基本原理,并通过实战案例,教你如何在网络编程中运用TCP协议。掌握TCP编程,为构建稳定、高效的网络通信…

C++ | Leetcode C++题解之第433题最小基因变化

题目&#xff1a; 题解&#xff1a; class Solution { public:int minMutation(string start, string end, vector<string>& bank) {int m start.size();int n bank.size();vector<vector<int>> adj(n);int endIndex -1;for (int i 0; i < n; i)…

爬虫及数据可视化——运用Hadoop和MongoDB数据进行分析

作品详情  运用Hadoop和MongoDB对得分能力数据进行分析&#xff1b;  运用python进行机器学习的模型调理&#xff0c;利用Pytorch框架对爬取的评论进行情感分析预测&#xff1b;  利用python和MySQL对网站的数据进行爬取、数据清洗及可视化。

快速实现AI搜索!Fivetran 支持 Milvus 作为数据迁移目标

Fivetran 现已支持 Milvus 向量数据库作为数据迁移的目标&#xff0c;能够有效简化 RAG 应用和 AI 搜索中数据源接入的流程。 数据是 AI 应用的支柱&#xff0c;无缝连接数据是充分释放数据潜力的关键。非结构化数据对于企业搜索和检索增强生成&#xff08;RAG&#xff09;聊天…

SpringBoot框架下体育馆管理系统的构建

1引言 1.1课题背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理&#xff0c;这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制&#xff0c;不仅提高了工作效率&#xff0c;而且大大的提高了其…

【C++ STL】深入理解string类的底层实现

string类的模拟实现 一.string的构造与析构函数1.普通构造函数与析构函数2.拷贝构造的浅拷贝所带来的问题3.如何实现深拷贝 二.运算符重载1.赋值运算符重载2.大小比较相关的运算符重载 三.迭代器的实现四.string常用操作的实现1.静态const成员npos的定义2.插入操作3.查找操作4.…

江协科技STM32学习- P19 TIM编码器接口

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

C# ReoGrid使用记录

ReoGrid是个类似于Excel的表格控件&#xff0c;作者在WinForm上使用&#xff0c;下面是使用记录。 一、获取当前工作表 Worksheet worksheet dgv.CurrentWorksheet; 二、设置行/列总数&#xff08;用于增删行&#xff09; worksheet.Columns columnCount; worksheet.Rows…

Redis篇(Java操作Redis)

目录 讲解一&#xff1a;简介 讲解二&#xff1a;Jedis Github 一、创建项目、 二、添加依赖 三、配置文件 四、Java连接Redis 五、通过Redis连接池获取连接对象并操作服务器 六、封装JedisUtil对外提供连接对象获取方法 七、Java操作Redis五种数据类型 1. 连接与释放…

助农小程序|助农扶贫系统|基于java的助农扶贫系统小程序设计与实现(源码+数据库+文档)

助农扶贫系统小程序 目录 基于java的助农扶贫系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 5.1.1 农户管理 5.1.2 用户管理 5.1.3 订单统计 5.2.1 商品信息管理 5.3.1 商品信息 5.3.2 订单信息 5.3.3 商品评价 5.3.4 商品退货 四、数据库设计 1、…

深入理解华为仓颉语言的数值类型

解锁Python编程的无限可能&#xff1a;《奇妙的Python》带你漫游代码世界 在编程过程中&#xff0c;数据处理是开发者必须掌握的基本技能之一。无论是开发应用程序还是进行算法设计&#xff0c;了解不同数据类型的特性和用途都至关重要。本文将深入探讨华为仓颉语言中的基本数…

在Linux实时监控某个应用是否运行,未运行,执行运行命令

1、shell脚本(每隔30秒检测一次) 脚本要注意的地方是&#xff1a;在Nodepad编辑的时候要使用Unix&#xff08;LF&#xff09;格式&#xff0c;避免在Linux无法执行命令 #!/bin/bash# RabbitMQ进程名称&#xff08;可能需要根据你的安装进行调整&#xff09; RABBITMQ_PROCE…

代码随想录算法训练营第34天|46. 携带研究材料、416. 分割等和子集

文章目录 46. 携带研究材料416. 分割等和子集 46. 携带研究材料 卡码网 46. 携带研究材料 代码随想录 dp[i][j]表示&#xff0c;考虑到第i个物品的情况下&#xff0c;背包容量为j的最大价值。 m, n map(int, input().split(" ")) costs list(map(int, input().spl…