1.nmap简介
nmap是一个用于网络探测和安全/端口扫描的工具,全称Network Mapper(网络映射器),主要用来快速扫描大型网络,提供目标主机的各类信息,如:目标机的服务类型及状态、端口号、操作系统等信息。
nmap语法格式:nmap [<扫描类型>…] [<选项>] {<扫描目标说明>}
nmap识别6种端口状态:open(开放的), closed(关闭的),filtered(被过滤的), unfiltered(未被过滤的), open|filtered(开放或者被过滤的),或者 closed|filtered(关闭或者被过滤的)。
注:这些状态并非端口本身的性质,而是描述Nmap怎样看待它们。例如, 对于同样的目标机器的135/tcp端口,从同网络扫描显示它是开放的,而跨网络作完全相同的扫描则可能显示它是 filtered(被过滤的)。
2.选择目标
- 扫描单个IP:nmap IP地址
- 扫描主机:nmap www.xxx.com
- 扫描一个网段的IP地址:nmap 192.168.109.135-145
- 扫描子网:nmap 192.168.109.0/24
……
- 从文本文件获取扫描目标:nmap -iL test.txt
-iL <inputfilename>: Input from list of hosts/networks 输入文件名:该文件内容是主机IP地址或网络地址。
-P0 无ping,完全跳过Nmap发现阶段,跳过正常的主机发现,但不是打印一个目标列表, 而是继续执行所要求的功能,就好像每个IP都是活动的。
- 无ping扫描:nmap -P0 IP地址 用于防火墙禁止ping的情况
3.选择端口
-p <port> 端口(范围1-1023)
-p- 从端口1扫描到65535
-F 快速 (有限的端口) 扫描
- 扫描单个端口:nmap -p 端口号 IP地址
- 扫描一系列端口:nmap -p 1-100(范围) IP地址
- 快速扫描100个常见端口:nmap -F IP地址
- 扫描所有65535端口:nmap -p- IP地址
4.检测操作系统和服务
-sV: Probe open ports to determine service/version info 探测打开的端口以确定服务/版本信息
-A 同时打开操作系统探测和版本探测
--version-intensity <intensity> 设置 版本扫描强度:强度水平说明了应该使用哪些探测报文。数值越高, 服务越有可能被正确识别。 然而,高强度扫描花更多时间。强度值必须在0和9之间, 默认是7。
- 标准服务检测:nmap -sV IP地址
- 操作系统和服务检测:nmap -A IP地址
- 激进的服务检测:nmap -sV --version-intensity 5 IP地址
- 轻量Banner抓取检测:nmap -sV --version-intensity 0 IP地址
5.Nmap输出格式
-oN <filespec> (标准输出) 要求将标准输出直接写入指定的文件。
-oX <filespec> (XML输出) 要求XML输出直接写入指定的文件。
-oG <filespec> (Grep输出) 用于在命令行上进行一次性测式。Grep输出可以包含注释(每行由#号开始)。每行由6个标记的域组成,由制表符及 冒号分隔。这些域有主机,端口,协议,忽略状态,操作系统,***, IPID和状态。
-oA <basename> (输出至所有格式) 为使用方便,利用-oA<basename>选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在 <basename>.nmap,<basename>.xml和 <basename>.gnmap文件中。
- 保存所有格式:nmap -oA outputfile IP地址
- 將默认输出保存到文件:nmap -oN outputfile.txt IP地址
- 将输出结果保存为XML格式:nmap -oX outputfile.xml IP地址
- 为方便grep来保存格式: nmap -oG outputfile.txt IP地址
注:关于nmap的更多详细选项解释可参考:http://www.nmap.com.cn/doc/manual.shtm#12