继续记录靶机,学习📑
参考链接
官方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 | openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out pfx.key |
还提示要给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多了解了一些🙋♀️