[HTB] Timelapse Writeup
2023-4-19 14:0:28 Author: 一个人的安全笔记(查看原文) 阅读量:9 收藏

概述 (Overview)

HOST: 10.10.11.125

OS: Windows

发布时间: 2022-03-27

完成时间: 2022-06-15

机器作者: ctrlzero

困难程度: EASY

机器状态: 退休

MACHINE TAGS: #ActiveDirectory #PowerShell #LAPS

攻击链 (Kiillchain)

使用 Nmap 对目标服务器开放端口进行识别,发现存在 smb 服务、laps 服务。通过 SMB 文件共享获得一个压缩包,对压缩包进行密码爆破得到 .pfx 证书文件。随后通过密码爆破成功从 pfx 文件中导出公钥、私钥,使用 evil-winrm 配合公钥、私钥成功拿到 legacyy 用户的交互shell。

随后在 PowerShell 执行命令 Log 中找到 svc_deploy 用户的凭证,完成横向移动。最后在 LAPS 信息中成功找到 Administrator 用户凭证,成功完成权限提升。

枚举(Enumeration)

老样子开始还是使用 Nmap 软件对目标服务器 TCP 开放端口进行枚举:

PORT      STATE SERVICE           VERSION
88/tcp    open  kerberos-sec      Microsoft Windows Kerberos (server time: 2022-06-15 12:13:49Z)
593/tcp   open  ncacn_http        Microsoft Windows RPC over HTTP 1.0
636/tcp   open  ldapssl?
3268/tcp  open  ldap              Microsoft Windows Active Directory LDAP (Domain: timelapse.htb0., Site: Default-First-Site-Name)
3269/tcp  open  globalcatLDAPssl?
5986/tcp  open  ssl/http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
| ssl-cert: Subject: commonName=dc01.timelapse.htb
| Issuer: commonName=dc01.timelapse.htb
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2021-10-25T14:05:29
| Not valid after:  2022-10-25T14:25:29
| MD5:   e233 a199 4504 0859 013f b9c5 e4f6 91c3
|_SHA-1: 5861 acf7 76b8 703f d01e e25d fc7c 9952 a447 7652
| tls-alpn: 
|_  http/1.1
|_ssl-date: 2022-06-15T12:14:53+00:00; +8h00m00s from scanner time.
|_http-server-header: Microsoft-HTTPAPI/2.0
49673/tcp open  ncacn_http        Microsoft Windows RPC over HTTP 1.0
49674/tcp open  msrpc             Microsoft Windows RPC
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows

从上述扫描结果中能够看出这是台 Active Directory 服务器,其组织域叫 dc01.timelapse.htb。存在 5986/tcp (HTTPS) 端口,意味着Windows Remote Management (WinRM) 服务存在。考察的是攻击域服务器的技巧了。

Port 636 - LDAP

首先使用 ldapsearch 匿名访问 LDAP 服务,测试后发现匿名访问风险不存在。

随后对 SMB 服务进行枚举,smbclient -L 发现存在一些共享文件夹:

接着使用 smbmap 对共享文件夹内容和权限进行查看,通过 -R 参数可以进行递归显示:

立足点(Foothold)

观察结果,在 \Shares 目录下找到了一个压缩包,继续使用 smbclient 将文件下载到 kali 本地机器(使用文件挂载方式也可以)。

解压时发现存在密码,尝试使用 fcrackzip 软件对解压密码进行暴力枚举。

解压后得到一个 .pfx 后缀的文件,通过 Google 搜索进行进一步查询了解。

由 Public Key Cryptography Standards #12(公钥加密技术12号标准),PKCS#12标准定义,包含了公钥和私钥的二进制形式的证书,以pfx作为证书文件的后缀名。

尝试导出公钥和私钥时又提示需要密码,使用 John 进行密码枚举。

需要用到 pfx2john 组件生成 hash 值,它是 John 的一部分。

成功使用明文密码导出公钥和私钥:

注意到之前的 Windows Remote Management (WinRM) 服务端口,使用 evil-winrm 进行交互 shell 连接时发现存在 --pub-key--priv-key 参数。结合得到的公钥和私钥,直接运行 evil-winrm 就可以得到 Powershell。

但没有发现该用户下的 user flag,需要进行用户间的横移操作。

横向移动(Lateral Movement)

在 Kali 本地分别开启了 HTTP 服务、SMB 服务,通过 PowerShell 命令将 winPEAS 传递到目标服务器。执行命令后,将信息收集结果通过 SMB 回传到 Kali 本地。

查看结果,留意到 PowerShell 命令执行记录 log:

cmd> type C:\Users\legacyy\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
whoami
ipconfig /all
netstat -ano |select-string LIST
$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$p = ConvertTo-SecureString 'E3R$Q62^12p7PLlC%KWaxuaV' -AsPlainText -Force
$c = New-Object System.Management.Automation.PSCredential ('svc_deploy', $p)
invoke-command -computername localhost -credential $c -port 5986 -usessl -
SessionOption $so -scriptblock {whoami}
get-aduser -filter * -properties *
exit
  • • New-PSSessionOption cmdlet 创建一个 对象,该对象包含用户管理的会话 (PSSession) 的高级选项。 可以使用该对象作为创建 PSSession 的 cmdlet 的 SessionOption 参数的值,例如 New-PSSession、 Enter-PSSession和 Invoke-Command。

  • • PSCredential 对象表示一组安全凭据,例如用户名和密码。 此对象可以作为参数传递给函数,以便该函数以此凭据对象中的用户帐户身份运行。

  • • Invoke-Command 在本地和远程计算机上运行命令。

向 PowerShell 函数添加凭据支持 - https://learn.microsoft.com/zh-cn/powershell/scripting/learn/deep-dives/add-credentials-to-powershell-functions?source=recommendations&view=powershell-7.3

通过命令中的端口参数发现,svc_deploy 用户使用的是 WinRM 服务。使用 crackmapexec 进行枚举,发现这组密码是有效的。成功完成账号横移。

权限提升(Privilege Escalation)

继续使用 crackmapexec 软件,利用自带的模块进行收集,意外的发现 LAPS 中存在一组凭证。

也可以单独运行模块获得: -M laps (laps.py

成功已 Administrator 用户登录目标机器。

运行 Get-ChildItem 命令查找 root flag。

*Evil-WinRM* PS C:\Users> Get-ChildItem -Path C:\Users -Recurse -Include root.txt

参考


文章来源: http://mp.weixin.qq.com/s?__biz=MzIwOTA4NTg4MA==&mid=2652490704&idx=1&sn=2402af5a545e3b16398b77eba070edd8&chksm=8c945f07bbe3d61194edec01ab5f77c189b08c5173a3d4813333f1438a857c3e430d3e981ee8#rd
如有侵权请联系:admin#unsafe.sh