SPAF

Exploitation активный

AI-фреймворк наступательной безопасности, автоматизирующий разведку, сопоставление CVE и генерацию proof-of-concept эксплойтов с использованием различных LLM-провайдеров.


Установка
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
показать оригинал переведено ИИ
███████╗██████╗  █████╗ ███████╗
██╔════╝██╔══██╗██╔══██╗██╔════╝
███████╗██████╔╝███████║█████╗
╚════██║██╔═══╝ ██╔══██║██╔══╝
███████║██║     ██║  ██║██║
╚══════╝╚═╝     ╚═╝  ╚═╝╚═╝

Интеллектуальная платформа автоматизации пентестинга

Сканирование. Анализ. Эксплуатация. Устранение — автоматически.


Лицензия: MIT Python Асинхронность MongoDB Docker Звёзды


— Поставщики ИИ —

Gemini Claude Ollama LM Studio Shodan


📌 Что такое SPAF?

SPAF — это профессиональный асинхронный фреймворк для наступательной безопасности, выступающий в роли ИИ-оснащённого мозга команды Red Team. Он выходит за рамки традиционных сканеров, автоматически преобразуя данные об уязвимостях в оружизированный разведывательный потенциал для атак.

  • 🎯 Запуск многовекторных сканирований против любой цели
  • 🧠 Анализ угроз с помощью ИИ выполняется автоматически после каждого сканирования (Google, Claude, Ollama, LM Studio)
  • 🚀 Автоматическая генерация скриптов эксплуатации на Python (Proof-of-Concept)
  • 🛠️ Получение готового к внедрению кода для устранения уязвимостей на Ansible, Terraform или Bash
  • 🕵️ Работа с полной анонимностью через TOR, ротацию прокси и рандомизацию отпечатков
  • ⏱️ Круглосуточный теневой мониторинг с интеллектуальными оповещениями
  • 📡 Пассивная разведка через Shodan — открытые порты и информация об организации без взаимодействия с целью
  • 📊 Экспорт результатов в CSV/JSON для отчётности клиентам
  • 🔍 Сравнение двух сканирований — мгновенное выявление изменений (новые/исправленные/неизменные)
  • 🐳 Готовность к Docker — развёртывание полного стека одной командой

✨ Основные возможности

### 🧠 Набор ИИ-интеллекта Подключение к любой ведущей модели ИИ для анализа уровня 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) для пассивной разведки


🐳 Развёртывание через Docker

Самый быстрый способ запуска — не требуется ручная настройка 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 💻 Локальный Автоопределение ✅ Высокая ✅ В реальном времени Приватность, данные не покидают хост

Настройка Ollama

# 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"

Настройка LM Studio

# 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.


📡 Интеграция с Shodan

Обогащайте каждый скан 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

🔒 Скрытность и OpsSec

Переменная Описание
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 оказался полезен, пожалуйста, поставьте звёздочку репозиторию — это очень помогает!

Войдите, чтобы оставить комментарий