主机发现
端口扫描
通过nmap进行端口端侧,发现存在18个开放端口。
1763716225_69202c814fb7531de4b27.png!small?1763716226400
发现存在(Kerberos + LDAP + DNS + SMB)这种端口组合。说明可能dc01.timelapse.htb是域控制器。
1763716330_69202cea2ec40f32c2df0.png!small?1763716331693
并且系统为windows系统。
1763716339_69202cf3ac67a7b30f732.png!small?1763716340624
爆破SMB
使用crackmapexec对其进行爆破。
1763716348_69202cfccee048d7a677d.png!small?1763716349764
发现没有找到可利用信息。
1763716360_69202d089cef9ae9b5046.png!small?1763716361523
接着使用smbclient来进行连接。(-L列出共享和-N空身份验证)
其中$是所有 Windows 系统上的默认共享,其余几个可能是新建出来的。
1763716376_69202d188885a59d5ff88.png!small?1763716377497
接着使用crackmapexec来进行获取信息,-u输入任意账户。-p'' 里面必须为空。如果其中是一些字符的话,可能会报错。
1763716388_69202d242e3337dd94cf9.png!small?1763716389090
发现存在shares共享目录,然后使用smbclient进行读取文件。
1763716422_69202d46aab0b0557d17e.png!small?1763716423719
发现在其目录下存在一个压缩包。
1763716491_69202d8be394eff7d26ef.png!small?1763716492773
使用get将其下载到本地,进行分析。
1763716499_69202d93e00cef953a5df.png!small?1763716501095
分析文件
在HelpDesk有几个文件,都是关于 LAPS 的:
本地管理员密码解决方案 (LAPS) 是一种通过域管理本地管理员帐户密码的方法。如果没有圈数,支持团队很难管理为每个系统保留唯一的本地管理员密码。这会导致共享凭据,这意味着当攻击者在系统上获得提升的权限时,他们可以转储共享凭据并使用它来访问其他系统。
LAPS 还轮换管理员密码,定期更改它们,这样如果它们被攻击者捕获,它们会在一段时间后失效。
1763716511_69202d9f387abd89f07f3.png!small?1763716512210
爆破压缩包
使用unzip -l进行查看压缩包里面的内容。
1763716532_69202db4ba93152d4981a.png!small?1763716533639
使用unzip进行解压,发现其存在密码验证。
1763716543_69202dbfd634940a42398.png!small?1763716545029
用zip2john用来生成一个可以被暴力破解的hash。
1763716565_69202dd50fc821412fa52.png!small?1763716568592
接着使用john对压缩包生成的hash进行爆破。
1763716567_69202dd71b3c7afafe382.png!small?1763716568593
接着找到了密码,对压缩包进行解压。
1763716578_69202de2e166e663c977a.png!small?1763716579739
提取密钥
获取到了里面的.pfx文件,访问这个文件需要密钥验证。
我们需要从openssl中提取私钥和证书(公钥)。
1.使用pfx2john.py生成一个文件的hash。
1763716602_69202dfa4d14345ac99d0.png!small?1763716616811
继续使用john进行爆破hash。
1763716615_69202e0786266b1b63b34.png!small?1763716616814
使用密码,可以提取密钥和证书。提取密钥时,它会要求输入密码(输入“thuglegacy”),然后是输出.pem文件的密码。
1763716664_69202e3837ac5ff7521c5.png!small?1763716665318
我都是使用它的原来密码来进行操作,主要是为了好记。哈哈哈!
接着来转存证书。
1763716671_69202e3f4bd37b44cb61c.png!small?1763716672445
现在密钥和证书都有了,我们就可以连接主机了。
第一次远程连接
evil-winrm是从 Linux 主机连接到 WinRM 的工具。-h会提示它的用法。
1763716688_69202e503cf9d50f8cacb.png!small?1763716698762
本次连接主要-用到了-S、-c、-k、-i等参数。
- -S- 启用 SSL,因为我连接到 5986;
- -c legacyy_dev_auth.crt- 提供公钥证书
- -k legacyy_dev_auth.key- 提供私钥
- -i timelapse.htb- 要连接的主机
成功连接,连接之后就找Desktop下的文件。发现有user.txt,第一个flag已经找到了。
1763716697_69202e59b05b853e4cf3e.png!small?1763716698765
获取user.txt
使用net use 查看用户权限。
1763947239_6923b2e77450020e1ce1a.png!small?1763947241754
使用whmai /priv 查看用户所属的组。
1763947246_6923b2ee609be3ced3243.png!small?1763947248763
1763947257_6923b2f92d11d8117ed01.png!small?1763947259385
检查PowerShell历史文件
查看PowerShell 历史文件。
这个在应急响应中,检查windows主机,可以查看一下这个目录。
C:\Users\legacyy\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine
1763947222_6923b2d609e6375bf9b8f.png!small?1763947224438
目录下存在一些历史记录,包含了一些用户的远程连接记录。
发现存在用户名和密码。
1763947263_6923b2ff79bdf095d049c.png!small?1763947265766
第二次远程连接
接着继续新开一个winrm,使用新的用户名和密码进行连接。
使用whoami /priv查看用户分组。
1763947281_6923b3111d84a6b23b04e.png!small?1763947283463
使用net user 查看用户权限。
LAPS_Readers这个分组似乎在说明 svc_deploy 有权从 LAPS进行 读取。
1763947284_6923b3146abfad9c69a6c.png!small?1763947286890
使用 LAPS,DC 管理域中计算机的本地管理员密码。通常创建一组用户并授予他们读取这些密码的权限,从而允许受信任的管理员访问所有本地管理员密码。
读取密码
要读取 LAPS 密码,我只需要使用Get-ADComputer并专门请求该ms-mcs-admpwd属性
使用Get-ADComputerDC01-property'ms-mcs-admpwd',进行读取密码。
1763947296_6923b320098e8a72c196c.png!small?1763947298303
成功读到了密码:-c.I3I#+7Z},b;h01c$8D05r。
接着使用administrator和新获取到的密码。进行登录。
第三次远程连接
1763947301_6923b325c14326fca29ff.png!small?1763947304078
寻找root.txt
接着和往常一样,进入Desktop目录下找root.txt文件,发现在Desktop下文件是空的。
1763947314_6923b332e472d1ca0d8f7.png!small?1763947317241
接下来去翻user目录,发现存在一个TRX目录。
1763947322_6923b33a507d371fe64b0.png!small?1763947324659
获取root权限
然后进行TRX目录,找到了root.txt文件。
1763947330_6923b342e358bae0aac09.png!small?1763947333222