HackTheBox·APT
1568485416623001 漏洞分析 206浏览 · 2025-03-24 12:41

1信息搜集

1.1IPv4端口扫描

一共就开放了两个端口:Web和RPC服务。

image.png
图片加载失败


1.2RPC端点枚举

尝试使用rpcclient进行匿名连接,发现连接失败。

image.png
图片加载失败


接着我们继续用rpcmap.py枚举:一共发现了4个DCOM对象。

此扫描提供了一组RPC端点及其UUID。

image.png
图片加载失败


我们可以利用下面的项目来枚举地址IPv6地址。

https://github.com/mubix/IOXIDResolver

image.png
图片加载失败


这个脚本的代码逻辑很简单,即通过DCOM的的IObjectExporter接口获取目标机器的网络信息。

并且使用的是无认证的RPC连接方式。

核心代码如下:核心在于IObjectExporter.ServerAlive2()方法来获取网络接口信息。

image.png
图片加载失败


更加详细的解释就是调用的是DCOM(Distributed Component Object Model)IObjectExporter接口。

1.3IPv6端口扫描

我们现在获取了IPv6地址,对目标机器进行重新扫描。

这儿截一张之后打完这台机器查看网络情况的图。

明明IPv4和IPv6地址都设置了监听,为什么通过IPv4地址扫描不到呢?

image.png
图片加载失败


1.4SMB匿名枚举

这儿通过crackmapexecsmbmap枚举IPv6都会报错。

image.png
图片加载失败


我们尝试连接backup并下载文件。

image.png
图片加载失败


之后发现-u '' -p ''可以枚举成功,而常用的-u 'null' -p ''则会报错。

image.png
图片加载失败


1.5ZIP压缩包爆破

用john爆破得到压缩包密码。

image.png
图片加载失败


解压,发现得到两个关键文件。

image.png
图片加载失败


2立足点获取

2.1NTDS哈希提取

用上面的两个文件中提取出来一堆哈希。

image.png
图片加载失败


接着我们制作两份字典。

2.2字典凭证爆破

利用上面的两份字典进行爆破,但是这样报错,没有枚举几次就报NETBIOS连接错误了。

这儿需要重置机器,否则无法访问IPv6地址。

image.png
图片加载失败


我们只好先爆破用户名,再测试密码:一共就爆破出来三个用户。

image.png
图片加载失败


接着我们继续尝试哈希传递,测试这几个用户。

由于目标有WAF会Ban IP,我们可以尝试用GetTGT.py脚本进行爆破,但是此脚本不支持哈希批量爆破。

我们可以写一个shell脚本来爆破。

image.png
图片加载失败


但是值得注意的是,这儿需要做时间同步,但是用IPv6地址,通过ntpdate似乎无法进行时间同步。

因为Kerberos认证是基于时间的,无法进行时间同步就无法申请票据。

image.png
图片加载失败


尽管无法进行时间同步,但是进行身份验证成功,crackmapexec默认的应该是NTLM认证。

image.png
图片加载失败


我们从数据包也能看出来,这是NTLM认证的 协商/质询/响应 流程。

image.png
图片加载失败


2.3注册表查询

接着我们进行注册表查询。

注:这儿的HKU即指的是HKEY_USERS,涉及该用户相关的注册表项。

image.png
图片加载失败


这儿得到一组凭据,成功通过WinRM连接henry.vinson_adm:G1#Ny5@2dvht

image.png
图片加载失败


至于为什么这个路径存在明文密码,无非就是应用的不安全存储导致的。

3权限提升

3.1Bloodhound

因为我在教室,网络非常不好,利用evil-winrm内置的上传模块太慢了。

我们直接利用powershell内置的网络类命令上传:没看到什么有效的组策略和权限。

image.png
图片加载失败


3.2机器信息枚举

我们可以利用winPEASSeatbelt对服务器进行枚举。

但是这儿有个问题,我们上传运行会被Windows Defender检测到并阻止。

image.png
图片加载失败


我们可以利用evil-winrm内置的Bypass-4MSI模块来绕过。

image.png
图片加载失败


然后用Invoke-Binary模块将可执行程序加载到内存中:等待的时间比较长。

image.png
图片加载失败


我们查看Powershell历史命令文件。

上面这两行用于通过注册表来修改LAN Manager认证级别。

从官方文档可知Level 2代表的是支持NTLM v1认证。

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/network-security-lan-manager-authentication-level

image.png
图片加载失败


同时我们从上的扫描结果中,也可以发现是支持NTLM v1认证的。

image.png
图片加载失败


3.3NTLM v1捕获

上述我们知道目标机器是支持NTLM v1认证,而NTLM v1是基于DES加密的,并且其认证过程存在漏洞,可以将NTLM v1哈希转换为可利用的NTLM哈希。

现在需要一种方法让SYSTEM账户访问我的机器:直接用Defender扫描即可。

在启动Responder之前,需要编辑/etc/responder/Responder.conf将质询设置为1122334455667788,这是crack.sh在其彩虹表所使用的,接着启动responder,并用--lm强制降级为Net-NTLMv1。

接着我利用Windows Defender的命令行工具进行扫描:


-ScanType 1:快速扫描。

-ScanType 2:完全扫描。

-ScanType 3:自定义扫描,需指定路径。

image.png
图片加载失败


另一边已经接收到了Net-NTLM v1哈希,这是个机器账户的NTLM v1哈希。

image.png
图片加载失败


3.4破解NTLMv1哈希

NTLM v1 Hash是非常不安全的,可以被彩虹表破解。

https://github.com/evilmog/ntlmv1-multi

首先用ntlmv1.py脚本对哈希进行分析。

image.png
图片加载失败


利用crack.sh进行彩虹表破解,将NT Hash破解为NTLM Hash,但是这个站在维护,无法使用。

破解出来的结果应该如下所示。

这儿我们考虑无法使用crack.sh这个站该怎么破解NTLM v1哈希。

首先我们利用ct3_to_ntlm.bin计算NTLM v1质询中HTLM Hash的最后4个字符。

image.png
图片加载失败


接着我们需要制作一份哈希字典。

接着继续进行破解,这儿卡住了,似乎一直计算不出来DES密钥,应该是需要很长时间。

image.png
图片加载失败


我们还有另一种爆破方式,利用hashcat进行明文爆破:爆破结果依托于密码字典。

image.png
图片加载失败


显而易见,rockyou.txt中没有包含上面题目中抓取到的NTLM v1 Hash对应的明文密码。

其实主要原因是机器用户的密码随机性太强,无法被爆破。

image.png
图片加载失败


我们继续扩展,怎么爆破NTLM Hash呢,在昨天的比赛中竟然没想到?

其实和上面直接爆破而不是计算的原理是相同的。

image.png
图片加载失败


3.5Dcsync读取

拥有机器用户的哈希,虽然不能登录,但是可以利用Dcsync来读取域内哈希。

image.png
图片加载失败


3.6哈希传递

接着直接哈希传递用管理员连接即可。

image.png
图片加载失败




0 条评论
某人
表情
可输入 255

没有评论