一、nmap是什么
nmap是一款网络扫描和主机检测的非常有用的工具,不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于:
作用:
- 检测活在网络上的主机(主机发现)
- 检测主机上开放的端口(端口发现或枚举)
- 检测到相应的端口(服务发现)的软件和版本
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性的漏洞(nmap的脚本)
二、使用说明
namp [扫描类型] [扫描参数] [hosts 地址与范围]
选项与参数:
*** [扫描类型]*** :主要的扫描类型有下面几种:
-sT : 扫描TCP数据包已建立的连接connect()
-sS : 扫描TCP数据包带有SYN卷标的数据
-sP : 以ping的方式进行扫描
-sU : 以UDP的数据包格式进行扫描
-sO : 以IP的协议(protocol)进行主机的扫描
[扫描参数]: 主要的扫描参数有几种:
-PT : 使用TCP里头的ping的方式来进行扫描,可以获知目前有几台计算机存在(较常用)
-PI : 使用实际的ping(带有ICMP数据包的)来进行扫描
-p : 这个是port range,例如1024-、80-1023、30000-60000等的使用方式
[hosts地址与范围]:这个有趣多了,有几种类似的类型
192.168.1.100 : 直接写入HOST IP而已,仅检查一台
192.168.1.0/24 : 为C Class的形态
192.168.. : 为B Class的形态,扫描的范围变广了
192.168.1.0-50,60-100,103,200 : 这种是变形的主机范围
三、常用示例
1.使用默认参数扫描本机所启用的port(只会扫描TCP)
➜ ~ nmap localhost
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
631/tcp open ipp
873/tcp open rsync
8080/tcp open http-proxy
...
Nmap done: 1 IP address (1 host up) scanned in 2.77 seconds
2.同时扫描本机的TCP/UDP端口
➜ ~ nmap -sTU localhost
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
...
68/udp open|filtered dhcpc
631/udp open|filtered ipp
...
3.通过ICMP数据包检测,分析局域网内有几台主机是启动的
➜ ~ nmap -sP 192.168.199.0/24
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-05 00:13 CST
Nmap scan report for Hiwifi.lan (192.168.199.1)
Host is up (0.0036s latency).
Nmap scan report for yeelink-light-lamp1_miio92822016.lan (192.168.199.103)
Host is up (0.0043s latency).
Nmap scan report for chenqionghe.lan (192.168.199.141)
Host is up (0.0010s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 1.54 seconds
(3 hosts up) 代表有3台主机正在运行
4.对多个host进行端口扫描
nmap 192.168.199.0/24
nmap 192.168.1.2 192.168.1.5
nmap 192.168.1.1-100 (扫描IP地址为192.168.1.1-192.168.1.100内的所有主机)
5.扫描特定的端口
使用Nmap扫描远程机器的端口有各种选项,你可以使用“-P”选项指定你想要扫描的端口,默认情况下nmap只扫描TCP端口。
nmap -p 80 localhost
nmap -p 80,443 localhost
nmap -p 8080-8888 localhost
四、nmap29个实用范例
英文原版
1.用主机名和IP地址扫描系统
主机名
nmap server2.tecmint.com
IP
nmap 192.168.0.101
2.扫描使用“-v”选项
你可以看到下面的命令使用“ -v “选项后给出了远程机器更详细的信息。
nmap -v server2.tecmint.com
3.扫描多台主机
在Nmap命令后加上多个IP地址或主机名来扫描多台主机。
nmap 192.168.0.101 192.168.0.102 192.168.0.103
4.扫描整个子网
可以使用*通配符来扫描整个子网或某个范围的IP地址
nmap 192.168.0.*
5.使用IP地址的最后一个字节扫描多台服务器
指定IP地址的最后一个字节来对多个IP地址进行扫描。例如,我在下面执行中扫描了IP地址192.168.0.101,192.168.0.102和192.168.0.103。
nmap 192.168.0.101,102,103
6.从一个文件中扫描主机列表
如果你有多台主机需要扫描且所有主机信息都写在一个文件中,那么你可以直接让nmap读取该文件来执行扫描,让我们来看看如何做到这一点。
创建一个名为“nmaptest.txt ”的文本文件,并定义所有你想要扫描的服务器IP地址或主机名。
cat > nmaptest.txt
localhost
server2.tecmint.com
192.168.0.101
接下来运行带“iL” 选项的nmap命令来扫描文件中列出的所有IP地址
nmap -iL nmaptest.txt
7..扫描一个IP地址范围
nmap 192.168.0.101-110
8.排除一些远程主机后再扫描
在执行全网扫描或用通配符扫描时你可以使用“-exclude”选项来排除某些你不想要扫描的主机。
nmap 192.168.0.* --exclude 192.168.0.100
9.扫描操作系统信息和路由跟踪
使用Nmap,你可以检测远程主机上运行的操作系统和版本。为了启用操作系统和版本检测,脚本扫描和路由跟踪功能,我们可以使用NMAP的“-A“选项。
nmap -A 192.168.0.101
10.启用Nmap的操作系统探测功能
使用选项“-O”和“-osscan-guess”也帮助探测操作系统信息。
nmap -O server2.tecmint.com
11.扫描主机侦测防火墙
下面的命令将扫描远程主机以探测该主机是否使用了包过滤器或防火墙。
nmap -sA 192.168.0.101
12.扫描主机检测是否有防火墙保护
扫描主机检测其是否受到数据包过滤软件或防火墙的保护。
nmap -PN 192.168.0.101
13.找出网络中的在线主机
使用“-sP”选项,我们可以简单的检测网络中有哪些在线主机,该选项会跳过端口扫描和其他一些检测。
nmap -sP 192.168.0.*
14.执行快速扫描
你可以使用“-F”选项执行一次快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口。
nmap -F 192.168.0.101
15.查看Nmap的版本
nmap -V
顺序扫描端口
使用“-r”选项表示不会随机的选择端口扫描。
nmap -r 192.168.0.101
17.打印主机接口和路由
你可以使用nmap的“–iflist”选项检测主机接口和路由信息。
nmap --iflist
18.扫描特定的端口
使用Nmap扫描远程机器的端口有各种选项,你可以使用“-P”选项指定你想要扫描的端口,默认情况下nmap只扫描TCP端口。
nmap -p 80 server2.tecmint.com
19.扫描TCP端口
你可以指定具体的端口类型和端口号来让nmap扫描。
nmap -p T:8888,80 server2.tecmint.com
20.扫描UDP端口
nmap -sU 53 server2.tecmint.com
21.扫描多个端口
你还可以使用选项“-P”来扫描多个端口。
nmap -p 80,443 192.168.0.101
22.扫描指定范围内的端口
您可以使用表达式来扫描某个范围内的端口。
nmap -p 80-160 192.168.0.101
23.查找主机服务版本号
nmap -sV 192.168.0.101
24.使用TCP ACK (PA)和TCP Syn (PS)扫描远程主机
有时候包过滤防火墙会阻断标准的ICMP ping请求,在这种情况下,我们可以使用TCP ACK和TCP Syn方法来扫描远程主机。
nmap -PS 192.168.0.101
25.使用TCP ACK扫描远程主机上特定的端口
nmap -PA -p 22,80 192.168.0.101
26. 使用TCP Syn扫描远程主机上特定的端口
nmap -PS -p 22,80 192.168.0.101
27.执行一次隐蔽的扫描
nmap -sS 192.168.0.101
28.使用TCP Syn扫描最常用的端口
nmap -sT 192.168.0.101
29.执行TCP空扫描以骗过防火墙
nmap -sN 192.168.0.101