Nmap 工具简单使用
在 22 年的时候,写过一版 Nmap 工具的使用。
这几天翻到了那篇笔记,看着惨不忍睹,决定翻新一下。
现在 Nmap 在攻防的使用频率明显下降,出现了很多替换品,但作为新手入门工具还是很有必要了解的。
参考文章:
1 Nmap 介绍
Nmap(Network Mapper)是一款用于网络探测和安全评估的开源工具。
它设计用于扫描大型网络中的主机,并识别目标主机上运行的服务、操作系统类型以及开放的网络端口。
正如大多数被用于网络安全的工具 Nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具。
系统管理员可以利用 Nmap 来探测工作环境中未经批准使用的服务器,但是黑客会利用 Nmap 来搜集目标电脑的网络设定,从而计划攻击的方法。
Nmap 官网:https://nmap.org/
注:Nmap 的图形化工具是 Zenmap,但不常用,这里不做讲解。
以下是 Nmap 的一些主要功能和特点:
网络发现:Nmap 可以帮助您发现局域网或广域网上的活动主机。它使用 ICMP、ARP、TCP 和 UDP 等协议来探测网络上的主机,并提供有关每个主机的信息,如 IP 地址、MAC 地址和主机名等。
端口扫描:Nmap 可以扫描目标主机上的开放端口。它可以执行各种类型的端口扫描,包括 TCP 全连接扫描、TCP SYN 扫描、TCP ACK 扫描、UDP 扫描等。通过检查目标主机上的开放端口,可以确定可能存在的服务和应用程序。
服务识别:Nmap 可以通过分析目标主机上开放的端口和服务响应来识别正在运行的服务。它可以检测并报告目标主机上的各种服务,如 Web 服务器(如 Apache、Nginx)、邮件服务器(如 SMTP、POP 3)、数据库服务器(如 MySQL、PostgreSQL)等。
操作系统检测:Nmap 通过分析目标主机的网络响应和特征,Nmap 可以尝试识别目标主机所运行的操作系统。它使用一系列技术,如 TCP/IP 堆栈指纹、TCP 序列号分析和 IP ID 序列分析等,来推断操作系统类型和版本。
漏洞评估:Nmap 可以用于执行漏洞评估和漏洞扫描。它可以与漏洞扫描工具(如 Nessus)或脚本(如 Nmap 脚本引擎)结合使用,以检测目标主机上的已知漏洞或弱点。
脚本引擎:Nmap 具有一个强大的脚本引擎,称为 Nmap 脚本引擎(NSE)。它允许用户编写和执行自定义脚本,以执行各种网络扫描和安全评估任务。NSE 提供了大量的预定义脚本,可以用于执行常见的任务,如漏洞扫描、服务探测、操作系统检测等。
2 Nmap 安装
Windows 直接官网下载对应 exe 安装包即可:

Linux 使用软件包安装工具下载:
## RedHat 系
yum install -y nmap
## Debian 系
apt install -y nmap
注:Kali 系统已自带。
3 Nmap 参数详解
前情提要:
攻击机:Kali 2023.3 - 10.10.8.134
靶机:Window 7(MS 17-010)- 10.10.8.128
Nmap 命令结构如下:
nmap [Scan Type(s)] [Options] {target specification}
3.1 目标指定
除了选项所有出现在 Nmap 命令行上的都被视为对目标主机的说明,最简单的情况是指定一个目标 IP 地址或主机名,比如:
www.baidu.comnmap.org/24192.168.0.110.10.10.1-254
3.2 主机发现
3.3 扫描方法
3.4 端口指定&扫描顺序
3.5 服务/版本识别
3.6 脚本扫描
3.7 操作系统识别
3.8 时序&性能
3.9 防火墙/IDS 规避&欺骗
3.10 结果输出
3.11 杂项
4 Nmap 脚本使用
Nmap 官方脚本文档:https://nmap.org/nsedoc/

左侧列出了脚本的分类,点击分类可以看到每一个分类下有很多具体的脚本供我们使用,使用方式如下:
nmap --script=categories
可以填写下面 14 大分类中的其中之一,也可以填写分类里面的具体漏洞扫描脚本:
auth:负责处理鉴权证书(绕开鉴权)的脚本
broadcast:在局域网内探查更多服务开启状况,如 dhcp/dns/sqlserver 等服务
brute:提供暴力破解方式,针对常见的应用如 http/snmp 等
default:使用 -sC 或 -A 选项扫描时候默认的脚本,提供基本脚本扫描能力
discovery:对网络进行更多的信息,如 SMB 枚举、SNMP 查询等
dos:用于进行拒绝服务攻击
exploit:利用已知的漏洞入侵系统
external:利用第三方的数据库或资源,例如进行 whois 解析
fuzzer:模糊测试的脚本,发送异常的包到目标机,探测出潜在漏洞
intrusive:入侵性的脚本,此类脚本可能引发对方的 IDS/IPS 的记录或屏蔽
malware:探测目标机是否感染了病毒、开启了后门等信息
safe: 此类与 intrusive 相反,属于安全性脚本
version:负责增强服务与版本扫描(Version Detection)功能的脚本
vuln:负责检查目标机是否有常见的漏洞(Vulnerability),如是否有 MS 08_067
5 Nmap 端口状态
Nmap 可以根据对目标主机进行端口扫描后的响应,将端口状态分为以下几种:
6 Nmap 注意事项
如果 Nmap 命令中没有指出扫描类型,默认的就是 TCP SYN,但是它需要 root/administrator 权限。
当 TCP SYN 扫描不能用时,TCP Connect() 扫描就是默认的 TCP 扫描,当用户没有权限发送原始报文或者扫描 IPv 6 网络时,就是这种情况。
7 Nmap 常用命令组合
7.1 默认扫描
默认无选项添加时,扫描内容如下:
判断主机存活:
同网段,ARP 判断存活
不同网段,ICMP(Ping) 判断存活
使用 TCP SYN(-sS) 判断最常见的 1000 端口;
┌──(root㉿kali)-[~]
└─# nmap 10.10.8.128
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-27 02:11 EDT
Nmap scan report for 10.10.8.128
Host is up (0.00040s latency).
Not shown: 989 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown
MAC Address: 00:0C:29:98:0C:70 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 18.13 seconds
7.2 扫描存活主机
可以使用 -sn 参数快速判断对方存活主机:
┌──(root㉿kali)-[~]
└─# nmap -sn 10.10.8.0/24
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-27 02:16 EDT
Nmap scan report for 10.10.8.1
Host is up (0.00011s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 10.10.8.2
Host is up (0.00019s latency).
MAC Address: 00:50:56:EF:47:C3 (VMware)
Nmap scan report for 10.10.8.128
Host is up (0.00014s latency).
MAC Address: 00:0C:29:98:0C:70 (VMware)
Nmap scan report for 10.10.8.254
Host is up (0.00019s latency).
MAC Address: 00:50:56:FD:A4:C1 (VMware)
Nmap scan report for 10.10.8.134
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 6.32 seconds
7.3 识别目标开放端口
可以使用 -p 1-65535 的方式,扫描对方开放端口,使用 --min-rate 限制发包量(业务中慎用):
注:若已知目标主机存活,可使用 -Pn 跳过存活判断。
┌──(root㉿kali)-[~]
└─# nmap -p1-65535 --min-rate 10000 10.10.8.128
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-27 02:21 EDT
Nmap scan report for 10.10.8.128
Host is up (0.00047s latency).
Not shown: 65524 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown
MAC Address: 00:0C:29:98:0C:70 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 26.31 seconds
7.4 识别目标端口服务&系统
使用 -sV 判断对方开放端口服务与系统,使用 --min-rate 限制发包量(业务中慎用):
┌──(root㉿kali)-[~]
└─# nmap -p135,139,445,3389,5537 --min-rate 10000 -sV -O 10.10.8.128
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-27 02:53 EDT
Nmap scan report for 10.10.8.128
Host is up (0.00057s latency).
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
3389/tcp open ms-wbt-server?
5537/tcp closed unknown
MAC Address: 00:0C:29:98:0C:70 (VMware)
Device type: general purpose
Running: Microsoft Windows 7|2008|8.1
OS CPE: cpe:/o:microsoft:windows_7::- cpe:/o:microsoft:windows_7::sp1 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_server_2008:r2 cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_8.1
OS details: Microsoft Windows 7 SP0 - SP1, Windows Server 2008 SP1, Windows Server 2008 R2, Windows 8, or Windows 8.1 Update 1
Network Distance: 1 hop
Service Info: Host: SECURITY-PC; OS: Windows; CPE: cpe:/o:microsoft:windows
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.49 seconds
7.5 扫描主机漏洞
使用 --script=vuln 扫描主机漏洞(业务中慎用):
┌──(root㉿kali)-[~]
└─# nmap --script=vuln --min-rate 10000 10.10.8.128
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-27 02:25 EDT
Nmap scan report for 10.10.8.128
Host is up (0.0011s latency).
Not shown: 989 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49156/tcp open unknown
49157/tcp open unknown
MAC Address: 00:0C:29:98:0C:70 (VMware)
Host script results:
|_samba-vuln-cve-2012-1182: NT_STATUS_ACCESS_DENIED
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
| State: VULNERABLE
| IDs: CVE:CVE-2017-0143
| Risk factor: HIGH
| A critical remote code execution vulnerability exists in Microsoft SMBv1
| servers (ms17-010).
|
| Disclosure date: 2017-03-14
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
| https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_ https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
|_smb-vuln-ms10-061: NT_STATUS_ACCESS_DENIED
|_smb-vuln-ms10-054: false
Nmap done: 1 IP address (1 host up) scanned in 112.02 seconds