# Xentinel
High-performance asynchronous reconnaissance framework for security professionals.
Xentinel is a focused, modular toolkit designed for authorized security assessments. It combines fast concurrent HTTP intelligence gathering, CMS & technology fingerprinting, security-header evaluation, sensitive-path discovery, and component vulnerability enrichment into a single pipeline — available both as a clean dark-themed GUI and a scriptable CLI.
Legal notice
Use Xentinel only against targets you own or have explicit written permission to test. Unauthorized scanning may be illegal in your jurisdiction.
| Capability | Description |
|---|---|
| Mass & single-target recon | Process one URL or bulk lists from .txt files |
| Async pipeline | Built on asyncio + aiohttp with configurable concurrency |
| CMS detection | Signature-based scoring (WordPress, Joomla, Drupal, Magento, PrestaShop, Shopify, Next.js, Nuxt, Laravel, Django, …) |
| Technology fingerprinting | CDN, cloud providers, JS frameworks, analytics, WAF indicators |
| Security header audit | HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy |
| Sensitive path fuzzing | CMS-specific + generic high-value paths (.env, .git/HEAD, backups, admin panels…) |
| Addon extraction | Plugins / themes discovery via regex signatures |
| Vulnerability enrichment | Queries the public OSV.dev API for known issues on detected components |
| TCP port scan | Concurrent check of common service ports |
| TLS certificate insight | Version, issuer, validity window |
| Proxy support | Optional rotation from storage/proxies.txt |
| Reporting | JSON & CSV export |
| Dual interface | Modern CustomTkinter GUI + full-featured CLI |
# Clone / enter the project
cd Xentinel
# Install dependencies (Python ≥ 3.10 recommended)
pip install -r requirements.txt
# Launch the GUI
python xentinel.py
# Or run from the command line
python xentinel.py -t example.com
python xentinel.py -t targets.txt -o report.json --no-ports-t, --targets Single URL, comma-separated list, or path to a .txt file
-o, --output Write full JSON results to the given file
--no-proxy Disable proxy usage
--no-ports Skip TCP port scanning
--no-fuzz Skip sensitive-path discovery
--no-vulns Skip OSV component vulnerability lookup
--gui Force GUI mode
Xentinel/
├── xentinel.py # Entry point (GUI + CLI)
├── requirements.txt
├── README.md
├── xentinel/
│ ├── core/
│ │ ├── engine.py # Main async scan pipeline
│ │ ├── network.py # DNS, ports, TLS helpers
│ │ ├── signatures.py # Rule loading & defaults
│ │ └── vuln_checker.py # OSV.dev integration
│ ├── modules/
│ │ ├── addon_detector.py
│ │ ├── html_parser.py
│ │ ├── security_headers.py
│ │ └── tech_detector.py
│ ├── gui/
│ │ └── app.py
│ └── utils/
│ └── helpers.py
├── storage/
│ ├── cms_rules.json # CMS fingerprints & sensitive paths
│ ├── addon_rules.json # Plugin/theme extraction regexes
│ ├── tech_rules.json # Broader tech signatures
│ └── proxies.txt.example
└── reports/ # Default export directory
- Proxies – copy
storage/proxies.txt.example→storage/proxies.txtand add one proxy per line (http://host:portorhttp://user:pass@host:port). - Signatures – all detection logic is data-driven. Extend
cms_rules.json,addon_rules.jsonortech_rules.jsonwithout touching Python code. - Scan options – both GUI checkboxes and CLI flags let you disable port scanning, fuzzing or vulnerability lookups for quieter or faster runs.
Each successful target produces a document containing:
url,ip,server,response_time_ms,status_codecms+ confidence scoretechnologies(list)open_portssecurity_headers(status / severity / recommendation)exposed_files(path + HTTP status)addons(plugins & themes)vulnerabilities(OSV results keyed by component)tls(certificate summary)meta(title, generator, description, canonical…)
- New CMS – add an entry to
storage/cms_rules.jsonwithhtml_keywords, optionalhtml_regex,headersandsensitive_paths. - New addon patterns – update
addon_rules.json. - New technology – add signatures to
tech_rules.json. - Custom post-processing – the engine returns a plain dict; pipe it into your own reporting or SIEM integration.
- Requests rotate realistic browser User-Agents.
- Concurrency is bounded (connector limit + semaphore on vuln lookups).
- HEAD is preferred for path fuzzing to reduce bandwidth and noise.
- TLS inspection runs in a thread-pool executor so it never blocks the event loop.
- All external calls (OSV) fail open — a unreachable vulnerability database never aborts a scan.
- The tool deliberately stays passive/semi-passive; it does not attempt exploitation or aggressive brute-forcing.
- Python 3.10+
aiohttp,beautifulsoup4,customtkinter,lxml(seerequirements.txt)
This software is provided for legitimate security research, red-team exercises and defensive assessments only. The authors assume no liability for misuse.
Xentinel — understand the attack surface before an adversary does.