kali之nmap
Nmap(Network Mapper)是 Kali Linux 中最著名的网络扫描工具之一,广泛用于网络发现、端口扫描、服务识别、操作系统检测等任务。它是一个功能强大且灵活的开源工具,适用于渗透测试、网络管理和安全审计。
1. Nmap 的主要功能
- 主机发现:检测网络中的活动主机。
- 端口扫描:识别目标主机上开放的端口。
- 服务识别:检测端口上运行的服务及其版本。
- 操作系统检测:推测目标主机的操作系统类型。
- 脚本扫描:使用 Nmap 脚本引擎(NSE)进行高级检测和漏洞扫描。
- 输出结果:支持多种格式的输出(如文本、XML、Grepable 等)。
2. Nmap 的安装
在 Kali Linux 中,Nmap 通常已经预装。如果没有安装,可以使用以下命令安装:
sudo apt update
sudo apt install nmap
3. Nmap 的基本用法
语法
nmap [扫描类型] [选项] <目标>
常用选项
选项 | 描述 |
---|---|
-sP | Ping 扫描(主机发现)。 |
-sS | TCP SYN 扫描(半开放扫描)。 |
-sT | TCP 连接扫描。 |
-sU | UDP 扫描。 |
-sV | 服务版本检测。 |
-O | 操作系统检测。 |
-p <端口范围> | 指定扫描的端口范围(如 -p 1-1000 或 -p 22,80,443 )。 |
-A | 启用操作系统检测、版本检测、脚本扫描和路由跟踪。 |
-T<0-5> | 设置扫描速度(0:最慢,5:最快)。 |
-oN <文件> | 将结果输出为普通文本文件。 |
-oX <文件> | 将结果输出为 XML 文件。 |
--script <脚本> | 运行指定的 Nmap 脚本。 |
4. Nmap 的使用示例
示例 1:Ping 扫描(主机发现)
扫描目标网络中的活动主机:
sudo nmap -sP 192.168.1.0/24
输出示例:
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-01 12:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.100
Host is up (0.0020s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.50 seconds
示例 2:TCP SYN 扫描
扫描目标主机的开放端口:
sudo nmap -sS 192.168.1.100
输出示例:
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-01 12:00 UTC
Nmap scan report for 192.168.1.100
Host is up (0.0010s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
示例 3:服务版本检测
检测目标主机上运行的服务及其版本:
sudo nmap -sV 192.168.1.100
输出示例:
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-01 12:00 UTC
Nmap scan report for 192.168.1.100
Host is up (0.0010s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 (Ubuntu)
80/tcp open http Apache httpd 2.4.41
443/tcp open ssl/http Apache httpd 2.4.41
示例 4:操作系统检测
推测目标主机的操作系统:
sudo nmap -O 192.168.1.100
输出示例:
Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-01 12:00 UTC
Nmap scan report for 192.168.1.100
Host is up (0.0010s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
MAC Address: 00:11:22:33:44:55 (Vendor)
Device type: general purpose
Running: Linux 3.X|4.X
OS details: Linux 3.2 - 4.9
示例 5:使用 Nmap 脚本
运行 Nmap 脚本(如检测 SMB 漏洞):
sudo nmap --script smb-vuln-ms17-010 192.168.1.100
示例 6:扫描特定端口
扫描目标主机的特定端口(如 22、80、443):
sudo nmap -p 22,80,443 192.168.1.100
示例 7:全面扫描
启用操作系统检测、版本检测、脚本扫描和路由跟踪:
sudo nmap -A 192.168.1.100
5. Nmap 脚本引擎(NSE)
Nmap 脚本引擎(NSE)是 Nmap 的强大扩展功能,允许用户运行预定义或自定义的脚本来执行高级任务,例如:
- 漏洞检测
- 服务枚举
- 后门检测
- 网络发现
常用脚本类别:
vuln
:漏洞检测。discovery
:网络发现。brute
:暴力破解。auth
:身份验证检测。
示例:运行所有 vuln
类脚本:
sudo nmap --script vuln 192.168.1.100
6. Nmap 的输出格式
Nmap 支持多种输出格式,便于结果分析和报告生成:
- 普通文本:
-oN <文件>
- XML 格式:
-oX <文件>
- Grepable 格式:
-oG <文件>
- 所有格式:
-oA <前缀>
示例:将扫描结果保存为 XML 文件:
sudo nmap -oX scan_results.xml 192.168.1.100
7. Nmap 的优势
- 功能全面:支持多种扫描技术和功能。
- 高度可定制:通过选项和脚本满足不同需求。
- 跨平台:支持 Windows、Linux、macOS 等操作系统。
- 社区支持:拥有活跃的社区和丰富的文档资源。
8. 注意事项
- 合法使用:仅在授权范围内使用 Nmap。
- 扫描速度:根据网络环境调整扫描速度(
-T
选项)。 - 隐蔽性:某些扫描类型(如 SYN 扫描)可能触发防火墙或 IDS 警报。
Nmap 是网络扫描和渗透测试中不可或缺的工具,熟练掌握其使用方法可以极大地提高工作效率。