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-Forge → FirewallXPL-Forge
Language: English (en-US) — this file is the default. Português (pt-BR): README.pt-BR.md
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 |
|---|---|
| NGFW / UTM | ISP CPE / residential gateway |
|---|---|
| Mixed edge (router + UTM-lite) |
|---|
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,setuptoolstelnetlib3on 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:
- English (en-US, default): docs/wiki/en-US/README.md
- Português (pt-BR): docs/wiki/pt-BR/README.md
- Hub (both): docs/wiki/README.md
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.jsonnow merges the static matrix,external_tool_intel_sources.jsonhints, CVE strings fromfirewallxpl/modules, embedded_EMBEDDED_CVESscope, Discordrelated_cves_hint, and PoC repository URLs normalized from the vendored tg12cve_links.txt(in-scope IDs only; does not load the whole global index into RAM at runtime). - Docs:
FULL_CATALOGadds on-disk footprint, largest paths, and first-party.pycounts (tools/generate_full_catalog.py). - Offline Exploit-DB:
generic/external/exploitdb_embedded_lookupsearches the bundledfiles_exploits.csvtree (nosearchsploitCLI); 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 infirewallxpl/resources/catalogs/. SOHO exploit catalog bundle +scanners/misc/soho_exploit_catalog_serverfor 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
- Riposte — interactive shell pattern
- Community contributions to the original mrhenrike/FirewallXPL-Forge
- Contributors listed in CONTRIBUTORS.md
Author: André Henrique (@mrhenrike) | União Geek — https://github.com/Uniao-Geek
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b715cdb2c03aa131719fbd9ca2c1476d14cdb54f1f24506b2d631d7d99844e2c
|
|
| MD5 |
8d2d479f09e9af8675160fc1ecf19f0f
|
|
| BLAKE2b-256 |
dcbb900c70cae8c1b82659c32fc70015a29fbca3cde0aa0e991b840b83190a31
|
Provenance
The following attestation bundles were made for firewallxpl-2.0.0.tar.gz:
Publisher:
publish-pypi.yml on mrhenrike/FirewallXPL-Forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
firewallxpl-2.0.0.tar.gz -
Subject digest:
b715cdb2c03aa131719fbd9ca2c1476d14cdb54f1f24506b2d631d7d99844e2c - Sigstore transparency entry: 1258500756
- Sigstore integration time:
-
Permalink:
mrhenrike/FirewallXPL-Forge@5ad37856160f4af22740e4720251a77c34f132c9 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/mrhenrike
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@5ad37856160f4af22740e4720251a77c34f132c9 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f1277133dec5d631bc89cad6fefae3dfd2ddc9c09b445a5352453db8c709ae0
|
|
| MD5 |
d2bac0abf98c396d598f6a129df00b25
|
|
| BLAKE2b-256 |
1d2b55a96aa813e78c958e15f164abb673c48282e8a56309fd86ee0ecf813a46
|
Provenance
The following attestation bundles were made for firewallxpl-2.0.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on mrhenrike/FirewallXPL-Forge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
firewallxpl-2.0.0-py3-none-any.whl -
Subject digest:
9f1277133dec5d631bc89cad6fefae3dfd2ddc9c09b445a5352453db8c709ae0 - Sigstore transparency entry: 1258500764
- Sigstore integration time:
-
Permalink:
mrhenrike/FirewallXPL-Forge@5ad37856160f4af22740e4720251a77c34f132c9 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/mrhenrike
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@5ad37856160f4af22740e4720251a77c34f132c9 -
Trigger Event:
release
-
Statement type: