天天看点

Nmap详解及常用命令

1.主机探测

即主机发现(Host Discovery),用于发现目标主机是否在线(Alive,处于开启状态)。主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。

Nmap用于主机发现的一些用法:

-sL: List Scan (列表扫描),仅将指定的目标的IP列举出来,不进行主机发现。  
  
-sn: Ping Scan (Ping扫描),只进行主机发现,不进行端口扫描。  
  
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。  

-n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。  

--traceroute: 追踪每个路由节点

           

2.端口扫描

端口扫描是Nmap最基本最核心的功能,用于探测目标主机所开放的端口。

-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK的方式来对目标主机进行扫描。

	-sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况。

	-sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态。

	-p <port ranges>: 扫描指定的端口

	-F: 快速模式,仅扫描TOP 100的端口

	-iL  文件目录\1.txt: 扫描主机列表1.txt中的所有目标地址
	
	-sP 192.168.0.100/24: 扫描目标地址所在C段的在线状态

	-sF -T4 192.168.0.100:  FIN扫描,用于识别端口是否关闭,收到RST回复说明端口关闭,详见下表

           

使用-sT参数可以更真实模拟TCP的三次握手请求,一般用时会更大些。而-sU则比较少用,而且跟linux内核有些不同,很多时候会等待很长时间。

端口的6种状态:

状态 含义
open 开放的,表示应用程序正在监听该端口的连接,外部可以访问
filtered 被过滤的,表示端口被防火墙或其他设备阻止,不能访问
closed 关闭的,表示目标主机未开启改端口
unfiltered 未被过滤的,无法确定所处状态
open/filtered 开放的或被过滤的,Nmap不能识别
closed/filrered 关闭的或被过滤的,Nmap不能识别

常见服务对应端口号:

服务 端口号
HTTP 80
HTTPS 443
FTP 21
TOMCAT 8080
远程登录 3389
MySQL 3306
Oracle数据库 1521
WebLogic 7001

3.版本检测

-sV:指定让Nmap惊醒版本检测

-version-intensity <level>:指定版本检测的强度(0-9),默认为7

-version-trace:显示出详细的版本侦测过程信息
           

其他选项:

-A 同时打开操作系统指纹和版本检测

-v 显示冗余,表示详细输出扫描情况

-T4:表示制定扫描过程使用的时序,共6个级别(0-5),等级越高,扫描越快,越容易被防火墙检测

一次比较完整的Nmap扫描

namp -T4 -A -v  ip