fcarvajalbrown/port-scanner
GitHub: fcarvajalbrown/port-scanner
基于 Python 标准库的轻量级端口扫描与资产探测工具,支持 DNS 解析、开放端口发现和服务 Banner 提取。
Stars: 0 | Forks: 0
# 端口扫描器
基础设施侦查工具 —— 通过 DNS 解析域名并扫描开放端口。
## 安装说明
1. 克隆仓库:
```
git clone https://github.com/yourusername/port-scanner.git
cd port-scanner
```
2. 安装依赖(无需安装,仅使用 Python stdlib):
```
python --version # requires 3.8+
```
3. 将您的公司域名添加到 `config/domains.json`:
```
{
"domains": [
{ "id": "main", "host": "yourcompany.com" },
{ "id": "api", "host": "api.yourcompany.com" }
]
}
```
## 使用方法
从项目根目录 (`port-scanner/`) 运行:
```
# 扫描最常用的前 100 个端口(更快,推荐首次运行)
python -m src.main --top100
# 扫描完整端口范围 1-65535(较慢,详尽)
python -m src.main --full
```
## 输出
- **终端** — 实时 DNS 解析,带有风险标签的开放端口发现,extractor 结果
- **`reports/results.json`** — 每次扫描后生成的结构化 JSON
## 配置
**`config/settings.ini`** — 调整性能:
```
[Scanner]
timeout_seconds = 1 # lower = faster but more misses
max_threads = 100 # concurrent threads per target
```
## 提取器
如果发现 MySQL (3306)、PostgreSQL (5432) 或 FTP (21) 处于开放状态,该工具会自动:
- 连接并读取服务 Banner
- 报告版本信息或认证要求
- 将匿名 FTP 访问标记为 CRITICAL
结果会在扫描摘要后追加到终端输出中。
## 风险标签
| 标签 | 含义 |
|----------|--------------------------------------|
| CRITICAL | 默认无认证暴露 |
| HIGH | 数据库或远程访问服务 |
| LOW | 通常安全但值得关注 |
## 文件结构
```
port-scanner/
├── README.md
├── config/
│ ├── domains.json
│ └── settings.ini
├── reports/
│ └── results.json
├── src/
│ ├── __init__.py
│ ├── main.py
│ └── utils/
│ ├── __init__.py
│ ├── scanner.py
│ └── extractors/
│ ├── __init__.py
│ ├── router.py
│ ├── mysql.py
│ ├── postgres.py
│ └── ftp.py
└── tests/
├── __init__.py
└── test_scanner.py
```
## 运行测试
```
python -m pytest tests/
```
标签:AES-256, Banner抓取, DNS解析, ESC4, GitHub, Homebrew安装, OSINT, Python, Qt框架, 域名的IP解析, 基础设施侦察, 威胁建模, 密码管理, 开源项目, 插件系统, 数据统计, 无后门, 服务器安全, 服务识别, 漏洞评估, 端口扫描, 端口服务检测, 网络安全, 网络扫描器, 逆向工具, 隐私保护