Skip to main content

Perimeter security exploitation framework — NGFW, UTM, WAF, VPN, NAC, LB, and OT/ICS firewalls

Project description

FirewallXPL-Forge

Fork focado em perímetro e caixa de estado: NGFW, UTM, WAF, firewalls de cloud (AWS/Azure/GCP/OCI, Cloudflare, ELB/WAF labels em catálogo), e SSL-VPN concentrators — laboratório autorizado.
O ramo FirewallXPL-Forge permanece para roteadores, switches L2/L3, TAPs e CPE ISP. Wi‑Fi/BLE/PCAP ficam em WirelessXPL-Forge (private).

Maintainer: André Henrique (@mrhenrike) | União Geek
Project: mrhenrike/FirewallXPL-ForgeFirewallXPL-Forge

Language: English (en-US) — this file is the default. Português (pt-BR): README.pt-BR.md

Python 3.8–3.13 CI


What the project does

FirewallXPL-Forge fornece módulos para ensaios autorizados contra superfície firewall / VPN / gestão centralizada (pentest, laboratório, red team controlado). Classes de alvo por omissão: fw, ngfw, utm, waf, cloud_fw (ver module_target_scope.json).

Type Role
exploits Abuse known vulnerabilities (with check() where implemented)
creds Default credentials and brute force against network services
scanners Weakness identification; autopwn orchestrates modules with Nmap-like timing profiles
generic Cross-cutting utilities: SNMP, SSDP, CVE lookup, wordlist, external bridges (802.11 PCAP → WirelessXPL-Forge)
payloads Payload generation by architecture (ARM/MIPS/x86, reverse/bind shells)
encoders Payload encoding (Python, PHP, Perl)

Out of scope in this repository: modules whose primary target is IP cameras, printers, or DVRs.

Attack-surface architecture (by device class)

Hub-and-spoke diagrams (same idea as MikrotikAPI-BF img/mikrotik_*): device core, remote access vectors, and how they map to FirewallXPL-Forge coverage. Mermaid sources: docs/diagrams/architecture/.

SOHO / home router Managed L2–L3 switch
SOHO router — attack surface & RXF coverage Switch — attack surface & RXF coverage
NGFW / UTM ISP CPE / residential gateway
NGFW UTM — attack surface & RXF coverage ISP CPE — attack surface & RXF coverage
Mixed edge (router + UTM-lite)
Mixed edge — attack surface & RXF coverage

Compatibility notice

Some platforms have not been field-tested. If something breaks, open an issue with OS, Python version, and traceback.

Platform Status
Windows 10/11 CI + local validation
WSL / Debian / Ubuntu CI + local validation
Kali Linux Validated locally
macOS CI (limited field validation)
RHEL / Fedora / Termux Expected compatible — not validated

Python: 3.8 through 3.13. Includes a shim for removed telnetlib on 3.13+ (telnetlib3).


Quick install

Dependencies (requirements.txt)

  • requests, paramiko, pysnmp, pycryptodome, scapy, setuptools
  • telnetlib3 on Python ≥ 3.13

Clone and run

git clone https://github.com/mrhenrike/FirewallXPL-Forge.git
cd FirewallXPL-Forge
python3 -m venv .venv
# Linux/macOS:
source .venv/bin/activate
# Windows:
# .venv\Scripts\activate
python3 -m pip install -r requirements.txt
python3 rxf.py

Environment diagnostics

python tools/env_doctor.py

Usage overview

Interactive shell

After python rxf.py:

help                          # global help (+ module help if one is loaded)
use creds/generic/ssh_default # load module (slashes like paths)
set target 192.168.0.1
show options                  # editable options
show info                     # module metadata
check                         # check if target looks vulnerable (if implemented)
run                           # execute
back                          # unload module
search exit                   # modules whose path contains "exit"
search type=exploits vendor=linksys wrt
exec uname -a                 # OS shell command
exit                          # Ctrl+D also exits

Search: space-separated words are ANDed (all must appear in the module path). Filters: type=, device=, language=, payload=, vendor=.

Global options: setg name value applies across modules; unsetg name removes.

Prompt: environment variables FXF_RAW_PROMPT and FXF_MODULE_PROMPT (see firewallxpl/interpreter.py).

Non-interactive mode

python rxf.py -m creds/generic/ssh_default -s "target 192.168.0.1" -s "port 22"

-s may repeat; each string is parsed like interactive set.

Logs

Bootstrap logging writes to firewallxpl.log (rotating log in the current working directory).


Full documentation (Wiki)

Syntax, examples by module family, troubleshooting, and the module index:

To publish on GitHub Wiki, copy the chosen locale folder (or both) into the wiki repository (separate Git clone).


Other docs in the repo

Path Contents
docs/README.md · docs/README.pt-BR.md Documentation hub (en-US + pt-BR)
docs/diagrams/architecture/ Attack-surface architecture (MikrotikAPI-BF style) + PNGs
docs/COVERAGE_MATRIX.md Coverage matrix and external intel (en-US body)
docs/FULL_CATALOG.md Extended device/CVE-oriented catalog (en-US body)
firewallxpl/resources/catalogs/ JSON catalogs (market, Discord, extended CVE, etc.)
tools/report_market_priority_gaps.py Gap report vs market-priority catalog
tools/validate_market_priority_minimums.py Yearly minimum validation
tools/generate_coverage_matrix.py Regenerate matrix docs
tools/generate_full_catalog.py Regenerate FULL_CATALOG (footprint, sizes, module stats)
tools/refresh_cve_extended_catalog.py Regenerate merged cve_extended_catalog.json
# (removed tool) Vendor PoC snapshots into arsenal/pocs/integrated_modules/

Release notes — 3.4.8

  • CVE catalog: cve_extended_catalog.json now merges the static matrix, external_tool_intel_sources.json hints, CVE strings from firewallxpl/modules, embedded _EMBEDDED_CVES scope, Discord related_cves_hint, and PoC repository URLs normalized from the vendored tg12 cve_links.txt (in-scope IDs only; does not load the whole global index into RAM at runtime).
  • Docs: FULL_CATALOG adds on-disk footprint, largest paths, and first-party .py counts (tools/generate_full_catalog.py).
  • Offline Exploit-DB: generic/external/exploitdb_embedded_lookup searches the bundled files_exploits.csv tree (no searchsploit CLI); legacy SearchSploit bridge modules were removed.
  • Arsenal: Curated PoC catalog live under firewallxpl/resources/arsenal/pocs/integrated_modules/ (GPLv2 Exploit-DB and selected repos); indexes in firewallxpl/resources/catalogs/. SOHO exploit catalog bundle + scanners/misc/soho_exploit_catalog_server for local HTTP viewing in lab.

Tests and quality (contributors)

python tools/compat_smoke.py
python tools/validate_market_priority_minimums.py
python tools/generate_coverage_matrix.py

Governance (bilingual files)

English (default) Português (pt-BR)
CONTRIBUTING.md CONTRIBUTING.pt-BR.md
CODE_OF_CONDUCT.md CODE_OF_CONDUCT.pt-BR.md
SECURITY.md SECURITY.pt-BR.md
CONTRIBUTORS.md CONTRIBUTORS.pt-BR.md

License

BSD — see LICENSE. Current maintenance is described in this file and in project metadata.


Acknowledgments


Author: André Henrique (@mrhenrike) | União Geekhttps://github.com/Uniao-Geek

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firewallxpl-2.0.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firewallxpl-2.0.0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file firewallxpl-2.0.0.tar.gz.

File metadata

  • Download URL: firewallxpl-2.0.0.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for firewallxpl-2.0.0.tar.gz
Algorithm Hash digest
SHA256 b715cdb2c03aa131719fbd9ca2c1476d14cdb54f1f24506b2d631d7d99844e2c
MD5 8d2d479f09e9af8675160fc1ecf19f0f
BLAKE2b-256 dcbb900c70cae8c1b82659c32fc70015a29fbca3cde0aa0e991b840b83190a31

See more details on using hashes here.

Provenance

The following attestation bundles were made for firewallxpl-2.0.0.tar.gz:

Publisher: publish-pypi.yml on mrhenrike/FirewallXPL-Forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file firewallxpl-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: firewallxpl-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for firewallxpl-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9f1277133dec5d631bc89cad6fefae3dfd2ddc9c09b445a5352453db8c709ae0
MD5 d2bac0abf98c396d598f6a129df00b25
BLAKE2b-256 1d2b55a96aa813e78c958e15f164abb673c48282e8a56309fd86ee0ecf813a46

See more details on using hashes here.

Provenance

The following attestation bundles were made for firewallxpl-2.0.0-py3-none-any.whl:

Publisher: publish-pypi.yml on mrhenrike/FirewallXPL-Forge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page