8000 GitHub - L0veHeather/strix: Open-source AI agents for penetration testing
[go: up one dir, main page]

Skip to content

L0veHeather/strix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ‰ Strix v2: Human-Controlled Security Scanner

English | ไธญๆ–‡ | ๐Ÿ“– v2 ่ฎพ่ฎกๅ“ฒๅญฆ

โš ๏ธ Architecture Change: Strix v2 has been fundamentally redesigned.

  • โŒ Removed: Agent loops, Docker/Sandbox, LLM-controlled flow, CLI/TUI
  • โœ… Added: Server + Engine + Plugin architecture with human control

Strix v2 is an open-source, plugin-based security scanning system. Unlike v1's autonomous agent approach, v2 puts humans in control while leveraging security tools for comprehensive vulnerability detection.

๐Ÿš€ Quick Start

# Clone repository
git clone https://github.com/your-org/strix.git
cd strix

# One-click launch (backend + web UI)
./start.sh

# Or run server directly
uvicorn strix.server.app:app --host 0.0.0.0 --port 8000

# Frontend (separate terminal)
cd desktop && pnpm dev

Access:


๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     Desktop UI (React + Tauri)                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                     FastAPI Server (REST + WS)                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                         Scan Engine                             โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”‚
โ”‚    โ”‚  Event Bus   โ”‚Phase Manager โ”‚ Result Collector     โ”‚      โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      Plugin Registry                            โ”‚
โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”‚
โ”‚    โ”‚ Nuclei โ”‚ โ”‚ HTTPX  โ”‚ โ”‚  ffuf  โ”‚ โ”‚ Katana โ”‚ โ”‚ SQLMap โ”‚     โ”‚
โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      SQLite Storage                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Key Components

Component Description
Server FastAPI backend with REST API and WebSocket for real-time updates
Engine ScanEngine orchestrates phases, EventBus distributes events
Plugins Security tools (Nuclei, httpx, ffuf, katana, sqlmap)
Storage SQLite database for scans, findings, and configurations
Desktop 8000 Tauri + React frontend for visual scan management

๐Ÿ›ก๏ธ Plugin-Based Vulnerability Detection

Strix v2 uses proven security tools as plugins:

Plugin Phase Description
nuclei Vulnerability Scan Template-based vulnerability scanning (10,000+ templates)
httpx Reconnaissance HTTP probing, technology detection
ffuf Enumeration Directory brute-forcing, parameter fuzzing
katana Reconnaissance Web crawling, endpoint discovery
sqlmap Exploitation SQL injection detection and exploitation

๐Ÿ”„ How Strix v2 Works

Strix v2 follows a deterministic, code-controlled workflow:

RECONNAISSANCE โ†’ ENUMERATION โ†’ VULNERABILITY_SCAN โ†’ VALIDATION โ†’ REPORTING
Phase Plugins Output
Reconnaissance httpx, katana Discovered endpoints, technologies
Enumeration ffuf Hidden paths, parameters
Vulnerability Scan nuclei, sqlmap Detected vulnerabilities
Validation nuclei Verified findings
Reporting - JSON, Markdown, SARIF reports

Key Principles

  1. Code controls flow - Phase transitions are deterministic, not LLM-decided
  2. Plugins execute - Security tools run natively, no Docker/sandbox
  3. Humans review - All results require human analysis

๐Ÿš€ Installation

Prerequisites

  1. Python 3.12+: Required for the backend
  2. Node.js 18+: Required for the desktop UI
  3. Security Tools: Required for scanning

Install Security Tools

# Go tools (requires Go 1.21+)
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/ffuf/ffuf/v2@latest
go install github.com/projectdiscovery/katana/cmd/katana@latest

# Python tools
pipx install sqlmap

# Verify installation
nuclei -version
httpx -version
ffuf -version
katana -version
sqlmap --version

Install Strix

# Clone repository
git clone https://github.com/your-org/strix.git
cd strix

# Backend
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Frontend
cd desktop
pnpm install

โš™๏ธ Configuration

Optional: LLM for Analysis (Future Feature)

export STRIX_LLM="openai/gpt-4o"
export LLM_API_KEY="sk-..."

Note: LLM integration is optional in v2. The core scanning workflow is fully functional without LLM.


๐Ÿ’ป Usage

Web UI (Recommended)

./start.sh

Features:

  • ๐Ÿ“Š Real-time scan progress with phase visualization
  • ๐Ÿ”Œ Plugin management (install/enable/disable)
  • ๐Ÿ“ˆ Vulnerability dashboard with severity breakdown
  • ๐Ÿ“„ Export reports (JSON, Markdown, SARIF)
  • ๐ŸŒ™ Dark/Light theme support

API Usage

# Create scan
curl -X POST http://localhost:8000/api/scans \
  -H "Content-Type: application/json" \
  -d '{"target": "https://example.com"}'

# Get scan status
curl http://localhost:8000/api/scans/{scan_id}

# List vulnerabilities
curl http://localhost:8000/api/results/{scan_id}/vulnerabilities

WebSocket Events

Connect to ws://localhost:8000/ws/{client_id} for real-time updates:

// Subscribe to scan updates
ws.send(JSON.stringify({ action: "subscribe", scan_id: "abc123" }))

// Receive events
// - scan.started
// - phase.started / phase.completed
// - plugin.started / plugin.output / plugin.completed
// - vulnerability.found
// - scan.completed / scan.failed

๐Ÿ”Œ Creating Custom Plugins

# plugins/my-scanner/manifest.yaml
name: my-scanner
version: "1.0.0"
display_name: "My Custom Scanner"
description: "Custom vulnerability scanner"
author: "Your Name"

phases:
  - VULNERABILITY_SCAN

capabilities:
  - WEB_SCANNING

executable:
  binary: my-scanner
  install_method: go
  install_command: "go install github.com/example/my-scanner@latest"
# plugins/my-scanner/plugin.py
from strix.plugins.base import BasePlugin, ScanPhase, PluginCapability

class MyScanner(BasePlugin):
    name = "my-scanner"
    version = "1.0.0"
    phases = [ScanPhase.VULNERABILITY_SCAN]
    capabilities = [PluginCapability.WEB_SCANNING]
    
    async def execute(self, target, phase, parameters):
        async for event in self.stream_command(
            ["my-scanner", "-target", target],
            phase,
            line_parser=self._parse_output,
        ):
            yield event

โš ๏ธ What's NOT in Strix v2

The following v1 features have been permanently removed:

Removed Feature Reason
Agent loops LLM should advise, not control
Docker/Sandbox runtime Tools run natively for transparency
CLI/TUI interface Replaced by Web UI + API
LLM-controlled tool selection Code determines workflow
MCP gateway Agent-specific, not needed
Scope configuration files Replaced by ScanConfig API
Multi-agent orchestration Single deterministic engine
Autonomous scanning Human-in-the-loop required

See v2 ่ฎพ่ฎกๅ“ฒๅญฆ for the architectural rationale.


๐Ÿ“ Project Structure

strix/
โ”œโ”€โ”€ desktop/              # Tauri + React frontend
โ”œโ”€โ”€ plugins/              # Security tool plugins
โ”‚   โ”œโ”€โ”€ nuclei/
โ”‚   โ”œโ”€โ”€ httpx/
โ”‚   โ”œโ”€โ”€ ffuf/
โ”‚   โ”œโ”€โ”€ katana/
โ”‚   โ””โ”€โ”€ sqlmap/
โ”œโ”€โ”€ strix/
โ”‚   โ”œโ”€โ”€ server/           # FastAPI backend
โ”‚   โ”‚   โ”œโ”€โ”€ app.py        # Main application
โ”‚   โ”‚   โ””โ”€โ”€ routes/       # API endpoints
โ”‚   โ”œโ”€โ”€ engine/           # Scan engine
โ”‚   โ”‚   โ”œโ”€โ”€ scan_engine.py
โ”‚   โ”‚   โ”œโ”€โ”€ phase_manager.py
โ”‚   โ”‚   โ”œโ”€โ”€ event_bus.py
โ”‚   โ”‚   โ””โ”€โ”€ result_collector.py
โ”‚   โ”œโ”€โ”€ plugins/          # Plugin infrastructure
โ”‚   โ”‚   โ”œโ”€โ”€ base.py
โ”‚   โ”‚   โ”œโ”€โ”€ registry.py
โ”‚   โ”‚   โ””โ”€โ”€ loader.py
โ”‚   โ”œโ”€โ”€ storage/          # SQLite persistence
โ”‚   โ”‚   โ”œโ”€โ”€ database.py
โ”‚   โ”‚   โ””โ”€โ”€ models.py
โ”‚   โ””โ”€โ”€ llm/              # LLM integration (optional)
โ”œโ”€โ”€ docs/
โ”‚   โ””โ”€โ”€ strix-v2-philosophy.md
โ”œโ”€โ”€ start.sh              # One-click launcher
โ””โ”€โ”€ pyproject.toml

๐Ÿค Contributing

See CONTRIBUTING.md for guidelines.

Key principle: Any change must align with the v2 ่ฎพ่ฎกๅ“ฒๅญฆ.


๐Ÿ“„ License

Apache 2.0 - See LICENSE


๐Ÿ™ Acknowledgments

About

Open-source AI agents for penetration testing

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 12

0