11月3日笔记(根据凭据提权)

用户凭据操作

枚举 Unattended 凭据

无人值守(Unattended)安装允许应用程序在不需要管理员关注下自动安装。无人值守安装的问题是会在系统中残留一些配置文件,其中可能包含本地管理员的用户名和密码,常见的路径如下。

C:\sysprep.inf
C:\syspreg\sysprep.xml
C:\Windows\system32\sysprep.inf
C:\windows\system32\sysprep\sysprep.xml
C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\PantheriUnattendiUnattended.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\System32\Sysprep\Unattend.xml
C:\Windows\System32\Sysprep\Panther\Unattend.xml

测试人员可以全盘搜索上述配置文件,并检索User、Accounts、LocalAccounts、UserAccounts、Administrator、Password等关键字来获取管理员凭据。

MetaSploit 提供了 post/windows/gather/enum unattend 模块,可以从 Unattend 配置文件中自动化检索出用户密码。

获取组策略凭据

微软在 Windows Server 2008中引入了组策略首选项,允许网络管理员对指定计算机和用户配置特定的设置。在大型企业或组织的域环境中,网络管理员往往会通过下发组策略的方式对所有加入域的计算机的本地管理员密码进行批量修改。

在新建一个组策略后,域控制器会自动在 SYSVOL 共享目录中生成一个 XML 文件该文件保存了组策略更新后的密码。SYSVOL 是在安装活动目录时创建的一个用于存储公共文件服务器副本的共享文件夹,主要存放登录脚本、组策略数据及其他域控制器需要的域信息等,并在所有经过身份验证的域用户或者域信任用户范围内共享。

在 SYSVOL 目录中搜索,可以找到一个名为“Groups.xml”的文件,其中的 cpassword字段保存了经过 AES 256 算法加密后的用户密码。

但是,微软在 2012年公布了该密码的加密私钥,这意味着任何经过认证的用户都可以读取保存在 XML 文件中的密码,并通过私钥将其进行解密。并且,由于通过组策略批量修改的本地管理员密码都是相同的,如果获得了一台机器的本地管理员密码,就可以获取整个域内所有机器的管理权限。

MetaSploit 框架内置 post/windows/gather/credentials/gpp 模块,可以自动化搜索位于SYSVOL 共享目录中的XML,并从中解密出用户密码。

HiveNightmare

2021年7月,Microsoft 发布紧急安全公告,公开了一个Windows 提权漏洞(CVE-2021-36934)。由于Windows 中多个系统文件的访问控制列表(ACL)过于宽松,使得任何标准用户都可以从系统卷影副本中读取包括 SAM、SYSTEM、SECURITY 在内的多个系统文件。由于 SAM 文件是存储用户密码哈希值的安全账户管理器,进而可以获取所有本地用户 NTLM Hash 值,通过暴力破解或哈希传递等方法就能实现本地权限提升。该漏洞影响 Windows 10 Version 1809 发布以来的所有 Windows 版本,包括 Windows11,被称为“HiveNightmare”。

示例:

系统保护在 Windows 操作系统中默认启用,因此如果已创建系统还原点,那么标准用户可直接从卷影副本中访问和转储 SAM、SYSTEM、SECURITY 文件。这些文件在系统中的原始路径如下:

C:Windows\System32\config\SAM
C:\Windows\System32\config\SECURITY
C:\Windows\System32\config\SYSTEM

1、以标准用户执行以下命令:

icacls C:\Windows\System32\config\SAM

若输出“BUILTIN\Users:(I)(RX)”,则表示该系统易受攻击。

2、将编译好的利用程序 HiveNightmare.exe上传到目标主机。直接运行后即可将 SAM、SYSTEM、SECURITY 转储到当前目录。

3、将三个文件复制到本地,使用 Impacket 项目中的 secretsdump.py 导出 SAM 文件中的用户哈希值。

得到用户的哈希值后,测试人员可以对其进行暴力破解,也可以直接使用本地管理员用户进行哈希传递,从而获取目标主机的 SYSTEM 权限。

Zerologon 域内提权

Zerologon(CVE-2020-1472)是Netlogon远程协议的一个特权提升洞,可以在不提供任何凭据的情况下通过身份验证,并实现域内提权。

该漏洞的最常见的利用方法是调用Netlogon中的RPC函数NetrServerPasswordSet2来重置域控制器的密码。注意,这里重置的是域控机器账户的密码,该密码由系统随机生成,密码强度是 120个字符,并且会定时更新。机器用户拥有域用户的一切属性,在特定意义上也是一种域用户。域内的机器账户以“机器名+ ”来命名,如域控制器 D C − 1 的机器用户就是 D C − 1 ”来命名,如域控制器DC-1的机器用户就是DC-1 来命名,如域控制器DC1的机器用户就是DC1

机器账户是不允许登录的,所以不能直接通过重置后的机器账户来登陆域控制器但是,域控制器的机器账户在默认情况下拥有 DCSync 权限,因此可以通过 DCSync 攻击导出域管理员密码的哈希值,进而获取域控权限。

Print Spooler 提权漏洞

PrintNightmare

PrintNightmare 是广泛影响 Windows 系统各版本的严重安全漏洞,发生在 WindowsPrint Spooler 服务中,有两种变体,一种导致权限提升(CVE-2021-1675),另一种允许远程代码执行(CVE-2021-34527)。2021年6月8日,微软发布安全更新补丁,修复了50 个安全漏洞,其中包括一个 Windows Print Spooler 权限提升漏洞(CVE-2021-1675)又披露了 Windows Print Spooler 中的远程代码执行漏洞(CVE-2021-34527)。

标准用户可以通过 PrintNightmare 漏洞绕过 PfcAddPrinterDriver 的安全验证,并在打印服务器中安装恶意的驱动程序。若当前所控制的用户在域中,则可以连接到域控制器中的 Print Spooler 服务并在域控制器中安装恶意的驱动程序,进而接管整个域环境。

本地提权

① 使用 MetaSploit 生成一个恶意的 DLL 文件作为攻击载荷,要生成 64 位 DLL 文件,因为 Print Spooler 服务启动时执行的二进制文件 spoolsv.exe 为 64 位。

② 从 GitHub 下载相关利用工具,将编译好的 SharpPrintNightmare.exe 和 reverse _tcp.dll一起上传到目标主机。用标准用户权限执行以下命令,成功获取系统 SYSTEM 权限。

SharpPrintNightmare.exe reverse_tcp.dll

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

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

相关文章

Linux·进程控制(system V)

1. 共享内存 system V共享内存是最快的IPC形式,之前的管道是基于Linux内核开发的通讯方案,其读写接口都是现成的,因此内核设计者为了完成进程间通讯任务并不需要新增太多代码。而共享内存属于system V标准,是操作系统单独…

[JAVAEE] 面试题(二) - CAS 和 原子类

目录 一. CAS的实现原理 1.1 伪代码分析 1.2 底层实现 二. CAS 操作示例 三. ABA问题 四. 原子类 4.1 使用原子类的目的 4.2 原子类的使用示例 五. 总结 一. CAS的实现原理 CAS(compare and swap 比较和交换)是一种用于实现无锁并发的技术. 1.1 伪代码分析 // 伪代…

高职院校软件技术专业群的建设方案

一、引言 在数字化时代,软件技术已成为信息技术的核心驱动力,它不仅深刻地改变了人们的生产和生活方式,还成为了推动产业升级和促进经济高质量发展的关键引擎。随着全球数字化转型的加速,软件技术的重要性日益凸显,它…

不适合的学习方法

文章目录 不适合的学习方法1. 纯粹死记硬背2. 过度依赖单一资料3. 线性学习4. 被动学习5. 一次性学习6. 忽视实践7. 缺乏目标导向8. 过度依赖技术9. 忽视个人学习风格10. 过于频繁的切换 结论 以下是关于不适合的学习方法的更详细描述,包括额外的内容和相关公式&…

Rust精简核心笔记:第二波,语法精髓部分解锁

前面介绍了Rust精简比较第一波 Rust精简核心笔记:第一波,深入浅出语法精华-CSDN博客 把第二波整理如下,通过三波会把全部Rust核心、实用、最简练的语法整理出来,最高效掌握Rust。 Rust精简笔记(二) Rust核心笔记第二波总结整理&am…

CST软件如何理解Axial Ratio轴比

这个问题很多用户问,所以解答一下。 之前写过两个偏振片的案例,一个从S参数看轴比,另一个从远场结果中优化轴比。 下面我们分析一下电磁波的轴比。首先,轴比AR最普通的定义就是椭圆极化长短轴的比: 定义1&#xff1…

高等数学 6.2 定积分在几何学上的应用

文章目录 一、平面图形的面积1.直角坐标情形2.极坐标情形 二、体积1.旋转体体积2.平行截面面积为已知的立体的体积 三、平面曲线的弧长 一、平面图形的面积 1.直角坐标情形 我们已经知道,由曲线 y f ( x ) ( f ( x ) ⩾ 0 ) y f(x) (f(x) \geqslant 0) yf(x)(f…

Nginx 实现动态封禁IP,详细教程来了

Nginx 实现动态封禁IP,详细教程来了 需求环境准备设计方案在操作系统层面,配置 iptables,来拦截指定 IP 的网络请求在 Web 服务器层面,通过 Nginx 自身的 deny 选项或者 lua 插件配置 IP 黑名单在应用层面,在处理请求之…

SAP(PP生产制造)拆解工单业务处理

1、BOM维护 要拆解的成品或半成品要和原成品、半成品BOM一致 2、创建拆解工单 CO01选择拆解工单的类型,以及填写拆解的物料和拆解工厂 维护工单组件 注意: 1、拆解入库组件的数量需要维护为负数 2、拆解工单投料组件数量维护为正数 3、拆解工单收发…

【已解决】cra 配置路径别名 @ 后,出现 ts 报错:找不到模块“@/App”或其相应的类型声明。ts(2307)

cra 配置路径别名 后,出现 ts 报错:找不到模块“/App”或其相应的类型声明。ts(2307) 然后可以在 tsconfig.json 中配置 baseUrl 和 paths : {"compilerOptions": {"target": "es5","lib": [&quo…

定制化视频生成新模范!零样本主体驱动,精确运动控制!复旦阿里等发布DreamVideo-2

文章链接:https://arxiv.org/pdf/2410.13830 项目链接:https://dreamvideo2.github.io/ 亮点直击 DreamVideo-2,首个无需微调,同时支持主体定制和运动控制的零样本视频定制框架,能够通过设计的参考注意力学习主体外观&…

mockito+junit完成单元测试

一:单元测试的特点 配合断言使用(可以杜绝System.out)可以重复执行不依赖环境不会对数据产生影响spring的上下文环境不是必须的一般都需要配合mock类框架来实现 二:常用的mock类框架 mockito 官网:Mockito framew…

【LeetCode:153. 寻找旋转排序数组中的最小值 + 二分】

在这里插入代码片 🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕…

【Python系列】poetry安装与使用

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

linux之网络子系统- TCP连接的开销,主要是内存的开销

一、相关实际问题 内核是如何管理内存的如何查看内核使用的内存信息服务器上一条ESTABLISH状态的空连接需要消耗多少内存机器上出现了3万多个TIME_WAIT,内存开销会不会很大 二、Linux内核如何管理内存 内核针对自己的应用场景,使用了一种叫做SLAB/SLU…

第三十四篇:URL和URI的区别,HTTP系列一

前面我们讲到通过TCP协议通信双方建立可靠连接,那么此时双方进行通信,需要用人能理解的形式进行信息组织,也就是为各种特定需求服务,满足日常生活中的各种场景。 比如:网页浏览、电子邮件、远程登录、文件传输、网络管…

4499元起!苹果发布新款Mac mini:升级M4/M4 Pro 仅手掌大小

10月30日消息,今晚不仅是小米发布了重磅旗舰,苹果也带来了重磅升级后的新款Mac mini。 目前已经上架官网,采用全新外观设计,仅仅只有手掌大小,可以直接托在手心,不过厚度相对增加了一些,具体尺寸…

Golang | Leetcode Golang题解之第522题最长特殊序列II

题目: 题解: func isSubseq(s, t string) bool {ptS : 0for ptT : range t {if s[ptS] t[ptT] {if ptS; ptS len(s) {return true}}}return false }func findLUSlength(strs []string) int {ans : -1 next:for i, s : range strs {for j, t : range s…

b站小土堆PyTorch视频学习笔记(CIFAR10数据集分类实例)

1、准备数据集并查看数据集长度 train_data torchvision.datasets.CIFAR10(root"./data", trainTrue, transformtorchvision.transforms.ToTensor(), downloadTrue) test_data torchvision.datasets.CIFAR10(root"./data", trainFalse, transformtorch…

ESP8266 连接 MQTT 服务器EMQX 连接MQTTX

目录 1.先用有一台自己的云服务器 2. 使用FinalShell连接阿里云云服务器ECS 3.安装宝塔 4.在云服务器打开8888端口 5.使用外网面板地址打开宝塔面板 6.安装Docker 7.下载emqx 8.打开emqxWeb 界面 9.下载MQTTX 10.EMQX加一个客户端 11.开始通信 12.加入单片机ESP8266 …