Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ AutoSecAudit

Комплексный инструмент для автоматизированного аудита безопасности веб-приложений

AutoSecAudit — это модульный Python-инструмент для пассивного и активного анализа безопасности веб-сайтов. Инструмент обнаруживает распространенные уязвимости, ошибки конфигурации и утечки информации без агрессивного сканирования.


⚠️ Важное предупреждение

Используйте этот инструмент ТОЛЬКО на ресурсах, которыми вы владеете, или при наличии явного письменного разрешения от владельца.

Несанкционированное сканирование чужих ресурсов может нарушать законы и расцениваться как кибератака.


🚀 Возможности

Пассивный анализ (без взаимодействия с приложением)

Модуль Что проверяет Время
🔒 HTTP Заголовки HSTS, CSP, X-Frame-Options, X-Content-Type-Options ~1 сек
🔐 SSL/TLS Протоколы, сертификаты, срок действия ~2 сек
📧 DNS (Email) SPF, DMARC (защита от Email Spoofing) ~1 сек
🍪 Cookie Secure, HttpOnly, SameSite атрибуты ~1 сек
📂 Утечки файлов .git, .env, phpinfo.php, wp-config.php ~10 сек
🚪 Открытые порты 19 критических портов (Redis, MongoDB, SMB и др.) ~5 сек
📁 Открытые директории Directory Listing в 27 типах директорий ~15 сек
🛠️ Технологии CMS, фреймворки, серверы (WordPress, Nginx, PHP и др.) ~2 сек
🌐 CORS Wildcard, отражение Origin, null origin уязвимости ~3 сек
⚙️ HTTP методы TRACE, PUT, DELETE, XST-атаки ~5 сек
📜 Robots/Sitemap Скрытые пути в robots.txt и sitemap.xml ~10 сек

Активный анализ (опционально)

Модуль Что проверяет Время Флаг
🌍 Поддомены DNS-перебор 100 популярных поддоменов ~2 мин --subdomains
🔑 Дефолтные учётки Проверка 26 популярных пар логин/пароль ~5 мин --brute ⚠️

Отчёты

  • 📄 JSON — для машинной обработки и интеграции в CI/CD
  • 🎨 HTML — красивый дашборд с тёмной темой, графиками и детальной информацией

📦 Установка

Требования

  • Python 3.8+
  • pip

Установка зависимостей

# Клонируйте репозиторий
git clone https://github.com/yourusername/autosecaudit.git
cd autosecaudit

# Создайте виртуальное окружение (рекомендуется)
python -m venv venv
source venv/bin/activate  # Linux/Mac
# или
venv\Scripts\activate     # Windows

# Установите зависимости
pip install -r requirements.txt

requirements.txt

requests>=2.31.0
dnspython>=2.4.0
cryptography>=41.0.0
beautifulsoup4>=4.12.0
urllib3>=2.0.0

🎯 Использование

Базовый аудит (пассивный анализ)

python main.py https://example.com

Время: ~1 минута
Модулей: 11
Что проверяет: Заголовки, SSL, DNS, Cookie, утечки файлов, порты, директории, технологии, CORS, HTTP методы, robots/sitemap

С поиском поддоменов

python main.py https://example.com --subdomains

Время: ~3 минуты
Модулей: 12
Дополнительно: DNS-перебор 100 популярных поддоменов с wildcard-фильтрацией

Полный аудит (со всеми модулями)

python main.py https://example.com --subdomains --brute

Время: ~10 минут
Модулей: 13
Дополнительно: Проверка дефолтных учётных данных

⚠️ Флаг --brute выполняет активные действия! Используйте только на своих ресурсах.

Примеры

# Аудит своего сайта
python main.py https://mysite.com

# Аудит с поиском поддоменов
python main.py https://mysite.com --subdomains

# Полный аудит (только для своих!)
python main.py https://mysite.com --subdomains --brute

📊 Пример вывода

Консольный вывод

============================================================
[*] AutoSecAudit v3.0
[*] Цель: https://example.com
[*] Дата: 2026-07-27 14:30:52
============================================================

[ 1/11] 🔒 HTTP Заголовки...
[ 2/11] 🔐 SSL/TLS...
[ 3/11] 📧 DNS (Email)...
...

============================================================
[*] РЕЗУЛЬТАТЫ АУДИТА
============================================================

[!] 🔒 HTTP Заголовки:
    [HIGH] Заголовок отсутствует: Content-Security-Policy
    [MEDIUM] Заголовок отсутствует: X-Frame-Options

[!] 📂 Утечки файлов:
    [CRITICAL] .env файл доступен публично

[!] 🛠️ Технологии:
    [INFO] Обнаружена CMS: WordPress
    [INFO] Обнаружена технология: Nginx v1.24.0

============================================================
[*] СВОДКА:
    CRITICAL: 1
    HIGH: 3
    MEDIUM: 5
    LOW: 2
============================================================

[+] JSON отчёт: audit_report_example.com_20260727_143052.json
[+] HTML отчёт: audit_report_example.com_20260727_143052.html
[+] Откройте HTML в браузере 🌐

HTML отчёт

После запуска откройте .html файл в браузере и увидите:

  • 🛡️ Шапку с названием, целью и датой
  • 📊 Общую оценку безопасности (CRITICAL/HIGH/MEDIUM/LOW/PASS)
  • 📈 Сводку с графиками по уровням критичности
  • 🔍 Детальные результаты по каждому модулю с цветными бейджами

🏗️ Структура проекта

autosecaudit/
├── main.py                      # Точка входа, CLI, сборка отчёта
├── requirements.txt             # Зависимости
├── README.md                    # Этот файл
│
├── checks/                      # Модули проверок
│   ├── __init__.py
│   ├── headers.py               # HTTP заголовки безопасности
│   ├── ssl_tls.py               # SSL/TLS сертификаты
│   ├── dns_records.py           # SPF/DMARC записи
│   ├── cookies.py               # Безопасность Cookie
│   ├── exposed_files.py         # Поиск утечек (.git, .env)
│   ├── ports.py                 # Сканирование портов
│   ├── directory_listing.py     # Открытые директории
│   ├── tech_stack.py            # Определение технологий
│   ├── cors.py                  # Проверка CORS
│   ├── http_methods.py          # HTTP методы (TRACE, PUT)
│   ├── subdomains.py            # Поиск поддоменов
│   ├── robots_sitemap.py        # Парсинг robots.txt/sitemap.xml
│   └── default_creds.py         # Проверка дефолтных учёток ⚠️
│
└── reports/                     # Генерация отчётов
    ├── __init__.py
    └── html_report.py           # HTML дашборд

🔧 Расширение функционала

Добавление нового модуля

  1. Создайте файл в checks/your_check.py:
def check_your_feature(url: str) -> dict:
    results = {"status": "PASS", "findings": []}
    
    # Ваша логика проверки
    if problem_found:
        results["status"] = "FAIL"
        results["findings"].append({
            "issue": "Описание проблемы",
            "severity": "HIGH",  # CRITICAL/HIGH/MEDIUM/LOW/INFO
            "solution": "Как исправить"
        })
    
    return results
  1. Добавьте в main.py:
from checks.your_check import check_your_feature

modules = [
    # ... существующие модули
    ("🆕 Ваш модуль", check_your_feature, target_url),
]

🚧 Roadmap

v4.0 (планируется)

  • 📊 PDF-отчёты через weasyprint
  • 🐳 Dockerfile — запуск одной командой
  • 🔄 Diff-режим — сравнение двух сканов
  • 📧 Telegram/Email уведомления о критических находках
  • 🎯 Интеграция с Nuclei — тысячи CVE-шаблонов
  • 📈 База данных — хранение истории сканов
  • 🌐 Web-интерфейс на Flask/FastAPI

Идеи для будущих версий

  • Интеграция с OWASP ZAP для активного сканирования
  • Проверка на уязвимости в зависимостях (npm audit, safety)
  • Поиск утечек в GitHub (trufflehog)
  • Проверка на поддоменное захват (subdomain takeover)
  • Интеграция с Shodan/Censys для разведки

🤝 Вклад в проект

Pull requests приветствуются! Для крупных изменений сначала откройте issue, чтобы обсудить, что вы хотите изменить.


🙏 Благодарности

  • OWASP — за стандарты безопасности
  • Mozilla Observatory — за вдохновение
  • Nuclei — за отличные шаблоны

Happy Hacking! 🛡️

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages