Skip to content

集成资产定期监控功能的Nmap图形化扫描工具,让“扫描之王”Nmap使用更加简单。

License

Notifications You must be signed in to change notification settings

vam876/FastNmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastNmap - Nmap图形化扫描工具

FastNmap是一个强大、现代化的Nmap图形界面工具,为网络管理员和安全研究人员提供了友好的可视化界面,让“扫描之王”Nmap的功能变得简单易用,同时集成了高级功能,包括漏洞扫描、暴力破解、资产监控、资产对比与报告生成等。

Python PyQt5 License Platform Nmap

  • 最新版本: 0.2.0
  • 更新日期: 2025/09/12
主界面

✨ 核心特性

🔍 多样化扫描功能

  • 多种扫描类型: 默认扫描、存活检测、服务识别、系统识别、端口识别、暴力破解、漏洞扫描
  • 灵活的端口配置: 预定义端口组、自定义端口范围、智能端口选择
  • 高级扫描选项: 自定义时间控制、线程管理、超时设置、附加参数
  • 实时结果显示: 实时扫描进度显示和详细的 XML 输出解析
扫描

📊 资产监控系统

  • 持续监控: 为网络资产安排定期扫描任务
  • 变化检测: 自动检测新主机、服务和端口变化
  • 历史记录追踪: 维护扫描历史并支持对比功能
  • 智能警报: 突出显示扫描结果之间的差异
资产监控1 资产监控1 资产监控3

📈 报告与分析

  • HTML报告: 生成美观、交互式的 HTML 报告
  • 资产对比: 当前扫描与历史扫描的可视化对比
  • 趋势分析: 历史数据分析和趋势展示
  • 多种导出格式: 支持多种导出格式以便集成其他系统
报告1 报告2

🎨 现代化界面

  • 深色主题: 专业的深色界面配以科技感美学设计
  • 响应式设计: 适应不同窗口大小和分辨率
  • 标签页界面: 有组织的工作流程,为不同功能设置专用标签页
  • 实时更新: 实时进度指示和状态更新

🚀 快速开始

环境要求

  • Python 3 或更高版本
  • PyQt5 GUI框架
  • Nmap 网络扫描器(需要单独安装)

安装步骤

  1. 克隆仓库
git clone https://github.com/vam876/FastNmap.git
cd FastNmap
  1. 安装依赖
pip install -r requirements.txt
  1. 安装 Nmap

  2. 运行 FastNmap

python main.py

📋 使用指南

基础扫描

  1. 在目标输入框中输入 IP 地址、主机名或网络范围
  2. 从可用选项中选择扫描类型
  3. 配置端口(可选 - 使用智能默认值)
  4. 点击"开始"按钮开始扫描

资产监控

  1. 导航到"资产监控"标签页
  2. 添加要监控的目标
  3. 配置扫描间隔和参数
  4. 开始监控以进行持续的资产跟踪

资产对比

  1. 转到"资产对比"标签页
  2. 选择已监控的目标
  3. 查看详细对比和变化
  4. 生成报告用于文档记录

🔧 扫描类型详解

扫描类型 说明 使用场景
默认扫描 快速 SYN 扫描与服务检测 通用网络发现
服务识别 详细的服务版本检测 服务清单
系统识别 操作系统指纹识别 资产分类
端口识别 专注的端口扫描与服务信息 端口分析
暴力破解 自动化凭据测试 安全测试
漏洞扫描 已知漏洞检测 安全评估

特殊功能

端口识别的 IP:端口格式

端口识别支持 127.0.0.1:445 格式,系统会自动解析:

  • IP地址:用作扫描目标
  • 端口号:用作扫描端口
  • 示例:输入 192.168.1.100:80 将扫描 192.168.1.100 的 80 端口

⚙️ 系统配置

目录结构

FastNmap/                               # 项目根目录
├── src/                                # 源代码
│   ├── __init__.py
│   ├── core/                           # 核心业务模块
│   │   ├── __init__.py
│   │   ├── command_builder.py        # Nmap 命令构造器
│   │   ├── nmap_executor.py          # 扫描执行与调度
│   │   ├── nmap_parser.py            # XML 结果解析
│   │   ├── asset_monitor.py          # 资产持续监控
│   │   ├── html_report.py            # HTML 报告生成
│   │   └── vuln_scanner.py           # 漏洞检测封装
│   ├── gui/                            # 图形界面
│   │   ├── __init__.py
│   │   ├── main_window.py              # 主窗口
│   │   ├── tabs/                       # 各功能页
│   │   │   ├── __init__.py
│   │   │   ├── scan_tab.py
│   │   │   ├── monitor_tab.py
│   │   │   └── compare_tab.py
│   │   └── widgets/                    # 复用组件
│   │       ├── __init__.py
│   │       ├── console.py
│   │       └── progress.py
│   ├── utils/                          # 工具集
│   │   ├── __init__.py
│   │   ├── constants.py               # 端口组、默认参数
│   │   └── logger.py                  # 日志封装
│   ├── config/                         # 配置文件(预留)
│   │   ├── __init__.py
│   │   └── settings.yaml
│   └── data/                           # 运行时数据(预留)
│       └── .gitkeep
├── assets/                             # 静态资源
│   ├── icons/                          # 界面图标
│   ├── dict/                           # 暴力破解字典
│   │   ├── ssh_user.txt
│   │   ├── ssh_pass.txt
│   │   ├── ftp_user.txt
│   │   └── ftp_pass.txt
│   └── css/                            # HTML 报告样式
│       └── report.css
├── monitor_data/                       # 资产监控持久化
│   ├── .gitkeep
│   └── readme.md
├── logs/                               # 运行日志
│   ├── .gitkeep
│   └── readme.md
├── nmap/                               # 内置 nmap 二进制
│   ├── Win32/
│   │   └── nmap.exe                   # Windows 可执行
│   ├── Linux/
│   │   └── nmap                       # Linux 静态二进制
│   └── macOS/
│       └── nmap                       # macOS 可执行
├── tests/                              # 单元测试
│   ├── __init__.py
│   ├── test_command_builder.py
│   └── test_parser.py
├── docs/                               # 文档
│   ├── README_PACKAGING.md
│   └── BUILD.md
├── main.py                             # 程序入口
├── requirements.txt                    # Python 依赖
├── README.md                           # 项目说明
├── LICENSE                             # 许可
└── .gitignore                          # 规则

自定义配置

  • 端口组: 修改 src/utils/constants.py 自定义端口定义
  • 扫描模板: 调整 src/core/command_builder.py 自定义扫描配置
  • 界面主题: 在 GUI 组件中自定义样式

🛡️ 安全功能

内置安全工具

  • 基于字典的暴力破解: 内置常见服务的用户名密码字典
  • 漏洞检测: 集成 Nmap 漏洞检测脚本
  • 安全扫描: 可配置的时间和强度控制
  • 审计日志: 全面记录所有扫描活动

暴力破解支持的服务

  • 远程访问: SSH, Telnet, RDP, VNC, Radmin
  • 数据库: MySQL, MSSQL, Oracle, PostgreSQL, Redis
  • 文件服务: FTP, SMB
  • Web服务: HTTP Basic Auth(可扩展)

📊 监控与报告

资产监控功能

  • 自定义间隔扫描(分钟到小时)
  • 网络拓扑变化跟踪
  • 服务可用性和变化监控
  • 历史数据保留和分析

报告特性

  • 带有嵌入式 CSS 和 JavaScript 的 HTML 报告
  • 显示前后状态对比的比较视图
  • 详细的端口和服务变化跟踪
  • 外部系统导出功能

🔍 高级功能

命令行集成

FastNmap 构建优化的 Nmap 命令,具备:

  • 自动参数去重
  • 智能时间调整
  • 平台特定优化
  • 错误处理和验证

性能优化

  • 多线程支持
  • 高效的 XML 解析
  • 智能缓存机制
  • 资源感知扫描

扩展性设计

  • 模块化架构,便于功能扩展
  • 插件化的扫描类型支持
  • 可配置的输出格式
  • API接口预留设计

🐛 故障排除

常见问题

无法找到nmap

程序启动后,将依下列优先级自动定位并调用 nmap,无需用户手动配置:

  1. 先检查程序目录下的相对路径
    Windows:{程序所在目录}\nmap\nmap.exe
    macOS / Linux:{程序所在目录}/nmap/nmap
    若该文件存在且具备可执行权限,则直接使用。

  2. 若未命中,则检索系统环境变量 PATH,调用 shutil.which('nmap') 获取已安装的 nmap 可执行路径。

  3. 如 PATH 中仍未找到,将依次扫描各平台常见安装目录:
    Windows:

    • C:\Program Files (x86)\Nmap\nmap.exe
    • C:\Program Files\Nmap\nmap.exe

    macOS:

    • /Applications/nmap.app/Contents/Resources/bin/nmap
    • /usr/local/bin/nmap
    • /opt/homebrew/bin/nmap
    • /usr/bin/nmap

    Linux:

    • /usr/bin/nmap
  4. 上述步骤皆未定位到有效 nmap 时,程序将回退至默认命令 nmap,并在后续执行中抛出明确错误提示,指引用户完成安装或手动指定路径。

程序无法启动

  • 确保安装了 Python3
  • 验证 PyQt5 安装:pip install PyQt5
  • 检查 main.py 文件是否完整

找不到 Nmap

  • 验证 Nmap 安装
  • 检查 PATH 环境变量
  • 如有需要,在配置中使用完整路径

权限错误

  • 网络扫描需要适当的权限运行
  • 某些扫描类型需要管理员/root权限
  • Windows 用户可能需要"以管理员身份运行"

扫描结果异常

  • 检查目标地址格式
  • 验证网络连接
  • 查看扫描日志获取详细信息

性能优化建议

提升扫描速度

  • 调整线程并发数
  • 使用快速模式进行初步扫描
  • 针对性选择端口范围

减少资源占用

  • 合理设置扫描间隔
  • 定期清理历史数据
  • 监控系统资源使用情况

🤝 贡献指南

开发环境搭建

  1. Fork 本仓库
  2. 创建功能分支
  3. 进行代码修改
  4. 添加测试(如适用)
  5. 提交 Pull Request

📄 许可证

本项目使用 MIT 许可证 - 详情请参阅 LICENSE 文件。

🙏 致谢

  • Nmap - 强大的网络扫描器,本工具的核心引擎
  • PyQt5 - 优秀的 GUI 框架
  • 网络安全社区的反馈和建议
  • 所有贡献者和用户的支持

📞 支持与联系

  • GitHub Issues: 报告 Bug 和请求新功能

🔗 相关链接


⚠️ 法律声明: 此工具仅用于授权的安全测试和网络管理。用户有责任遵守适用的法律法规。未经授权的网络扫描可能违法,请确保在合法授权的范围内使用本工具。

🌟 如果本项目对您有帮助,请给我们一个 Star!

About

集成资产定期监控功能的Nmap图形化扫描工具,让“扫描之王”Nmap使用更加简单。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages