Skip to content

该脚本是一款专为靶场渗透测试设计的自动化 Nmap 扫描工具,能够高效地进行端口枚举、服务版本检测、操作系统识别、漏洞扫描等安全评估任务。

License

Notifications You must be signed in to change notification settings

Yanxinwu946/xnmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Xnmap:自动化 Nmap 安全扫描脚本

Author

Xnmap 是一款强大且高效的 Bash 脚本,专为自动化 Nmap 扫描而设计,能够执行主机发现、端口枚举、服务版本检测、操作系统识别、漏洞扫描以及 HTTP 目录扫描等关键安全评估任务。其开发灵感来源于个人打靶机实战经验,旨在提升渗透测试效率,并为通过 OSCP 认证考试提供便利。

功能特点

  • 主机发现:通过 nmap -sn 快速扫描子网,识别存活主机。
  • 多模式支持
    • 单 IP 扫描:针对单一目标执行全面的安全扫描。
    • 列表扫描:从文件中读取 IP 列表进行批量扫描。
    • 子网扫描:自动发现并允许用户选择扫描子网中的存活主机。
  • 两种扫描级别
    • 完整扫描 (Full Scan):执行全端口扫描、服务版本和操作系统检测、常见端口漏洞扫描以及 HTTP 目录扫描。
    • 轻量级扫描 (Lightweight Scan):仅执行全端口扫描,速度更快。
  • 慢速模式 (Slow Mode):可选的慢速扫描模式,降低扫描速率以避免触发速率限制或干扰目标系统。
  • 全端口扫描:快速识别目标主机的所有开放端口。
  • 服务版本检测:获取运行在开放端口上的服务版本信息。
  • 操作系统识别:尝试识别目标主机的操作系统。
  • UDP 端口扫描:检测目标主机的前 20 个常见 UDP 端口。
  • 漏洞扫描:利用 Nmap 内置的 vuln 脚本检测已知漏洞(仅在完整扫描模式下对常见端口进行)。
  • HTTP 目录扫描:使用 Gobuster 对检测到的 HTTP 服务进行常见目录和文件扫描(仅在完整扫描模式下)。
  • 彩色输出:通过 grc 为输出添加颜色高亮,提升可读性。
  • 自动输出结果:扫描结果按目标 IP 保存在独立目录(如 enum_<IP>),便于分析。
  • 工具可用性检查:自动检查 nmapgobuster 是否已安装,增加容错。
  • Ctrl+C 捕获:优雅地处理 Ctrl+C 中断信号,退出时清理临时文件。

安装指南

依赖项

本脚本依赖以下工具,请确保它们已正确安装:

  • nmap(端口扫描工具,必需)
  • gobuster(Web 目录和文件爆破工具,完整扫描模式需要)
  • grc(使 Nmap 和 Gobuster 输出变得多彩 🥰,可选)
  • seclists(用于 HTTP 目录扫描的字典,完整扫描模式需要)

在 Debian/Ubuntu 上安装:

sudo apt update && sudo apt install -y nmap gobuster grc seclists

复制脚本

chmod +x <脚本名称>.sh
sudo mv <脚本名称>.sh /usr/local/bin/xnmap

使用方法

xnmap [选项]

选项

  • -i <IP>:扫描单个 IP。
  • -f <file>:从文件读取 IP 列表。
  • -s <subnet>:扫描子网。
  • -l:轻量级扫描 (仅端口)。
  • -m:慢速模式。
  • -h:显示帮助。

示例

  • xnmap -i 192.168.1.100
  • xnmap -f targets.txt -l
  • xnmap -s 192.168.0.0/24 -m

结果输出

所有扫描结果将保存在以目标 IP 命名的目录下(如 enum_192_168_56_10/),包括:

  • ports:全端口扫描结果。
  • detail.nmap:详细服务版本和操作系统识别信息。
  • udp.nmap:UDP 端口扫描结果。
  • vuln.nmap:漏洞扫描结果(仅在完整扫描模式下,且发现常见开放端口时生成)。
  • godir<端口号>.txt:Gobuster 在 HTTP 服务端口上发现的目录和文件(仅在完整扫描模式下,且发现 HTTP 服务时生成)。

工作流程

  1. 工具检查:脚本启动时会检查 nmapgobuster 是否已安装。
  2. 参数解析:解析用户提供的命令行参数。
  3. 主机发现(仅子网模式):
    nmap -sn --min-rate 1000 <subnet> -oG -
    输出解析后提取存活主机的 IP,并允许用户选择要扫描的目标。
  4. 选择扫描函数:根据 -l 参数选择执行 lightweight_scanfull_scan 函数。
  5. 执行扫描
    • 轻量级扫描:执行全端口扫描。
    • 完整扫描
      • 执行全端口扫描。
      • 解析开放端口。
      • 执行服务版本和操作系统检测。
      • 执行 UDP 端口扫描(前 20 端口)。
      • 对常见开放端口执行漏洞扫描。
      • 对检测到的 HTTP 服务端口执行 Gobuster 目录扫描。

注意事项

  • 合法性:请确保在合法授权的情况下使用本脚本,避免对未授权目标进行扫描。
  • 权限:运行脚本时建议使用 sudo,因为某些 nmap 扫描(如 UDP 或低端口扫描)可能需要 root 权限。
  • 防火墙:部分扫描(如 vuln 或 UDP)可能被防火墙拦截,或对目标系统造成影响,请谨慎使用。
  • 资源消耗:全端口扫描和漏洞扫描可能会消耗较多系统资源和网络带宽。
  • 依赖检查:若缺少 grcseclists,脚本仍可运行,但相关功能(彩色输出、HTTP 目录扫描)将受限。

许可证

本项目基于 MIT 许可证开源,欢迎 Fork 和贡献改进!

About

该脚本是一款专为靶场渗透测试设计的自动化 Nmap 扫描工具,能够高效地进行端口枚举、服务版本检测、操作系统识别、漏洞扫描等安全评估任务。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages