介绍
Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。可以扫描主机、端口、并且识别端口所对应的协议,以及猜测操作系统。扫描计算机,一般可以获取如下信息:
是否在线 、所在网络的拓扑、开放的端口、所使用的操作系统、所运行的服务与版本、所存在的漏洞、常用命令穷举。
命令
扫描单个主机/域名的普通扫描
nmap 目标主机IP
扫描是否联网
nmap -sn 目标IP
在网络中找到并ping所有活动主机
nmap -sn 192.168.56.0/24
扫描多个不连续的目标IP
nmap [目标ip1 ip2 ip3......]
区域全目标
nmap [ip地址范围]
扫描目标全子网
nmap [ip地址/子网]
查看服务版本
nmap -sV [ip地址]
半开扫描 (-sS)也称为隐蔽扫描===》使用最频繁
TCP同步扫描(TCP SYN):因为不必全部打开一个TCP连接,所以这项技术通常被称为半开扫描,当客户端发出一个TCP同步包(SYN),然后等待回应。如果对方没有返回SYN|ACK (响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接,这实际上由我们的操作系统内核自动完成的。
优点:不会在目标主机的日志上有所记录
缺点:扫描结果不够准确。
nmap -sS [ip地址]
全连接扫描(-sT)
原理:通过对每个端口进行tcp连接来确定端口是否存在。
优点:精准度较高。
缺点:由于在检测每个端口时都需要进行三次握手,所以速度较慢,同时由于需要建立连接,可能会被目标主机记录下来,所以安全性不高。(注:当系统权限不够时,默认使用的-sT扫描即nmap 目标ip)。
nmap -sT [ip地址]
自定义端口扫描
nmap -P (扫描范围) <要扫描的目标ip地址>
nmap -P80-1000 192.168.1.190
-Pn 非ping扫描,不执行主机发现,可以跳过防火墙(常用)
nmap -Pn <要扫描的目标IP地址> 常与其他命令联合使用
-sP ping 扫描
nmap -sP {tagert_IP}
Ping扫描:只进行Ping,然后显现出在线(做出响应)的主机,使用该选项扫描可以轻易地获取目标信息而不会被轻易发现。
在默认情况下,Nmap会发送一个ICMP回声请求和一个TCP报文到目标端口。
Ping扫描的优点:不会返回太多的信息造成对结果的分析,并且这是一种非常高效的扫描方式。