mcpField
N
network-appliance-offensive

network-appliance-offensive

github.com/transilienceai安全598107 次安装13 周前更新
代码仓库

关于 network-appliance-offensive

用于对在线网络设备和 VPN 配置进行非破坏性评估的安全测试技能。工具收集指纹与协议细节,并依据观察到的前置条件判断 CVE 适用性,不把不确定版本当作已确认漏洞。

主要功能

  1. 01枚举 IKE 并解码通知消息
  2. 02识别 Check Point 服务与 OPSEC
  3. 03推断所列厂商的固件和补丁级别
  4. 04仅以完成的握手判定 TLS 支持
  5. 05分析 NTLM 挑战和边界 RST
  6. 06依据前置条件映射 CVE 适用性

适用场景

  1. 01评估 VPN 的 IKE 模式、变换和 DH 组
  2. 02检查设备 CVE 的前置条件是否成立
  3. 03识别旧版 TLS 是否完成握手
  4. 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.pyRST-TTL 伪造判别器(真实主机与伪造 RST 的防火墙)+ IKE NOTIFY 解码仅凭 RST 绝不判断“FW 后方有内部主机”——在此层,防火墙伪造的 RST 无法区分;若没有开放服务的 TTL 基线,则返回 undetermined

工作流

  1. 识别设备指纹 — 根据端口集合、横幅和登录标记,运行 appliance_version_infer.py(猜测厂商和版本,并给出置信度);对于 Check Point,还要运行 checkpoint_sic_opsec.py。如果版本猜测为 undetermined 或置信度低,就应保持为未确定——不要据此评估 CVE。
  2. 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)。
  3. TLS 安全态势 — 对每台主机运行 tls_handshake_probe.py:仅报告握手成功完成的版本;TLS 1.0/1.1 握手成功才属于弱协议发现项(而不是根据 openssl 退出代码判断)。
  4. 信息泄露 — 使用 ntlm_decode.py 解码任何 NTLM Type-2 质询,获取内部主机、域和 OS 情报;将其记录为信息泄露发现项。
  5. CVE 适用性(基于前置条件) — 对每个发现的设备 CVE,使用步骤 1 中的厂商和版本,以及前置条件映射(checkpoint_sic_opsec / appliance_version_infer applicability),标记为 applicable / undetermined / not_applicable。运行 python3 tools/nvd-lookup.py 补充 CVE 信息。适用性为 undetermined 时,应如实报告——绝不能夸大为已确认漏洞。
  6. 取证 — 如果“关闭”的主机在防火墙后似乎仍在线,在断言任何结论前运行 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 暴露情况就是发现项;离线破解需要明确授权。

参考

评论

支持 Markdown