关于 network-appliance-offensive
用于对在线网络设备和 VPN 配置进行非破坏性评估的安全测试技能。工具收集指纹与协议细节,并依据观察到的前置条件判断 CVE 适用性,不把不确定版本当作已确认漏洞。
主要功能
- 01枚举 IKE 并解码通知消息
- 02识别 Check Point 服务与 OPSEC
- 03推断所列厂商的固件和补丁级别
- 04仅以完成的握手判定 TLS 支持
- 05分析 NTLM 挑战和边界 RST
- 06依据前置条件映射 CVE 适用性
适用场景
- 01评估 VPN 的 IKE 模式、变换和 DH 组
- 02检查设备 CVE 的前置条件是否成立
- 03识别旧版 TLS 是否完成握手
- 04分析 NTLM 挑战信息泄露和伪造 RST
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill network-appliance-offensive安装后在 Claude Code 中输入/network-appliance-offensive确认已加载。
详细介绍
网络设备攻防
firewall-review 对配置进行静态审计;infrastructure 覆盖通用端口、DNS 和 SMB。两者都无法测试在线边界设备或其 VPN 加密配置——因此,每次评估都要从原始套接字重新实现 IKE 构造、SIC/OPSEC 指纹识别和 TTL 判别器,而且通常不够完善;整个设备群的 CVE 适用性也一直无法确定。本技能提供确定性、经过测试的工具以及以先决条件为门控的方法。仅限非破坏性操作——所有工具都只观察、解码或推断;不会触发任何漏洞利用;CVE 适用性是先决条件检查,绝不是盲目判断“存在漏洞”。
工具
| 工具 | 功能 | 防误用措施 |
|---|---|---|
tools/ike_enum.py | 检测 IKEv1 积极模式,枚举 IKEv1/IKEv2 转换和 DH 组,解码 NOTIFY / NAT-T(封装 ike-scan,并提供原始 ISAKMP SA_INIT 构造器回退方案) | 积极模式支持(PSK 哈希泄露)本身就是发现结果;只做枚举,不要在带内破解 |
tools/checkpoint_sic_opsec.py | 对 SIC(18190/1)、OPSEC LEA/ELA(18183/4)、CA(18192/18210)、FW1(256/264)和 Gaia Portal 进行指纹识别;生成 CVE 先决条件映射,包括 CVE-2024-24919 | 只有观察到 RA/Mobile-Access 标记时,CVE-2024-24919 才是 applicable;否则为 undetermined |
tools/appliance_version_infer.py | 根据标头、登录标记、证书 CN/序列号,安全推断 FortiGate / PAN-OS / Cisco ASA / Citrix 的固件或补丁级别 → CVE 适用性 | 绝不会在版本置信度低或未知时断言 applicable——而是返回 undetermined |
tools/tls_handshake_probe.py | 通过每个指定协议的完整握手检查支持哪些 TLS 版本 | 修正 openssl s_client 退出状态/SECLEVEL 导致的假阳性——握手中止 ≠ 支持 |
tools/ntlm_decode.py | 解码 NTLM Type-2(CHALLENGE)AV_PAIR 块 → NetBIOS/DNS 主机、域、林、OS 构建版本 | 未经身份验证的质询导致的信息泄露;不会尝试身份验证 |
tools/perimeter_forensics.py | RST-TTL 伪造判别器(真实主机与伪造 RST 的防火墙)+ IKE NOTIFY 解码 | 仅凭 RST 绝不判断“FW 后方有内部主机”——在此层,防火墙伪造的 RST 无法区分;若没有开放服务的 TTL 基线,则返回 undetermined |
工作流
- 识别设备指纹 — 根据端口集合、横幅和登录标记,运行
appliance_version_infer.py(猜测厂商和版本,并给出置信度);对于 Check Point,还要运行checkpoint_sic_opsec.py。如果版本猜测为undetermined或置信度低,就应保持为未确定——不要据此评估 CVE。 - VPN 加密 — 对 UDP 500/4500,运行
ike_enum.py:标记 IKEv1 aggressive mode(会泄露 PSK 哈希 → 应记录为发现项),枚举接受的变换和弱 DH 组(1/2/5),并解码 NAT-T/NOTIFY。仅支持 IKEv2、且不支持 IKEv1 RA 时,要求 IKEv1 aggressive mode 的 CVE 对其not_applicable(参见severity-calibration.md规则 5)。 - TLS 安全态势 — 对每台主机运行
tls_handshake_probe.py:仅报告握手成功完成的版本;TLS 1.0/1.1 握手成功才属于弱协议发现项(而不是根据 openssl 退出代码判断)。 - 信息泄露 — 使用
ntlm_decode.py解码任何 NTLM Type-2 质询,获取内部主机、域和 OS 情报;将其记录为信息泄露发现项。 - CVE 适用性(基于前置条件) — 对每个发现的设备 CVE,使用步骤 1 中的厂商和版本,以及前置条件映射(checkpoint_sic_opsec / appliance_version_infer
applicability),标记为applicable/undetermined/not_applicable。运行python3 tools/nvd-lookup.py补充 CVE 信息。适用性为undetermined时,应如实报告——绝不能夸大为已确认漏洞。 - 取证 — 如果“关闭”的主机在防火墙后似乎仍在线,在断言任何结论前运行
perimeter_forensics.py --classify-ttls:区分真实主机发送的 RST 和过滤器伪造的 RST(需要开放服务的 TTL 基线,否则结果为undetermined)。
反模式
- 不要仅凭版本横幅就将设备 CVE 判定为已确认——横幅可能经过回移植或伪造;应根据
applicability设置门槛(severity-calibration.md规则 4-5)。 - 不要因为
openssl s_client返回非零退出代码就声称支持 TLS 1.0/1.1——必须确认握手成功完成(tls_handshake_probe.py)。 - 不要根据 RST 断言“防火墙后存在内部主机”——防火墙会伪造 RST;请使用 TTL 判别方法,并接受结果可能为
undetermined。 - 不要在交战过程中尝试破解 IKE aggressive mode PSK 哈希——捕获并标记 aggressive mode 暴露情况就是发现项;离线破解需要明确授权。
参考
- 静态对应项:
firewall-review(配置审计)。通用网络:infrastructure。 - CVE 前置条件 / 适用性规范:
../coordination/reference/severity-calibration.md(规则 4-5)。
评论
支持 Markdown