Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Offensive testing of perimeter network appliances and VPN crypto — IKE/IPsec (aggressive-mode, transform/DH enum, NAT-T), Check Point SIC/OPSEC, safe firmware/patch-level inference for FortiGate/PAN-OS/Cisco ASA/Citrix feeding CVE applicability, NTLM Type-2 target-info decode, handshake-completion TLS-version probing, and an RST-TTL forgery discriminator. The active/offensive counterpart to the static firewall-review skill. Use when a perimeter firewall/VPN/appliance is in scope and you must tes
.claude/skills/transilienceai-network-appliance-offensive/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 266% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 42% | 0% |
firewall-review audits a config statically; infrastructure covers generic ports/DNS/SMB. Neither tests a live perimeter appliance or its VPN crypto — so IKE builders, SIC/OPSEC fingerprinting, and TTL discriminators were reinvented from raw sockets each engagement, often shallowly, and CVE applicability was left UNDETERMINED across whole estates. This skill provides the deterministic, tested tools and the precondition-gated methodology. Non-destructive only — every tool observes/decodes/infers; none fires an exploit, and CVE applicability is a precondition check, never a blind "vulnerable."
| Tool | Does | Anti-footgun | |------|------|--------------| | tools/ike_enum.py | IKEv1 aggressive-mode detection, IKEv1/IKEv2 transform + DH-group enum, NOTIFY / NAT-T decode (wraps ike-scan, raw ISAKMP SA_INIT builder fallback) | Aggressive-mode support (PSK-hash leak) is the finding; enumerate, don't crack in-band | | tools/checkpoint_sic_opsec.py | Fingerprint SIC (18190/1), OPSEC LEA/ELA (18183/4), CA (18192/18210), FW1 (256/264), Gaia Portal; emit a CVE-precondition map incl. CVE-2024-24919 | CVE-2024-24919 is applicable ONLY when the RA/Mobile-Access marker is observed — else undetermined | | tools/appliance_version_infer.py | Safe firmware/patch-level inference for FortiGate / PAN-OS / Cisco ASA / Citrix from headers, login markers, cert CN/serial → CVE applicability | Never asserts applicable on a low-confidence / unknown version — returns undetermined | | tools/tls_handshake_probe.py | Which TLS versions are supported, by completed handshake per pinned protocol | Fixes the openssl s_client exit/SECLEVEL false-positive — an aborted handshake ≠ support | | tools/ntlm_decode.py | Decode an NTLM Type-2 (CHALLENGE) AV_PAIR block → NetBIOS/DNS host, domain, forest, OS build | Info-leak finding from an unauthenticated challenge; no auth attempted | | tools/perimeter_forensics.py | RST-TTL forgery discriminator (real host vs firewall forging a RST) + IKE NOTIFY decode | Never asserts "internal host behind FW" on RSTs alone — a firewall forges RSTs indistinguishably at this layer; returns undetermined without an open-service TTL baseline |
appliance_version_infer.py (vendor + version guess + confidence) and, for Check Point, checkpoint_sic_opsec.py. A version guess of undetermined/low-confidence stays undetermined — do not score CVEs against it.ike_enum.py: flag IKEv1 aggressive mode (leaks the PSK hash → a finding), enumerate accepted transforms + weak DH groups (1/2/5), and decode NAT-T/NOTIFY. IKEv2-only where IKEv1 RA is absent (a CVE requiring IKEv1 aggressive mode is not_applicable there — see severity-calibration.md rule 5).tls_handshake_probe.py per host: report only handshake-completed versions; TLS 1.0/1.1 completion is the weak-protocol finding (not an openssl exit code).ntlm_decode.py) for internal host/domain/OS intel; record it as an information-disclosure finding.applicability) and mark applicable / undetermined / not_applicable. Enrich the CVE via python3 tools/nvd-lookup.py. An undetermined applicability is reported as such — never inflated to a confirmed vuln.perimeter_forensics.py --classify-ttls before asserting anything: distinguish a real host RST from a filter-forged RST (needs an open-service TTL baseline; otherwise undetermined).applicability (severity-calibration.md rules 4-5).openssl s_client non-zero exit — require a completed handshake (tls_handshake_probe.py).undetermined.firewall-review (config audit). Generic network: infrastructure.../coordination/reference/severity-calibration.md (rules 4-5).Other measured skills in the registry, with their headline benchmark lift.