nmap学习笔记
一、目标设置
显示版本
nmap --version
显示版本,一般用于验证是否安装正确。
单个目标
nmap <ip>
例如:
nmap 10.73.31.74
扫描指定ip。
nmap nmap.org
当然也可以扫描指定的域名。
结果
结果有三列,第一列是端口列表,第二列是状态,第三列是开放的服务。
Starting Nmap 7.01 ( https://nmap.org ) at 2016-02-09 17:38 ?D1ú±ê×?ê±??
Nmap scan report for nmap.org (45.33.49.119)
Host is up (0.21s latency).
rDNS record for 45.33.49.119: ack.nmap.org
Not shown: 993 filtered ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
70/tcp closed gopher
80/tcp open http
113/tcp closed ident
443/tcp open https
31337/tcp closed Elite
多个目标
nmap <ip1> <ip2> ... <ipn>
扫描多个目标。nmap会把所有除了选项的命令行参数看做目标。
nmap a.b.c.d1,d2,d3
例如:
nmap 10.73.31.1,15,255
如果位于同一子网,也可以这样。多个目标的结果会依次列出。
范围
nmap a.b.c.d1-d2
nmap a.b.c.*
扫描范围内的目标。星号代表0~255。
可以将这两种表示方法组合使用,比如:
nmap 10.73.1-100.*
CIDR
nmap 10.73.31.1/24
当然也支持CIDR记法,再例如,nmap 192.168.1.1/24
用于扫描你家路由器上都连了些什么。
读取文件
假设我们有list.txt
文件,文件的内容是ip列表,一行一个。比如这样:
10.73.31.145
10.73.31.116
我们可以输入这条指令让nmap自动扫描:
nmap -iL list.txt
随机
nmap -iR 3
这代表nmap会随机扫描3个目标。你可以在无聊的时候使用-iR 1000 -p 80
来寻找一些有趣的网站。
排除
使用--exclude
选项来排除指定的ip。比如:
nmap 10.73.31.1/24 --exclude 10.73.31.1
也可以使用上面的范围标记法来排除范围内的ip。
--excludefile
用于排除文件列表中的ip,文件的格式同上。
nmap 10.73.31.1/24 --excludefile list.txt
二、主机发现
无 ping
使用-PN
(或-P0
)来跳过主机发现的步骤。namp的默认流程不扫描离线的主机,即如果主机ping不通,则不对它进行下一步的端口扫描。
这个选项可用于强制扫描某个伪装成离线的主机。对于没有伪装的主机,扫描结果和不加完全一样,它只是提供了一种可选的方案。
only ping
-sP
,仅仅进行主机发现,不进行接下来的端口扫描。一般用于发现指定网络上的主机,优点是非常快。
TCP SYN ping
-PS
,使用半完成的TCP连接代替ICMP ping进行主机发现,优点是非常快。另外,如果目标主机禁止ICMP ping(很多主机都会这样),就可以用SYN ping 来代替。
默认使用80端口,但是可以通过-PS [portlist]
来指定。
IP ping
-PO
(注意是大写的O)选项进行IP协议的ping。IP协议ping用指定的协议发送一个包给目标。如果没有指定协议,默认的协议是 1 (ICMP), 2 (IGMP)和4 (IP-in-IP)。
其它嗅探选项
-PA [portlist]
TCP ACK ping-PU [portlist]
UDP ping-PY
CTP ping-PE
ICMP ping(默认值)-PP
ICMP时间戳嗅探(用于传过防火墙保护)-PM
ICMP地址掩码嗅探-PR
ARP ping,扫描本地网络时非常快因为不可能被拦截,离开本地网络则无效
如果目标主机不返回任何信息,你可以各种变换嗅探选项。
路由追踪
--traceroute
,这个选项非常帅,因为可以得到目标主机的一个路由地图。
比如说我拿nmap.org做个演示:
TRACEROUTE (using port 113/tcp)
HOP RTT ADDRESS
1 0.00 ms localhost (192.168.1.1)
2 0.00 ms 123.120.152.1
3 ...
4 0.00 ms 124.65.57.125
5 0.00 ms 124.65.194.53
6 42.00 ms 219.158.8.82
7 58.00 ms 219.158.11.34
8 48.00 ms 219.158.97.22
9 47.00 ms 219.158.104.106
10 327.00 ms 219.158.97.10
11 254.00 ms 12.119.9.49
12 268.00 ms cr84.la2ca.ip.att.net (12.122.129.122)
13 188.00 ms cr2.la2ca.ip.att.net (12.123.30.250)
14 187.00 ms ggr2.la2ca.ip.att.net (12.122.129.105)
15 516.00 ms 10ge2-18.core1.lax2.he.net (216.218.185.169)
16 217.00 ms 100ge8-2.core1.pao1.he.net (184.105.81.237)
17 270.00 ms 10ge4-4.core3.fmt2.he.net (184.105.222.89)
18 ...
19 300.00 ms ack.nmap.org (45.33.49.119)
反向DNS解析
-R
用于为所有ip目标做反向dns解析。正向解析是默认的,但是反向不是。
比如说我ping nmap.org
得到了45.33.49.119
。
然后我nmap -R 45.33.49.119
,结果中第二行会变成Nmap scan report for ack.nmap.org (45.33.49.119)
。
三、端口扫描
四、指纹识别
积极模式
注:官方文档翻译为“激烈”模式。个人觉得不是很好。
nmap -A <target>
这个选项启用额外的高级和高强度选项,它的内容目前还是未定义的。可以确定的是,它会打开OS探测-O
和版本探测-sV
,以后还会增加更多的功能。