F-L-git/automated-open-port-scanner

GitHub: F-L-git/automated-open-port-scanner

一个基于 Python 的自动化端口扫描与告警工具,结合 Masscan 与 Nmap 对网络边界进行分层扫描、服务识别与变更追踪,帮助安全团队及时发现未授权开放端口。

Stars: 2 | Forks: 0

# 自动化开放端口扫描器 我们将开发一个用于扫描受保护网络边界、分析服务并针对检测到的开放端口进行告警的解决方案。 该工具将基于 `Python` 构建,并集成 `Masscan`。 ## 解决方案架构 ``` ┌─────────────────────────────────────────────────────────────────┐ │ CLI / Конфигурационный файл │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Планировщик задач (Scheduler) │ │ • Периодический запуск (cron/таймер) │ │ • Обработка списка целей (CIDR/IP) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Уровень 1: Masscan (быстрое сканирование) │ │ • SYN-сканирование всех портов (1-65535) │ │ • Настраиваемая скорость (--rate) │ │ • Вывод в JSON │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Уровень 2: Nmap (детальный анализ) │ │ • Определение версий сервисов (-sV) │ │ • Обнаружение ОС (-O) │ │ • Сканирование только открытых портов │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Анализ и обогащение данных │ │ • Web-заголовки (requests) │ │ • SSL/TLS-сертификаты │ │ • SSH-аудит (paramiko) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Хранилище (SQLite / PostgreSQL) │ │ • История сканирований │ │ • Отслеживание изменений │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Модуль оповещений (Alerts) │ │ • Telegram / Email / Webhook / Slack │ │ • Обнаружение сервисов │ └─────────────────────────────────────────────────────────────────┘ ``` ## 项目结构 ``` port-scanner/ ├── src/ │ ├── __init__.py │ ├── scanner/ │ │ ├── __init__.py │ │ ├── masscan_wrapper.py # Обёртка для Masscan │ │ ├── nmap_wrapper.py # Обёртка для Nmap │ │ └── engine.py # Основной движок сканирования │ ├── analyzer/ │ │ ├── __init__.py │ │ ├── service_detector.py # Детектор сервисов │ │ ├── web_analyzer.py # Анализ веб-сервисов │ │ └── ssl_analyzer.py # Анализ SSL/TLS │ ├── storage/ │ │ ├── __init__.py │ │ ├── database.py # Работа с БД │ │ └── models.py # Модели данных │ ├── notifier/ │ │ ├── __init__.py │ │ ├── telegram.py │ │ ├── email.py │ │ └── webhook.py │ └── utils/ │ ├── __init__.py │ ├── config.py # Загрузка конфигурации │ └── logger.py # Логирование ├── config/ │ └── config.yaml # Конфигурационный файл ├── targets/ │ └── targets.txt # Список целей для сканирования ├── requirements.txt ├── main.py # Точка входа └── README.md ``` ## 安装与运行 1. 安装依赖 ``` # 安装 Masscan sudo apt-get update sudo apt-get install masscan # Ubuntu/Debian[reference:11] # 或 brew install masscan # macOS # 安装 Nmap sudo apt-get install nmap # 安装 Python 依赖 pip install -r requirements.txt ``` 2. requirements.txt 文件 ``` nmass>=0.2.0 requests>=2.28.0 pyyaml>=6.0 python-nmap>=0.7.0 paramiko>=3.0.0 ``` 3. 运行 ``` # 基本运行 python main.py --targets targets/targets.txt # 设置速度 python main.py --targets targets/targets.txt --rate 5000 --ports "1-1000" # 指定 config python main.py -c config/production.yaml -t targets/prod.txt ``` ## 核心特性 ``` +--------------------------------------------------------------------------------------+ | КЛЮЧЕВЫЕ ОСОБЕННОСТИ | +----------------------+---------------------------------------------------------------+ | Функция | Описание | +----------------------+---------------------------------------------------------------+ | Массовое сканирование| Поддержка CIDR-блоков и списков IP | | Двухуровневая | Masscan для скорости + Nmap для глубины | | архитектура | | | Обогащение данных | Определение версий, веб-заголовков, SSL-сертификатов | | История изменений | Отслеживание появления/исчезновения портов | | Мгновенные оповещения| Telegram, Webhook, Email | | Обнаружение | Автоматическое оповещение о Docker, Redis, MongoDB и др. | | сервисов | | | Многопоточность | Параллельное сканирование нескольких целей | +----------------------+---------------------------------------------------------------+ +--------------------------------------------------------------------------------------+ | БЕЗОПАСНОСТЬ И ОГРАНИЧЕНИЯ | +----------------------+---------------------------------------------------------------+ | Пункт | Описание | +----------------------+---------------------------------------------------------------+ | Права root | Masscan требует прав root для отправки сырых SYN-пакетов | | Осторожность | Высокие скорости могут вызвать срабатывание IDS | | Согласование | Сканирование только в рамках согласованного периметра | |Рекомендуемая скорость| 1000–3000 пакетов/сек для внутренних сетей | +----------------------+---------------------------------------------------------------+ ```
标签:CTI, Masscan, Python, SOC, 云存储安全, 子域名侦测, 恶意代码分类, 插件系统, 数据统计, 无后门, 测试用例, 端口扫描, 网络安全, 网络扫描, 网络调试, 自动化, 逆向工具, 隐私保护