mirror of
https://github.com/CyberSecurityUP/NeuroSploit.git
synced 2026-03-21 09:43:26 +00:00
116 modules | 100 vuln types | 18 API routes | 18 frontend pages Major features: - VulnEngine: 100 vuln types, 526+ payloads, 12 testers, anti-hallucination prompts - Autonomous Agent: 3-stream auto pentest, multi-session (5 concurrent), pause/resume/stop - CLI Agent: Claude Code / Gemini CLI / Codex CLI inside Kali containers - Validation Pipeline: negative controls, proof of execution, confidence scoring, judge - AI Reasoning: ReACT engine, token budget, endpoint classifier, CVE hunter, deep recon - Multi-Agent: 5 specialists + orchestrator + researcher AI + vuln type agents - RAG System: BM25/TF-IDF/ChromaDB vectorstore, few-shot, reasoning templates - Smart Router: 20 providers (8 CLI OAuth + 12 API), tier failover, token refresh - Kali Sandbox: container-per-scan, 56 tools, VPN support, on-demand install - Full IA Testing: methodology-driven comprehensive pentest sessions - Notifications: Discord, Telegram, WhatsApp/Twilio multi-channel alerts - Frontend: React/TypeScript with 18 pages, real-time WebSocket updates
39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
"""
|
|
NeuroSploit v3 - FULL AI Testing API
|
|
|
|
Serves the comprehensive pentest prompt and manages FULL AI testing sessions.
|
|
"""
|
|
import logging
|
|
from pathlib import Path
|
|
from fastapi import APIRouter, HTTPException
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
router = APIRouter()
|
|
|
|
# Default prompt file path - English translation preferred, fallback to original
|
|
PROMPT_PATH_EN = Path("/opt/Prompts-PenTest/pentestcompleto_en.md")
|
|
PROMPT_PATH_PT = Path("/opt/Prompts-PenTest/pentestcompleto.md")
|
|
PROMPT_PATH = PROMPT_PATH_EN if PROMPT_PATH_EN.exists() else PROMPT_PATH_PT
|
|
|
|
|
|
@router.get("/prompt")
|
|
async def get_full_ia_prompt():
|
|
"""Return the comprehensive pentest prompt content."""
|
|
if not PROMPT_PATH.exists():
|
|
raise HTTPException(
|
|
status_code=404,
|
|
detail=f"Pentest prompt file not found at {PROMPT_PATH}"
|
|
)
|
|
try:
|
|
content = PROMPT_PATH.read_text(encoding="utf-8")
|
|
return {
|
|
"content": content,
|
|
"path": str(PROMPT_PATH),
|
|
"size": len(content),
|
|
"lines": content.count("\n") + 1,
|
|
}
|
|
except Exception as e:
|
|
logger.error(f"Failed to read prompt file: {e}")
|
|
raise HTTPException(status_code=500, detail=str(e))
|