OpenSentinel is a powerful, fully free and open-source web-based pentesting platform. Designed for ethical hackers, developers, and security enthusiasts, it automates advanced scanning, vulnerability detection, and report generation using a hybrid of open-source tools and modern cloud integrations.
-
🌐 Web UI (Next.js frontend)
-
⚙️ Node.js/Express API backend
-
🧠 AI-assisted reports via Google Gemini (free tier)
-
🔍 Advanced scanning with:
nmapOWASP ZAPOSV.devAPI for CVE lookups- Optional:
Nikto,SQLMap,Wapiti
-
🧪 Fuzzing and anomaly detection (custom plugin support)
-
🗃️ MongoDB for scan data
-
🔐 Supabase (self-hosted) for auth and metadata
-
🔄 Job Queue system using Redis + BullMQ
-
📦 Lightweight with Alpine-based Docker images
-
📊 Optional integration with Grafana, Loki, ELK
graph TD
A[User] --> B(Web Application)
B --> C(API Service)
C --> D{Vulnerability Scanners}
D --> E[AI Analysis Backend]
E --> F(Vulnerability Feeds)
F --> C
D --> B
FROM node:20-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 4000
CMD ["node", "dist/index.js"]FROM python:3.11-alpine
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8001
CMD ["uvicorn", "scanner_service:app", "--host", "0.0.0.0", "--port", "8001"]- Uses Google Gemini (via remote API)
- Free-tier enabled (auto summarization, CVSS scoring)
- Rate-limited and quota-friendly
vercel.json
{
"version": 2,
"builds": [
{ "src": "next.config.js", "use": "@vercel/next" }
],
"routes": [
{ "src": "/api/(.*)", "dest": "/api/$1" },
{ "src": "/(.*)", "dest": "/index.html" }
]
}fly.toml
app = "opensentinel"
[build]
image = "your-image-name:latest"
[env]
NODE_ENV = "production"
[http_service]
internal_port = 4000
force_https = true
auto_stop_machines = true
auto_start_machines = true
min_machines_running = 1
processes = ["app"]Drop-in scanner plugins:
- Python or Bash based
- Auto-discovery via manifest (
plugin.yaml) - Enable your own tools like
ffuf,nuclei,custom payload scripts
- Docker & Docker Compose
- Free-tier Google API key for Gemini
- GitHub account for CI/CD (optional)
- Redis (for queue)
- MongoDB Atlas or self-hosted
- Supabase (can self-host or use free tier)
- LLM API rate limiting
- Auth via Supabase + JWT
- Dependency scanning via
npm audit,pip-audit,trivy - Sandbox OWASP ZAP and others via Docker
- Auto-scan scheduling
- Multi-user dashboards
- PDF report export
- CVE database mirror
- AI-assisted remediation suggestions
OpenSentinel is licensed under the MIT License. Contributions welcome!
- Fork the repo
- Create a feature branch
- Submit a PR
- ⭐ Star the project if you find it useful!
OpenSentinel = Open-source + Sentinel (a watcher/guardian)
Keeping your services secure — one scan at a time.
- GitHub Issues for bugs/feature requests
- Discord/Matrix/IRC (coming soon!)
Let me know if you'd like this turned into a working repo template with CI/CD integration!
Goal: Deliver a minimal containerized platform for web-app vulnerability assessment with AI-assisted reporting.
- Subdomain Enumeration
- Install and configure
subfinderv2.5.3 for passive DNS and certificate scraping. - Integrate
amassv3.21.0 for active network enumeration with recursive brute-forcing of subdomains.
- Install and configure
- HTTP Probing & Discovery
- Use
httpxv1.2.0 for fast HTTP probing (status codes, TLS details, titles). - Incorporate
waybackurlsv0.0.7 to pull previously archived endpoints from the Wayback Machine.
- Use
- WAF Detection
- Deploy
wafw00fv2.1.0 to identify web application firewalls and adapt scanning techniques.
- Deploy
- Directory & Content Fuzzing
- Configure
dirsearchv0.4.1 with custom wordlists for common and hidden directories. - Set up
gobusterv4.0.1 for fast directory enumeration with both directory and DNS modes. - Integrate
wfuzzv3.1.0 for parameter fuzzing, XSS, and SQLi injection point discovery.
- Configure
- Automated Vulnerability Scanning
- Use
niktov2.1.6 for server misconfigurations and outdated components. - Run
whatwebv1.4.4 for technology fingerprinting and plugin-based analysis. - Integrate
nucleiv2.8.5 with a curated set of templates (OWASP, core, community). - Deploy OWASP
zaproxyv2.13.0 in headless mode for comprehensive Active Scan rulesets.
- Use
- Optional Deep Scanning
- Include
wapitiv4.6.1 for black-box testing of SQLi, XSS, RFI, SSRF. - Add
skipfishv2.10b for a fast heuristic-based crawler scan.
- Include
- Flask Service
- Create a Python 3.10 Flask application with a single
/analyzePOST endpoint. - Validate incoming JSON schema using
pydanticv1.10.
- Create a Python 3.10 Flask application with a single
- Model Integration
- Primary: Google Gemini Pro via
google-generativeaiv1.0.0 (free tier). - Fallback: OpenRouter.ai (GPT-3.5) and Together.ai (Mixtral) with automatic retry logic.
- Primary: Google Gemini Pro via
- Input/Output Specification
- Input payload:
{ "scan_results": [...], "cve_data": [...], "epss_data": [...], "kev_data": [] } - Output payload:
{ "summary": "Consolidated vulnerability overview...", "ratings": { "CVE-2023-1234": 5, ... }, "remediation": ["Update X to version Y","Implement WAF rule Z"] }
- Input payload:
- Error Handling & Logging
- Return HTTP 4xx for invalid inputs; 5xx for AI/service errors.
- Structured JSON logs with correlation IDs.
- CVE & NVD Feeds
- Scheduled daily fetch of NIST NVD JSON feeds (e.g.,
nvdcve-1.1-modified.json). - Parse and store only web-app related CVEs (HTTP, web frameworks) in
/data/feeds/cve/.
- Scheduled daily fetch of NIST NVD JSON feeds (e.g.,
- EPSS Scores
- Download
epss_scores-YYYY-MM-DD.csv.gzand extract scores. - Filter and tag CVEs with EPSS > 0.75 as "High Priority".
- Download
- CISA KEV Catalog
- Fetch CISA KEV CSV weekly and mark any matching CVEs as "Known-Exploited."
- Dockerfile (Debian Bookworm Slim)
- Install all tools, Python 3.10, pip, Flask,
google-generativeai,pydantic,requests. - Add a startup script
entrypoint.shto update feeds and launch Flask. - ENV:
GEMINI_API_KEY,OPENROUTER_API_KEY,TOGETHERAI_API_KEY. - Expose port
3000and setCMD ["/entrypoint.sh"].
- Install all tools, Python 3.10, pip, Flask,
- docker-compose.yml
- Service
webappbuilds from Dockerfile. - Volumes:
scans_data:/data/scans,feeds_data:/data/feeds. - Environment from
.envfile. - Healthcheck:
curl --fail http://localhost:3000/health || exit 1.
- Service
- README.md with:
- Architecture diagram (Mermaid or ASCII).
- Setup instructions (Docker, .env, Ignition for CoreOS).
- Examples
- Provide sample scan JSONs in
examples/.
- Provide sample scan JSONs in
- Testing
- Unit tests using
pytestfor analyzer logic. - Integration test: run Nuclei against
vulnerables.medemo and assert returned summary contains expected keywords.
- Unit tests using
Goal: Build on Alpha by expanding tool coverage, adding UI, observability, and tightening security.
- Add advanced scanners:
w3afv1.7.3,arachniv1.5.1,vegav1.1.0. - Integrate custom
nucleitemplates for CVE-2023 series. - Include
dnsreconandsubjackfor certificate and subdomain takeover checks.
- Build a lightweight React frontend using Tailwind CSS.
- Integrate
/docsOpenAPI UI via Swagger-UI. - Dashboard features: scan history, filter by rating, detailed CVE view, export to CSV/PDF.
- Configure ELK stack or Grafana Loki for log aggregation.
- Expose Prometheus metrics (
/metrics) for scan count, durations, AI latency. - Setup Alertmanager for notifying Slack/Email on failures or >10 Critical ratings.
- GitHub Actions workflows:
build-test-deploy: build Docker, run tests, push to Docker Hub.scheduled-scan: daily run of scan pipeline, upload JSON artifact.feed-updater: weekly feed refresh.
- Integrate Trivy scan in CI; fail build on high-severity findings.
- Use Licensee to ensure all dependencies are MIT/Apache.
- Drop root user: create
opensentineluser in Dockerfile. - Mount code as read-only; scan results writeable only to
/data/scans. - Front requests rate-limited via Nginx sidecar.
Goal: Finalize for production with multi-tenancy, plugin ecosystem, and robust developer/deployment experience.
- Architect as microservices:
apiservice (Flask)workerservice (Celery + RabbitMQ)uiservice (React)
- Horizontal scaling: run multiple
workerreplicas via Docker Compose or Kubernetes.
- Design database schema with
tenant_idon all tables. - Implement OAuth2 authentication via Keycloak or Auth0.
- Define roles:
admin,team_member,viewerwith granular endpoint permissions.
- Write backup script to snapshot
/data/scansand/data/feedsto S3 (AWS CLI). - CLI command
opensentinel restore --from s3://bucket/path.
- Auto-generate OpenAPI spec and serve via
/docs. - Provide VSCode devcontainer config with Docker Compose support.
- Makefile targets:
make build,make scan,make analyze,make test,make deploy.
- Use
Flask-Babelfor server-side translations. - Extract frontend strings into JSON resource files for translation.
- Offer language switcher in UI.