跳转至

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)


目录

  1. Garfield 靶机知识点分析
  2. 端口与服务详情
  3. 凭据分析与登录方式
  4. Claude Code 安全工具链调研
  5. 5 个安全扩展的完整安装过程
  6. 安装过程中遇到的问题与解决
  7. macOS vs Linux 渗透环境对比
  8. HTB 练习环境方案选择
  9. 下一步行动计划

一、Garfield 靶机知识点分析

Garfield 是 HTB Season 10 的 Hard 级 Windows/AD 靶机,攻击链覆盖了 6 个核心 AD 攻防技术。

1.1 AD ACL 滥用(初始立足点)

  • BloodHound 发现 j.arbucklel.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 AttackRubeus 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 票据请求失败。需要用 ntpdatefaketime 同步时间
  • 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 netexecNo 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 攻击路径

参考资料