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, 云存储安全, 子域名侦测, 恶意代码分类, 插件系统, 数据统计, 无后门, 测试用例, 端口扫描, 网络安全, 网络扫描, 网络调试, 自动化, 逆向工具, 隐私保护