HTB Garfield 靶机学习与 Claude Code 安全环境搭建全记录
日期:2026-04-11 环境:macOS Darwin 25.3.0 (Apple Silicon, M 系列) / Claude Code + Opus 4.6 HTB 靶机:Garfield(Hard / Windows / Active Directory)
目录
- Garfield 靶机知识点分析
- 端口与服务详情
- 凭据分析与登录方式
- Claude Code 安全工具链调研
- 5 个安全扩展的完整安装过程
- 安装过程中遇到的问题与解决
- macOS vs Linux 渗透环境对比
- HTB 练习环境方案选择
- 下一步行动计划
一、Garfield 靶机知识点分析
Garfield 是 HTB Season 10 的 Hard 级 Windows/AD 靶机,攻击链覆盖了 6 个核心 AD 攻防技术。
1.1 AD ACL 滥用(初始立足点)
- BloodHound 发现
j.arbuckle 对 l.wilson 拥有 WriteDacl / WriteProperty 权限 - 修改
scriptPath 属性(用户登录脚本),在目标登录时执行恶意载荷获取反弹 Shell - 知识点:ACL 审计与 scriptPath 劫持
1.2 横向移动与权限提升
- 从
l.wilson 重置 l.wilson_adm(Tier 1 管理员)密码 - 通过 Evil-WinRM 以管理员身份登录,添加自己到 RODC Administrators 组
- 知识点:AD 分层管理模型(Tiered Admin Model)攻击路径
1.3 内网隧道 + RODC 渗透
- 通过隧道技术(Chisel/Ligolo)访问内部 Read-Only Domain Controller(RODC01)
- 知识点:内网 Pivoting / 端口转发
1.4 RBCD(基于资源的约束委派)滥用
- 创建机器账户
FAKE$,在 RODC01 上配置 RBCD - 模拟 Administrator 获取 RODC01 SYSTEM 权限
- 知识点:
msDS-AllowedToActOnBehalfOfOtherIdentity 属性滥用
1.5 RODC Golden Ticket + KeyList Attack(本机核心亮点)
- 从 RODC01 导出 RODC 专属的
krbtgt_8245 AES256 密钥 - 使用 Rubeus 伪造 RODC Golden Ticket
- 通过 KeyList Attack(
Rubeus asktgs /keyList)向主 DC01 请求,将 RODC 范围的票据转换为真正的域管 TGT - 最终 NTDS dump + Administrator 登录
- 知识点:RODC 架构弱点、Golden Ticket 变体、KeyList 攻击
- 价值:实战中很多红队到 RBCD 就停了,忽略了 RODC → 全域接管的路径
1.6 完整攻击链
j.arbuckle(初始凭据)
→ WriteDacl/WriteProperty on l.wilson
→ scriptPath 劫持 → reverse shell as l.wilson
→ 重置 l.wilson_adm 密码
→ Evil-WinRM as l.wilson_adm
→ 添加到 RODC Administrators
→ 隧道到 RODC01
→ 创建 FAKE$ + RBCD → SYSTEM on RODC01
→ dump krbtgt_8245 AES256
→ RODC Golden Ticket + KeyList Attack
→ 真正的 Administrator TGT
→ NTDS dump → 域管登录
1.7 涉及工具
BloodHound、Impacket、Evil-WinRM、Rubeus、Chisel/Ligolo(隧道)、secretsdump
二、端口与服务详情
Nmap 扫描结果显示这是一台典型的 Windows 域控制器(DC01.garfield.htb):
| 端口 | 服务 | 说明 |
| 53/tcp | DNS (Simple DNS Plus) | 域名解析 |
| 88/tcp | Kerberos | AD 认证核心服务 |
| 135/tcp | MSRPC | RPC 端点映射 |
| 139/tcp | NetBIOS-SSN | NetBIOS 会话服务 |
| 389/tcp | LDAP | AD 目录服务 |
| 445/tcp | SMB (microsoft-ds) | 文件共享 / SYSVOL |
| 464/tcp | kpasswd5 | Kerberos 密码更改 |
| 593/tcp | RPC over HTTP | ncacn_http |
| 636/tcp | LDAPS (tcpwrapped) | LDAP over SSL |
| 2179/tcp | VMRDP | Hyper-V 远程桌面 |
| 3268/tcp | Global Catalog (LDAP) | AD 全局编录 |
| 3269/tcp | Global Catalog SSL | AD 全局编录加密 |
| 3389/tcp | RDP (Terminal Services) | 远程桌面 |
| 5985/tcp | WinRM (HTTP) | PowerShell 远程管理 |
关键发现
- 时钟偏移 +8h:Nmap 检测到显著的时钟偏差,会导致 Kerberos 票据请求失败。需要用
ntpdate 或 faketime 同步时间 - 5985 (WinRM) 是后续 Evil-WinRM 横向移动的关键入口
- 445 (SMB) 用于上传恶意登录脚本到 SYSVOL 共享
- 88 + 389 是 BloodHound 枚举和 Kerberos 票据伪造的基础
- 看到这组端口组合就应该立刻想到 AD 攻击路径
三、凭据分析与登录方式
3.1 已有凭据
用户名:j.arbuckle
密码:Th1sD4mnC4t!@1978
域:garfield.htb
这是一个 Active Directory 域账户,不是某个单一服务的凭据。域账户可以用于多个服务。
3.2 验证凭据的方式
使用 NetExec(原 CrackMapExec)逐协议验证:
# SMB(445)— 最常用
nxc smb <IP> -u 'j.arbuckle' -p 'Th1sD4mnC4t!@1978' -d garfield.htb
# WinRM(5985)— 如果返回 Pwn3d! 就能拿 shell
nxc winrm <IP> -u 'j.arbuckle' -p 'Th1sD4mnC4t!@1978' -d garfield.htb
# LDAP(389)
nxc ldap <IP> -u 'j.arbuckle' -p 'Th1sD4mnC4t!@1978' -d garfield.htb
# RDP(3389)
nxc rdp <IP> -u 'j.arbuckle' -p 'Th1sD4mnC4t!@1978' -d garfield.htb
3.3 根据验证结果登录
| 协议通过 | 登录命令 |
| SMB ✅ | smbclient -U 'garfield.htb/j.arbuckle%Th1sD4mnC4t!@1978' //<IP>/SYSVOL |
| WinRM ✅ | evil-winrm -i <IP> -u 'j.arbuckle' -p 'Th1sD4mnC4t!@1978' |
| RDP ✅ | xfreerdp /v:<IP> /u:'j.arbuckle' /p:'Th1sD4mnC4t!@1978' /d:garfield.htb |
| LDAP ✅ | bloodhound-python -u 'j.arbuckle' -p 'Th1sD4mnC4t!@1978' -d garfield.htb -ns <IP> -c All |
3.4 预期结果
j.arbuckle 是低权限域用户,大概率 SMB 和 LDAP 可用但 WinRM 不可用。主要入口是: 1. LDAP → BloodHound 枚举 ACL 关系 2. SMB → 上传恶意脚本到 SYSVOL 共享
3.5 渗透优先级
| 顺序 | 动作 | 原因 |
| 1 | Nmap + 时钟同步 | 基础,时钟不同步会卡死后续所有 Kerberos 操作 |
| 2 | NetExec 验证凭据 | 确认凭据有效 + 能访问哪些共享 |
| 3 | BloodHound 采集 | 发现 ACL 攻击路径,这是本机的突破口 |
四、Claude Code 安全工具链调研
通过 WebSearch 调研发现社区已有丰富的 Claude Code 安全扩展:
| # | 工具 | 类型 | 来源 | 用途 |
| 1 | HTB MCP Server | MCP Server | github.com/noaslr/htb-mcp-server | HTB 平台 API(列靶机、提交 flag) |
| 2 | Blackbox Claude Plugin | Plugin | github.com/allsmog/blackbox-claude-plugin | HTB 靶机自动化黑盒渗透 |
| 3 | Transilience Community Tools | Skills + Agents | github.com/transilienceai/communitytools | 23 Skills + 10 Agents,全渗透流程 |
| 4 | Awesome Security Skills | Skills | github.com/Eyadkelleh/awesome-claude-skills-security | SecLists 字典 + LLM 安全测试 |
| 5 | Claude Bug Bounty Framework | Skills + Commands | github.com/shuvonsec/claude-bug-bounty | Bug Bounty 全流程 + 13 个斜杠命令 |
另外还有: - HTB 官方 MCP:官方提供的 CTF 接口(help.hackthebox.com) - Kali + Claude Code 集成教程:twseptian 的博客,Playwright MCP + 渗透自动化
五、5 个安全扩展的完整安装过程
5.1 环境检查
cat ~/.claude/settings.json # 已有 Playwright MCP
ls ~/.claude/plugins/ # 已有 marketplaces 文件
ls ~/.claude/skills/ # 不存在
ls ~/.claude/agents/ # 不存在
which go # 未安装 ❌
which nmap # /opt/homebrew/bin/nmap ✅
5.2 安装 Go 编译器
brew install go
# → go 1.26.2 (arm64) 安装成功
5.3 并行克隆 5 个仓库
git clone https://github.com/noaslr/htb-mcp-server.git /tmp/htb-mcp-server
git clone https://github.com/allsmog/blackbox-claude-plugin.git ~/.claude/plugins/blackbox-claude-plugin
git clone https://github.com/transilienceai/communitytools.git /tmp/communitytools
git clone https://github.com/Eyadkelleh/awesome-claude-skills-security.git /tmp/awesome-claude-skills-security
git clone https://github.com/shuvonsec/claude-bug-bounty.git /tmp/claude-bug-bounty
5.4 编译 HTB MCP Server
cd /tmp/htb-mcp-server
go build -o htb-mcp-server .
mkdir -p ~/.claude/bin
cp htb-mcp-server ~/.claude/bin/
# → ~/.claude/bin/htb-mcp-server(8.6MB)
5.5 安装 Transilience Skills & Agents
mkdir -p ~/.claude/skills ~/.claude/agents
cp -r /tmp/communitytools/projects/pentest/.claude/skills/* ~/.claude/skills/
cp -r /tmp/communitytools/projects/pentest/.claude/agents/* ~/.claude/agents/
# → 23 skills, 10 agents
5.6 安装 Security SecLists Skills
mkdir -p ~/.claude/skills/security-seclists
cp -r /tmp/awesome-claude-skills-security/seclists-categories/* ~/.claude/skills/security-seclists/
cp -r /tmp/awesome-claude-skills-security/LLM_Testing ~/.claude/skills/security-seclists/
5.7 安装 Bug Bounty Framework
mkdir -p ~/.claude/skills/bug-bounty ~/.claude/commands
cp /tmp/claude-bug-bounty/SKILL.md ~/.claude/skills/bug-bounty/
cp -r /tmp/claude-bug-bounty/skills/* ~/.claude/skills/bug-bounty/
cp -r /tmp/claude-bug-bounty/commands/* ~/.claude/commands/
# → 9 skills, 13 slash commands
5.8 配置 settings.json
{
"model": "opus",
"mcpServers": {
"playwright": {
"command": "/opt/homebrew/bin/npx",
"args": ["@playwright/mcp@latest"]
},
"htb-mcp-server": {
"command": "/Users/x/.claude/bin/htb-mcp-server",
"env": {
"HTB_TOKEN": "YOUR_HTB_API_TOKEN_HERE"
}
}
}
}
5.9 最终目录结构
~/.claude/
├── bin/
│ └── htb-mcp-server # HTB MCP 二进制
├── plugins/
│ └── blackbox-claude-plugin/ # HTB 黑盒渗透插件
├── skills/
│ ├── reconnaissance/ # ┐
│ ├── injection/ # │ Transilience (23 个)
│ ├── api-security/ # │
│ ├── ... (共 23 个) # ┘
│ ├── security-seclists/ # Awesome Security Skills
│ │ ├── web-shells/
│ │ └── LLM_Testing/
│ └── bug-bounty/ # Bug Bounty (9 个)
│ ├── SKILL.md
│ ├── bb-methodology/
│ └── ...
├── agents/ # Transilience Agents (10 个)
│ ├── pentester-orchestrator.md
│ ├── hackthebox.md
│ └── ...
├── commands/ # Bug Bounty 斜杠命令 (13 个)
│ ├── recon.md
│ ├── hunt.md
│ └── ...
└── settings.json
六、安装过程中遇到的问题与解决
问题 1:Go 编译器缺失
| 项目 | 说明 |
| 现象 | which go 返回空 |
| 影响 | 无法编译 HTB MCP Server(Go 项目) |
| 解决 | brew install go |
问题 2:各项目安装方式不统一
| 项目 | 说明 |
| 现象 | 5 个项目各自有不同的目录结构 |
| 思路 | 先 ls 探查结构,确认核心文件位置,再 copy 到 Claude Code 约定目录 |
| 解决 | Blackbox → plugins;Transilience → skills + agents;Security → skills 子目录;Bug Bounty → skills + commands |
问题 3:HTB MCP Server 是 Go 二进制,非 npm 包
| 项目 | 说明 |
| 现象 | 不像 Playwright MCP 可以 npx 运行 |
| 解决 | 创建 ~/.claude/bin/ 统一存放自编译二进制,settings.json 用绝对路径引用 |
问题 4:CrackMapExec 已更名
| 项目 | 说明 |
| 现象 | brew install crackmapexec 找不到包 |
| 原因 | CrackMapExec 已更名为 NetExec,命令从 crackmapexec 变为 nxc |
| 解决 | 需要用 pipx install netexec 安装 |
问题 5:Homebrew 没有 netexec/nxc
| 项目 | 说明 |
| 现象 | brew install nxc 找不到 |
| 原因 | NetExec 是 Python 包,不在 Homebrew 仓库中 |
| 解决 | 使用 pipx:brew install pipx && pipx ensurepath && pipx install netexec |
问题 6:pipx 是什么
| 项目 | 说明 |
| 说明 | Python 命令行工具的隔离安装器,每个工具独立虚拟环境,互不干扰 |
| 类比 | 类似 Node.js 的 npx |
| 优势 | 避免 Python 依赖冲突("依赖地狱") |
| 推荐 | 渗透工具(netexec、impacket、bloodhound)统一用 pipx 安装 |
问题 7:netexec 安装失败 — Python 版本过旧
| 项目 | 说明 |
| 现象 | pipx install netexec 报 No matching distribution found |
| 原因 | 系统 Python 为 3.9.6,netexec 需要 3.11+ |
| 解决 | brew install python@3.12 && pipx install netexec --python python3.12 |
问题 8:升级 Python 后 netexec 仍安装失败
| 项目 | 说明 |
| 现象 | Python 3.12 安装后 pipx install netexec 仍报 No matching distribution |
| 原因 | netexec 在 PyPI 上对 macOS ARM64 没有预编译 wheel,需要 Rust 编译器从源码构建 |
| 可选解决方案 | ① brew install rust && pipx install git+https://github.com/Pennyw0rth/NetExec --python python3.12;② 改用 Impacket 替代 |
| 最终结论 | macOS 上安装渗透工具阻力太大 → 转向 Linux 方案 |
七、macOS vs Linux 渗透环境对比
7.1 为什么很多渗透人员用 Mac
- 日常主力机 — 开发、写报告、沟通都在 Mac 上,不想切换
- 终端体验好 — Unix 基础 + Homebrew,Python/Ruby/Go 工具链顺畅
- Burp + 浏览器 — Web 渗透 90% 的时间在这两个工具里
- 续航和便携 — 线下攻防、HW 驻场带 Mac 方便
7.2 Web 渗透 — macOS 完全够用
Burp Suite、浏览器、curl、sqlmap、ffuf、dirsearch 这些都跑得很好。日常 Web 漏洞挖掘(XSS、SQLi、SSRF、IDOR 等)macOS 没有任何障碍。
7.3 AD/内网渗透 — Linux(Kali)明显更优
| 工具 | macOS | Kali Linux |
| netexec / crackmapexec | 编译失败,依赖复杂 | apt install netexec |
| impacket | pipx 可装但偶有问题 | 预装 |
| evil-winrm | 需装 Ruby 依赖 | 预装 |
| bloodhound | 需手动配置 | apt install bloodhound |
| chisel/ligolo 隧道 | 需交叉编译 | 直接用 |
| Rubeus/SharpHound | 无法原生运行 | Wine/交叉编译 |
7.4 Windows 打 Windows 的场景
| 优势 | 说明 |
| 原生工具 | PowerShell、net use、nltest、dsquery |
| C# 工具 | Rubeus/SharpHound 原生运行 |
| 域加入 | 可直接加入目标域,用 RSAT/AD Explorer |
| mimikatz | 原生运行最稳定 |
| 劣势 | 说明 |
| Impacket 生态 | secretsdump、ntlmrelayx 等核心工具是 Python/Linux |
| 杀软干扰 | Windows Defender 会拦自己的工具 |
| Writeup 资料 | HTB writeup 几乎都基于 Linux |
7.5 结论
场景 推荐系统
─────────────────────────────────────────
Web 渗透 → macOS / 任意系统
HTB 打靶 / 跟 writeup 学习 → Kali Linux
实际红队 AD 内网渗透 → Windows 攻击机 + Kali 双持
八、HTB 练习环境方案选择
8.1 HTB Pwnbox(HTB 自带的浏览器 Kali VM)
| 项目 | 说明 |
| 优势 | 零配置,浏览器直接用,工具预装 |
| 劣势 | 临时环境每次重置;Claude Code 需每次重新登录;Skills 不会自动下载;Free 2h/天,VIP 4h |
如果使用 Pwnbox + Claude Code,可以写一键初始化脚本,但登录步骤无法自动化。
8.2 本地 Kali VM(推荐)
# OrbStack(推荐,轻量,Apple Silicon 原生)
brew install orbstack
# 或 UTM(免费开源虚拟机)
brew install --cask utm
# 或 Docker(最轻量但网络配置略复杂)
docker pull kalilinux/kali-rolling
docker run -it kalilinux/kali-rolling /bin/bash
apt update && apt install -y kali-tools-top10
优势:一次配置永久保留,Claude Code + Skills 只装一次。
8.3 HTB VPN 多设备连接
- HTB 允许同一账号同时在多台设备连接 VPN(使用同一个 .ovpn 文件)
- 但同一 VPN 类型只能连一个(Machines / Starting Point / Competitive),后连的会踢掉前一个
- 推荐:只让 Kali VM 连 VPN,Mac 通过 VM 网络访问靶机
8.4 推荐方案
macOS(日常主力) Kali VM(打靶专用,本地运行)
├── Burp Suite ├── 连接 HTB VPN
├── 浏览器 ├── netexec / impacket(预装)
├── Claude Code(Web 渗透) ├── bloodhound / evil-winrm(预装)
├── 写报告 / 笔记 ├── Claude Code(AD 渗透辅助)
└── Web 靶机 └── AD / 内网靶机(如 Garfield)
九、下一步行动计划
待完成
- [ ] 填入 HTB API Token 到
~/.claude/settings.json - [ ] 安装本地 Kali VM(OrbStack 或 UTM)
- [ ] 在 Kali 中安装 Claude Code + 安全 Skills
- [ ] 连接 HTB VPN,开始 Garfield 靶机实战
- [ ] Nmap 全端口扫描 + 时钟同步
- [ ] NetExec 验证
j.arbuckle 凭据 - [ ] BloodHound 采集 AD 关系图,分析 ACL 攻击路径
参考资料