域渗透实战之Outdated
2023-11-23 15:28:54 Author: xz.aliyun.com(查看原文) 阅读量:12 收藏

端口扫描

使用nmap进行端口探测,发现开放了大量端口。

通过扫描结果中提到的一些服务是25/SMTP、53/DNS、389/LDAP、445/SMB和5985/WinRM。这些服务的存在表明这台机器可能是一个 Active Directory 域控制器。

nmapmail.outdated.htb还在TCP 25 和dc.outdated.htbLDAPoutdated.htb端口(636、3268、3269)上认证的 TLS 上 识别了主机名。

SMB枚举

使用crackmapexec确定其操作系统
crackmapexec将操作系统显示为 Windows 10:

可以列出共享文件/share

使用smbclient也可以证明:

读取shares文件

发现一个pdf文件,将其下载到本地。

打开这个pdf,经过翻译之后,发现里面一堆cve漏洞。估计是提示吧。

获取漏洞提示

第一个暗示是他们正在寻找人们将 Web 应用程序的链接发送到[email protected]. 这很有用,并表明有人会点击这些链接。
还有一个 CVE 列表:
● CVE-2022-30190 - 这是 2022 年 5 月底出现的大型 MSDT(也称为 Folina)漏洞。我会回过头来讨论这个问题。
● CVE-2022-30129 - 此漏洞利用 VSCode。很多信息都基于这个演示,我认为它试图通过打开浏览器访问 PornHub 来展示 RCE。实际问题在这里描述得很好,涉及vscode://url。
● CVE-2022-30138 - Windows Print Spooler 中的漏洞,但仅限于本地权限提升。
● CVE-2022-29130 - LDAP 中的 RCE。在发布时,我找不到任何关于此漏洞利用的 POC。
● CVE-2022-29110 - Excel 中的 RCE。在发布时,我找不到任何关于此漏洞利用的 POC,也没有迹象表明盒子上安装了 Excel。

Follina命令执行漏洞

漏洞简介

Follina是一个远程代码执行漏洞,当用户或应用程序使用 MSDT URL 协议打开恶意链接时,可以利用该漏洞。由于我们之前下载的文档表明此漏洞未被修补,因此值得我们花时间进行调查。

利用条件

为了成功利用此机器,必须满足一些条件。

  1. 必须访问我们通过电子邮件提交的 URL
  2. 机器必须容易受到 CVE-2022-30190 的攻击
    检查可利用性
    我们可以通过设置网络服务器并将 URL 发送到 来验证 url 是否打开[email protected]。为此,我们可以使用名为swaks的 CLI 工具。
    ```
    $ php -S "$lhost:80"

$ for i in {1..3}
do swaks \
--server "$rhost" \
--to "[email protected]" \
--from "[email protected]" \
--body "http://$lhost/"
done
```
在我们发送了几封电子邮件并等待几分钟后,我们收到了来自目标的对 Web 服务器的请求。

漏洞利用

利用方式
我将向[email protected]笔记中注明的电子邮件地址发送一封电子邮件,其中包含指向 Folina 漏洞利用的链接。通常,Folina 被打包在一个 word 文档中,以真正解决弹出窗口等问题。为了解决 Outdated,我只需要使用一个使用 JavaScript 重定向到msdt://URL 的 HTML 页面。

生成paylaod

下载地址:https://github.com/JohnHammond/msdt-follina
利用poc文件,生成payload。

然后开启http服务。

使用nc今天监听反弹shell的443端口。

触发漏洞

然后利用swaks去发送邮件,去触发漏洞。

获取shell

在等待三分钟左右的时候后,获取到了shell。

然后接着对其进行收集域内信息。发现其hostname和ip信息。

Bloodhound

上传工具
将SharpHound.exe上传到目标机器当中。

使用-c all进行运行它。

它会生成包含结果的 Zip 存档。
我将通过 SMB 将其导出,首先在我的主机上开始共享:

将zip文件下载到本地。

Bloodhound分析

打开 Bloodhound,清除数据库,然后上传 Zip 文件。我将搜索 btables 并将它们标记为已拥有。仔细观察btables,他们在“出站控制权”下有一个“Group Delegated Object Control”:

单击它将它放在图表上:

Get sflowers NTLM

针对 Active Directory 中的用户和计算机对象的基于 DACL 的攻击技术已经建立多年。如果我们破坏了一个对用户帐户具有委派权限的帐户,我们可以简单地重置他们的密码,或者,如果我们想要减少干扰,我们可以设置一个 SPN 或禁用 Kerberos 预身份验证并尝试烘烤该帐户。对于计算机帐户,它有点复杂,但RBCD 可以完成工作。
这些技术有其缺点:
● 重置用户密码具有破坏性,可能会被举报,并且根据交战规则 (ROE) 可能不允许。
● 烘焙非常耗时,并且取决于具有弱密码的目标,而实际情况可能并非如此。
● RBCD 很难理解,因为有人(我)没能就它写一篇清晰简洁的文章。
● RBCD 需要控制具有 SPN 的帐户,创建新的计算机帐户来满足该要求可能会导致检测,并且在实现权限升级之前无法清除。

Whisker工具使用

Whisker 是一个 C# 工具,用于通过操纵 Active Directory 用户和计算机帐户的msDS-KeyCredentialLink属性来接管它们,有效地将“Shadow Credentials”添加到目标帐户。
此工具基于Michael Grafnetter ( @MGrafnetter )的DSInternals代码。
为使此攻击成功,环境必须至少运行 Windows Server 2016 的域控制器,并且域控制器必须具有服务器身份验证证书以允许 PKINIT Kerberos 身份验证。
有关更多详细信息,请参阅影子凭证:滥用密钥信任帐户映射以进行接管。
工具地址:https://github.com/eladshamir/Whisker

编译whisker.exe

使用 Visual Studio 2022进行编译,编译之后,然后上传到目标机器当中。

运行它,然后收集 sflowers的信息

获取ntlm-hash

上传Rubeus.exe
然后接着上传Rubeus.exe,并运行它。

生成 sflowers 的 NTLM 哈希,我可以将其用作身份验证。

WinRM使用

sflowers 是 Remove Management Users 组的一部分,如 Bloodhound 中所示:

获取user.txt

横向移动

查找文档
通过谷歌搜索“enumerate exploit WSUS”,获取到了一些帮助。

sharpwsus工具使用

SharpWSUS 是一个 CSharp 工具,用于通过 WSUS 进行横向移动。有一个相应的博客 ( https://labs.nettitude.com/blog/introducing-sharpwsus/ ),其中包含有关工具、用例和检测的更多详细信息。
https://labs.nettitude.com/blog/introducing-sharpwsus/
它还有一个指向带有该工具的Github 存储库的链接,我将像上面的 Whisker 一样在 Visual Studio 中构建它,并上传到 DC:

识别 WSUS

注册表项HKLM:\software\policies\microsoft\windows\WindowsUpdate将显示正在使用的 WSUS 服务器。

来自 DC:

使用工具进行locate。

从客户端,ping将显示它与 DC 是同一主机。

WSUS 信息

SharpWSUS.exe还将提供有关使用 WSUS 的客户端的信息:

上传psexec工具

创建/批准更新
使用SharpWSUS.exe. 我将使用nc64.exe. 对于PsExec/args,它不会弹出框并等待单击、作为系统运行并立即返回。

我需要使用输出中给出的语法来更新:
.\sw.exe approve /updateid:f41b3a2e-eaf6-4c13-bb43-d9e2c38e8412/computername:dc.outdated.htb /groupname:"CriticalPatches"

成功提权到系统权限

获取root.txt

然后查询到root.txt

总结
通过一步步信息收集,然后根据提示进行漏洞利用,获取shell之后,然后上传一些工具进行获取域内信息,通过影子凭证:滥用关键信托账户映射进行账户接管。然后利用whisker工具获取ntlm-hash,然后进入dc进行横向移动,最后成功获取root权限。


文章来源: https://xz.aliyun.com/t/13097
如有侵权请联系:admin#unsafe.sh