Khanu123/nmap-port-scanner
GitHub: Khanu123/nmap-port-scanner
一个 Python 编写的 Nmap 封装工具,用于在授权环境中执行端口扫描和服务发现,并自动生成 JSON 与 Markdown 格式的报告。
Stars: 0 | Forks: 0
# Nmap 端口扫描器
一个用于授权主机发现、服务检测和简单报告生成的 Python Nmap 命令行封装工具。
## 概述
该项目通过 Python 运行 Nmap 扫描,在终端中展示扫描结果,并将结果导出为 JSON 和 Markdown。它旨在用于在受控且基于许可的环境中学习网络侦察。
## 功能
- 从命令行接收目标主机。
- 支持自定义 Nmap 扫描参数。
- 在允许的情况下运行服务/版本检测。
- 将扫描结果导出到 `reports/`。
- 生成 JSON 和 Markdown 输出,便于查看。
## 环境要求
- Python 3.9+
- 已安装 Nmap 并可在 PATH 中使用
- `python-nmap`
检查是否已安装 Nmap:
```
nmap --version
```
安装 Python 依赖项:
```
pip install -r requirements.txt
```
## 使用说明
基本扫描:
```
python port_scanner.py scanme.nmap.org
```
带服务检测的前 100 个端口扫描:
```
python port_scanner.py scanme.nmap.org --args "-sS -sV --top-ports 100"
```
## 输出
报告保存在:
```
reports/
```
## 负责任的使用
仅扫描您拥有或获得明确授权评估的系统。未经授权的扫描可能会造成破坏,并可能违反政策或法律。
## 作品集说明
本仓库展示了围绕行业标准安全工具的 Python 自动化能力。下一步的最佳改进方向包括输入验证、更安全的默认扫描配置,以及针对报告生成的测试。
## 当前代码改进
- 添加了目标验证,以拒绝 shell 样式的字符。
- 为报告添加了自动创建输出目录的功能。
- 精简了 Markdown 报告的免责声明文本。
- 添加了针对目标验证的单元测试。
## 测试
```
python -m unittest discover -v
```
## 雇主评审
| 领域 | 证据 |
| --- | --- |
| 岗位相关性 | 初级渗透测试员 / 网络安全分析师 / 网络安全 |
| 主要安全经验 | 侦察输出应当是可控、有记录的,并能转化为有用的报告 |
| 防御价值 | 展示了对 Nmap 的熟悉程度、CLI 自动化、服务发现以及报告生成能力 |
| 安全范围 | 仅限授权扫描;默认使用时应针对自有的实验室或获得许可的系统 |
## 专业化加固建议
- 添加严格的目标验证,并在扫描运行前给出明确的警告。
- 添加安全的扫描配置,例如 `quick`、`service-detect` 和 `full-authorized`。
- 为无法访问的主机添加超时和错误处理。
- 为报告格式化和参数解析添加单元测试。
- 添加示例报告,展示如何向利益相关者解释扫描结果。
## 面试讨论点
- 发现扫描、服务检测和激进扫描之间的区别。
- 为什么在运行 Nmap 之前,权限和范围至关重要。
- 扫描结果如何转化为修复优先级。
- Python 如何将原始命令行输出转化为可重复生成的报告。
标签:CTI, Nmap, Python, 云存储安全, 插件系统, 无后门, 网络扫描, 虚拟驱动器, 逆向工具