记一次对HTB:Timelapse的渗透测试

简介: 记一次对HTB:Timelapse的渗透测试

主机发现

端口扫描

通过nmap进行端口端侧,发现存在18个开放端口。

27ecfe4fda9651b465c0e9f8879ec005_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

发现存在(Kerberos + LDAP + DNS + SMB)这种端口组合。说明可能dc01.timelapse.htb是域控制器。

74833ba1e1afff882e2511279c632995_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

并且系统为windows系统。

d8ebfbc47314bc18968a4efa3be6658d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

爆破SMB

使用crackmapexec对其进行爆破。

f5c29b50e4408a00870dfbb31b1dbe01_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

发现没有找到可利用信息。

86167e05452b420a5c0ccaf9afe6bab6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

接着使用smbclient来进行连接。(-L列出共享和-N空身份验证)

其中$是所有 Windows 系统上的默认共享,其余几个可能是新建出来的。

be712e8a5c4763b893b8befcebdc95c1_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

接着使用crackmapexec来进行获取信息,-u输入任意账户。-p'' 里面必须为空。如果其中是一些字符的话,可能会报错。

56f1f007b2be505f4dcbf6af1e07a6d6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

发现存在shares共享目录,然后使用smbclient进行读取文件。

95c2fe1db5753de2c044835969d615e8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

发现在其目录下存在一个压缩包。

6662e9347a783cce0b8e3de5f8578686_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用get将其下载到本地,进行分析。

5b5681f05321fb06d92623b72acee019_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

分析文件

在HelpDesk有几个文件,都是关于 LAPS 的:

本地管理员密码解决方案 (LAPS) 是一种通过域管理本地管理员帐户密码的方法。如果没有圈数,支持团队很难管理为每个系统保留唯一的本地管理员密码。这会导致共享凭据,这意味着当攻击者在系统上获得提升的权限时,他们可以转储共享凭据并使用它来访问其他系统。

LAPS 还轮换管理员密码,定期更改它们,这样如果它们被攻击者捕获,它们会在一段时间后失效。

618e0cd306bf71b6b26202e5e1274ec3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

爆破压缩包

使用unzip -l进行查看压缩包里面的内容。

e763e7cfc78ffd1995914218730f64e4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用unzip进行解压,发现其存在密码验证。

826fa2845d696637a49b0b366edff77c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

用zip2john用来生成一个可以被暴力破解的hash。

0c9fda91312a87961a33cec22253a4c2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

接着使用john对压缩包生成的hash进行爆破。

82f14c5d5f77db34137a6fa451b15f33_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

接着找到了密码,对压缩包进行解压。

045950a770522829af9dcba56cede07f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

提取密钥

获取到了里面的.pfx文件,访问这个文件需要密钥验证。

我们需要从openssl中提取私钥和证书(公钥)。

1.使用pfx2john.py生成一个文件的hash。

0eef24e69776685f6b96fdd7604dd09a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

继续使用john进行爆破hash。

45e1e339f54a84909f005e5b52fba19b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用密码,可以提取密钥和证书。提取密钥时,它会要求输入密码(输入“thuglegacy”),然后是输出.pem文件的密码。

82742394f09380c9ef059dc49aaed7b0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

我都是使用它的原来密码来进行操作,主要是为了好记。哈哈哈!

接着来转存证书。

4d392187a84a75aa253277f5f827664e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

现在密钥和证书都有了,我们就可以连接主机了。

第一次远程连接

evil-winrm是从 Linux 主机连接到 WinRM 的工具。-h会提示它的用法。

0d6ebdd80a99027518a74fe49ca5ece0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

本次连接主要-用到了-S、-c、-k、-i等参数。

  • -S- 启用 SSL,因为我连接到 5986;
  • -c legacyy_dev_auth.crt- 提供公钥证书
  • -k legacyy_dev_auth.key- 提供私钥
  • -i timelapse.htb- 要连接的主机

b95d9918dd9fa17585cd61d8408cd9c6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

成功连接,连接之后就找Desktop下的文件。发现有user.txt,第一个flag已经找到了。

获取user.txt

1493623b1a4ef90ae6d7d0054a97bd6f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用net use 查看用户权限。

bd26fb9ba8f770f217882770e766ac03_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用whmai /priv 查看用户所属的组。

fc46154fc9d6241d64697469d12d1b12_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

检查PowerShell历史文件

查看PowerShell 历史文件。

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

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

7b0cb3ac1735263a26efb2f09b67bcc8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

目录下存在一些历史记录,包含了一些用户的远程连接记录。

发现存在用户名和密码。

518dcdfd2d9e737b46d23aa836e58b59_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

第二次远程连接

接着继续新开一个winrm,使用新的用户名和密码进行连接。

使用whoami /priv查看用户分组。

388017ff6a7dddab52bf90092f3dda76_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用net user 查看用户权限。

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

f0ae627a04715aca7648d9df56725792_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

使用 LAPS,DC 管理域中计算机的本地管理员密码。通常创建一组用户并授予他们读取这些密码的权限,从而允许受信任的管理员访问所有本地管理员密码。

读取密码

要读取 LAPS 密码,我只需要使用Get-ADComputer并专门请求该ms-mcs-admpwd属性

使用Get-ADComputerDC01-property'ms-mcs-admpwd',进行读取密码。

3f81f936c15b3f4082ce03d9beabb3a3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

成功读到了密码:-c.I3I#+7Z},b;h01c$8D05r。

接着使用administrator和新获取到的密码。进行登录。

第三次远程连接

bcf214b3965de0c6201e61f2f2f5d0bb_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

寻找root.txt

接着和往常一样,进入Desktop目录下找root.txt文件,发现在Desktop下文件是空的。

9b34597d180dd31ad2d3cd1ee2ae3044_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

接下来去翻user目录,发现存在一个TRX目录。

80ce633b7afb07d2414ee66bbe27dcbf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

获取root.txt

然后进行TRX目录,找到了root.txt文件。

b01d43233dbc8136339a379961aa0c03_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

总结:

靶机主要nmap端口扫描开始,然后发现域控制器ip。对其端口开放的服务进行分析,使用**crackmapexec**进行爆破,**smbclient**获取到smb服务下的目录。然后使用smbclient进行读取目录下的文件。使用get命令下载到本地。

然后对其目录下的文件进行分析,接着使用**zip2john**工具生成文件hash,使用john进行hash碰撞。使用**pfx2john.py**脚本提取openssl处的私钥和证书。然后爆破密码并进行提取密钥和证书。使用**evil-winrm**进行远程连接,检查**powershell**历史文件,发现密钥,读laps密码。最后再次进行连接。找到root.txt

相关文章
|
SQL 安全 前端开发
HTB:Charon渗透测试(二)
HTB:Charon渗透测试
146 0
HTB:Charon渗透测试(二)
|
SQL 安全 Linux
HTB:Charon渗透测试(一)
HTB:Charon渗透测试
137 0
HTB:Charon渗透测试(一)
|
安全 Shell 网络安全
HTB:Obscurity渗透测试(二)
HTB:Obscurity渗透测试
111 0
HTB:Obscurity渗透测试(二)
|
网络安全 Python
HTB:Obscurity渗透测试(一)
HTB:Obscurity渗透测试
129 0
HTB:Obscurity渗透测试(一)
|
1月前
|
安全 网络安全
Kali渗透测试:使用Armitage扫描网络
Kali渗透测试:使用Armitage扫描网络
|
1月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
|
1月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
|
1月前
|
Java 网络安全 Windows
Kali渗透测试:使用 Armitage生成被控端和主控端
Kali渗透测试:使用 Armitage生成被控端和主控端
|
21天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
存储 安全 小程序
Kali渗透测试:使用Word宏病毒进行渗透攻击
Kali渗透测试:使用Word宏病毒进行渗透攻击
Kali渗透测试:使用Word宏病毒进行渗透攻击