AI-фреймворк наступательной безопасности, автоматизирующий разведку, сопоставление CVE и генерацию proof-of-concept эксплойтов с использованием различных LLM-провайдеров.
Автономные AI-агенты для пентестинга, которые динамически запускают код, находят уязвимости и подтверждают их работающими proof-of-concept эксплойтами, …
Полностью автономная система AI-агентов, способная выполнять комплексные задачи пентестинга в изолированных Docker-окружениях.
Автономная система пентестинга на базе GPT, автоматизирующая разведку, анализ уязвимостей, эксплуатацию и пост-эксплуатационные действия.
Открытый мультиагентный оркестратор для наступательной безопасности, координирующий несколько AI-агентов через восьмиэтапную цепочку операций для автономной разведки, …
git clone https://github.com/geevarghesekthomas84-sys/spaf.git cd spaf python -m venv venv source venv/bin/activate pip install -r requirements.txt pip install -e . spaf --install-completion spaf setup
███████╗██████╗ █████╗ ███████╗ ██╔════╝██╔══██╗██╔══██╗██╔════╝ ███████╗██████╔╝███████║█████╗ ╚════██║██╔═══╝ ██╔══██║██╔══╝ ███████║██║ ██║ ██║██║ ╚══════╝╚═╝ ╚═╝ ╚═╝╚═╝
Интеллектуальная платформа автоматизации пентестинга
Сканирование. Анализ. Эксплуатация. Устранение — автоматически.
— Поставщики ИИ —
SPAF — это профессиональный асинхронный фреймворк для наступательной безопасности, выступающий в роли ИИ-оснащённого мозга команды Red Team. Он выходит за рамки традиционных сканеров, автоматически преобразуя данные об уязвимостях в оружизированный разведывательный потенциал для атак.
| ### 🧠 Набор ИИ-интеллекта Подключение к любой ведущей модели ИИ для анализа уровня Red Team. После **каждого сканирования** SPAF автоматически отправляет результаты настроенному ИИ и генерирует специализированный отчёт с разведданными, включающий пути атак, техники эксплуатации, корреляцию с CVE и практические рекомендации по устранению — вывод прямо в терминал. **Поддерживаемые поставщики (все работают с каждой командой):** | Поставщик | Тип | Сокращение | |---|---|---| | Google Gemini 2.0 Flash | ☁️ Удалённый | `spaf gemini` | | Anthropic Claude 3.5 | ☁️ Удалённый | `spaf claude` | | Ollama (локально) | 💻 Потоковая передача | `spaf ollama` | | LM Studio (локально) | 💻 Потоковая передача | `spaf lmstudio` | > Локальные поставщики (**Ollama / LM Studio**) передают токены в реальном времени по мере их генерации. > Добавьте `--no-ai` к любой команде сканирования, чтобы пропустить анализ с помощью ИИ. | ### 🕵️ Движок скрытности и операционной безопасности Каждый запрос обёрнут в настраиваемые слои операционной безопасности. - Встроенная интеграция с **TOR** (`socks5://`) - Ротация цепочек **SOCKS5/HTTP-прокси** - Динамическая ротация **отпечатков User-Agent** - Управление **конкурентностью** и задержками запросов на уровне модулей ### 📡 Пассивная разведка через Shodan Установите `SHODAN_API_KEY` в `.env`, чтобы обогащать каждое разведывательное сканирование пассивными данными Shodan — открытые порты, организация, провайдер и страна — **без отправки ни одного пакета к цели**. |
| ### 🔍 Модуль разведки --- Постройте полную карту поверхности атаки до отправки хотя бы одного запроса. - Пассивный перебор поддоменов через `crt.sh` - Активный перебор DNS (12+ распространённых префиксов) - Аудит DNS-записей: SPF, DMARC, AXFR-зонная передача - Анализ утечек email-адресов регистранта через WHOIS - **Пассивная разведка с помощью Shodan** (опционально) | ### 🌐 Аудит безопасности веб-приложений Глубокая оценка уровня безопасности веб-приложений. - Заголовки безопасности: CSP, HSTS, XFO, X-Content-Type - Флаги cookies: `Secure`, `HttpOnly`, `SameSite` - Поиск чувствительных путей: `.env`, `.git`, административные порталы - TLS/SSL: версии протоколов, срок действия сертификатов |
| ### 🔌 Сетевая разведка Высокоскоростное настраиваемое сканирование портов с автоматической корреляцией угроз. - Интеграция с **Nmap** с профилями `light`, `normal`, `aggressive` - Турбо-обнаружение с помощью **RustScan** (асинхронный TCP) → передача данных Nmap для глубокого анализа - Определение версий сервисов и отпечатков ОС - Автоматическое сопоставление CVE через **API NIST NVD** (с ограничением по запросам, поддерживает API-ключ) | ### 📊 Отчётность и экспорт Создание отчётов уровня для руководства. - 🌑 **HTML-дашборд в тёмном режиме** с ранжированием уязвимостей по критичности - 📄 **Структурированный JSON** для конвейеров - 📋 **Экспорт в CSV** (`spaf export`) для готовых клиентских таблиц - 🔍 **Сравнение сканирований** (`spaf diff`) — визуальное сравнение любых двух сканов |
# Clone the repository
git clone https://github.com/geevarghesekthomas84-sys/spaf.git
cd spaf
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # Linux / macOS
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
pip install -e .
# Install shell tab-completion (optional but recommended)
spaf --install-completion
# Run the interactive setup wizard
spaf setup
Требования: Python 3.9+, Nmap, MongoDB (локальная или удалённая)
Опционально: RustScan для сверхбыстрого обнаружения портов Опционально: Shodan CLI (
pip install shodan) для пассивной разведки
Самый быстрый способ запуска — не требуется ручная настройка MongoDB или Python-окружения.
# 1. Start MongoDB + SPAF in one command
docker-compose up -d
# 2. Run any scan
docker-compose run spaf recon target.com
docker-compose run spaf scan target.com --scanner rustscan --ports 1-65535
# 3. Drop into interactive AI shell
docker-compose run spaf shell
# Override the entire command
docker-compose run spaf export target.com --format csv
Примечание:
docker-compose.ymlиспользуетnetwork_mode: host, чтобы Nmap/RustScan могли взаимодействовать с реальными целями. Файл.envавтоматически монтируется из корня проекта — добавьте туда свои API-ключи.
Скопируйте .env.example в .env и настройте провайдеров:
# ─── AI Provider (choose one) ────────────────────────────────────
AI_PROVIDER=google # google | claude | ollama | lmstudio
# Remote providers
GOOGLE_API_KEY=your_key
ANTHROPIC_API_KEY=your_key
# Model overrides (optional — defaults shown)
GOOGLE_MODEL=gemini-2.0-flash
ANTHROPIC_MODEL=claude-3-5-sonnet-20241022
# Local providers
OLLAMA_URL=http://localhost:11434/v1
OLLAMA_MODEL=llama3.2 # optional, auto-detected
LM_STUDIO_URL=http://localhost:1234/v1
LM_STUDIO_MODEL=your-model # optional, auto-detected from loaded model
# ─── APIs ────────────────────────────────────────────────────────
NIST_API_KEY=your_key # free: https://nvd.nist.gov/developers/request-an-api-key
SHODAN_API_KEY=your_key # free: https://account.shodan.io/register
# ─── Stealth / OpsSec ────────────────────────────────────────────
USE_TOR=false
PROXY_FILE=./proxies.txt
RANDOM_USER_AGENT=true
# ─── Database ────────────────────────────────────────────────────
SPAF_MONGO_URI=mongodb://localhost:27017
📖 Полный справочник команд со всеми флагами и примерами → COMMANDS.md
# ─── Reconnaissance ──────────────────────────────────────────────
spaf recon target.com # Recon + AI + Shodan (if key set)
spaf recon target.com --passive --no-ai # Passive OSINT only
# ─── Network Scanning ────────────────────────────────────────────
spaf scan target.com # Nmap + AI analysis
spaf scan target.com --scanner rustscan --ports 1-65535 # RustScan → Nmap
spaf scan target.com --intensity aggressive # Deep scan (-sV -sC -O -A)
# ─── Web Security ────────────────────────────────────────────────
spaf webscan https://target.com # Full web audit + AI
spaf crawl https://target.com --depth 3 # Spider + AI
# ─── AI Provider Shortcuts (all context-safe) ────────────────────
spaf test-ai # Health check + status table
spaf chat "How do I bypass a WAF?" # Configured provider
spaf gemini "Explain CVE-2024-1234" # Google Gemini
spaf claude "Write an Ansible remediation task" # Anthropic Claude
spaf ollama "List SMB exploitation paths" # Ollama — live streaming
spaf lmstudio "Analyze these HTTP headers" # LM Studio — live streaming
# ─── AI Analysis on past scans ───────────────────────────────────
spaf ai <scan_id> # Re-analyze (no re-scan)
spaf ai <scan_id> --provider ollama # Use Ollama for this run
# ─── Exploit & Remediation ───────────────────────────────────────
spaf poc <finding_id> # Generate Python exploit script
spaf poc <finding_id> --output exploit.py
spaf remediate <finding_id> --format ansible # Fix code (ansible/terraform/bash)
# ─── Operations ──────────────────────────────────────────────────
spaf export target.com --format csv # Export findings to CSV
spaf export target.com --format json # Export findings to JSON
spaf diff <scan_id_1> <scan_id_2> # Compare two scans
spaf scope show # View engagement scope
spaf scope add target.com # Add to scope
spaf scope remove target.com # Remove from scope
spaf watch target.com --interval 3600 --module webscan # 24/7 monitoring
spaf report target.com --format html # Premium HTML report
spaf history # Past scan records
spaf shell # Interactive AI shell
spaf update # Update SPAF to latest
| Провайдер | Тип | Модель | Конфиденциальность | Потоковая передача | Лучше всего для |
|---|---|---|---|---|---|
| Google Gemini | ☁️ Удалённый | gemini-2.0-flash |
Низкая | ❌ | Самый быстрый, большой контекст |
| Anthropic Claude | ☁️ Удалённый | claude-3-5-sonnet-20241022 |
Низкая | ❌ | Написание отчётов, рекомендации по исправлению |
| Ollama | 💻 Локальный | Автоопределение | ✅ Высокая | ✅ В реальном времени | Работа в изолированной сети, неограниченное использование |
| LM Studio | 💻 Локальный | Автоопределение | ✅ Высокая | ✅ В реальном времени | Приватность, данные не покидают хост |
# 1. Install Ollama → https://ollama.com
# 2. Pull a model
ollama pull llama3.2
ollama pull qwen2.5-coder # great for exploit/remediation code
# 3. Set in .env
AI_PROVIDER=ollama
OLLAMA_URL=http://localhost:11434/v1 # default, change if remote
OLLAMA_MODEL=llama3.2 # optional — auto-detected if not set
# 4. Test connection
spaf test-ai
# 5. Use shortcut (tokens stream in real-time)
spaf ollama "List exploitation paths for open SMB ports"
# 1. Download LM Studio → https://lmstudio.ai
# 2. Load any GGUF model in the app
# 3. Go to: Local Server tab → Start Server
# 4. Set in .env
AI_PROVIDER=lmstudio
LM_STUDIO_URL=http://localhost:1234/v1 # default
LM_STUDIO_MODEL=your-model-name # optional — auto-detected from loaded model
# 5. Test connection
spaf test-ai
# 6. Use shortcut (tokens stream in real-time)
spaf lmstudio "Analyze these HTTP headers for security risks"
Все варианты названий ИИ принимаются:
lmstudio,lm-studio,lm_studio— всё работает как значенияAI_PROVIDER.
Обогащайте каждый скан spaf recon пассивной разведкой Shodan — открытые порты, организация, провайдер, страна — без отправки пакетов к цели.
# 1. Get a free API key → https://account.shodan.io/register
# 2. Add to .env
SHODAN_API_KEY=your_api_key
# 3. Install the Shodan library
pip install shodan
# 4. Run recon — Shodan data is fetched automatically
spaf recon target.com
# View scan history to get IDs
spaf history
# Compare two scans — see what's new, fixed, or unchanged
spaf diff <older_scan_id> <newer_scan_id>
# Export all findings for a target to CSV (for clients)
spaf export target.com --format csv
spaf export target.com --format json --output /tmp/findings.json
# Initialise scope (creates scope.json in current directory)
spaf scope add target.com
spaf scope add 10.0.0.0/24
# View current scope
spaf scope show
# Remove a target
spaf scope remove 10.0.0.0/24
# Use a custom scope file
spaf scope show --file engagement_scope.json
spaf/
├── spaf/
│ ├── cli/ # Typer CLI — all commands
│ ├── core/ # Async engine & BaseModule
│ ├── modules/ # recon, network, webscan, crawler
│ ├── utils/ # AI orchestrator, proxy, risk, validator, logger
│ ├── database/ # MongoDB async driver (Motor) with full indexes
│ └── reports/ # HTML & JSON report generator
├── tests/ # Pytest test suite
├── plugins/ # Drop-in custom scan modules
├── Dockerfile # Python 3.12-slim + nmap
├── docker-compose.yml # MongoDB 7 + SPAF with healthcheck
├── scope.json # Engagement scope (auto-created)
├── COMMANDS.md # Full command reference
└── .env.example # Configuration template
| Переменная | Описание |
|---|---|
USE_TOR=true |
Маршрутизация всех запросов через TOR (socks5://127.0.0.1:9050) |
PROXY_FILE=./proxies.txt |
Файл с цепочкой ротирующихся SOCKS5/HTTP-прокси |
RANDOM_USER_AGENT=true |
Случайный User-Agent для каждого запроса |
NIST_API_KEY=<ключ> |
API-ключ NIST NVD (увеличивает лимит запросов CVE в 10 раз — бесплатная регистрация) |
SHODAN_API_KEY=<ключ> |
Пассивная разведка Shodan в режиме recon (доступен бесплатный тариф) |
Данный инструмент предназначен исключительно для авторизованного тестирования безопасности, исследований и образовательных целей. Разработчик не несёт ответственности за любое неправомерное использование или причинённый ущерб. Всегда получайте письменное разрешение от владельца целевой системы перед проведением любых тестов на безопасность.
Создано с 🔥 geevarghesekthomas84-sys
⭐ Если SPAF оказался полезен, пожалуйста, поставьте звёздочку репозиторию — это очень помогает!