Nmap

Network Mapper

一款开源免费的网络发现和安全审计工具。

用途

列举网络主机清单

监控主机或服务运行状况

管理服务升级调度

检测目标主机是否在线

检测目标主机端口开放情况

侦测运行的服务类型及版本信息

侦测操作系统与设备类型的信息

功能

主机发现

也称作ping 扫描。发现所要扫描的主机是否正在运行的状态。

原理:发送探测包到目标主机,看目标主机是否回复。默认发送四种不同类型的包。

端口扫描

确定端口的开放状况,最核心的功能。

版本侦测

确定主机开放端口上运行的具体的应用程序及版本信息。

操作系统侦测

检测目标主机运行的操作系统类型及设备类型的等信息。

python nmap库判断操作系统 nmap用来进行ping探测_IP

Nmap工作原理

Nmap首选都是发送arp请求的,因为在同网段中它几乎总是更快。

主机发现

-sL		#列表扫描,仅将指定的目标IP列举出来,不进行主机发现

-sn		#只进行主机发现,不进行端口扫描

-sP		#仅对主机进行ping扫描

-P0		#关闭ping,跳过ping的步骤

-Pn		#将所有主机视作开启的,跳过主机发现的过程

-PA		#使用TCP ACK Ping扫描方式进行发现

-PU		#使用UDP Ping扫描方式进行发现

-PY		#使用SCTP INIT Ping扫描方式进行发现

-PE		#使用ICMP echo请求包发现主机

-PP		#使用timestamp请求包发现主机

-PM		#使用and netmask请求包发现主机

-PO		#使用IP协议报探测对方主机是否开启

-PS		#向目标主机发送一个设置了SYN标志位的空的TCP报文,主机返回包即判断存活

-n		#不进行DNS解析

-R		#总是进行DNS解析

-dns-servers	#指定DNS服务器

-traceroute		#追踪每个路由节点

端口扫描

Nmap端口状态
open		#开放状态

closed		#关闭状态

filtered	#被过滤状态

unfiltered	#未被过滤状态(ACk扫描时出现)

Open Filtered	#开放或是过滤的

closed Filtered	#不能确定端口是关闭的还是被过滤的

常用扫描方式

时序扫描
(-T效果并不好,通常配合-F使用,提高扫描速度与效果)

T0		#非常慢的扫描,用于IDS(入侵检测系统)逃避

T1		#缓慢的扫描,介于0和2之间的速度,同样可以躲开某些IDS

T2		#降低扫描速度,通常不用

T3		#默认扫描速度

T4		#快速扫描,可能会淹没目标,如果有防火墙可能会触发

T5		#极速扫描,牺牲了准确度来换去速度

常规扫描

-sS		#TCP SYN扫描,半开放扫描,速度快,不易被防火墙发现

-sA		#TCP ACK扫描,不能判断端口状态

-sT		#TCP连接扫描,基础稳定,会完成三次握手,会被防火墙记录

-sU		#UDP扫描,速度慢,常用-p指定端口

隐蔽扫描

-sN		#Null扫描,非常规数据包,端口关闭会相应,开放则不响应

-sF		#FIN扫描,类似SYN扫描

-sX		#打开数据包FIN、PSH和URG位,检测RST响应包

空闲扫描

-sI [zombie] [target ip]		#防止IDS记录


-sO		#IP协议扫描,扫描IP协议号,确定对方主机支持哪些IP协议

操作系统指纹识别

用于识别某台设备上运行的操作系统。

-sV			#版本探测

--allports	#全端口版本探测

--version-intensity		#设置扫描强度

--version-light			#轻量级扫描

--version-all			#重量级扫描

--version-trace			#获取详细版本信息

-sR			#RPC扫描

-O			#启用操作系统探测

--osscan-limit			#对指定的目标进行操作系统探测

--oscan-guess;--fuzzy	#推测系统识别

Nmap输出

5种不同的输出格式

interactive output

grepable output

normal output

script kiddi3 Output

XML输出

-oN		#标准输出,将标准输出写入指定文件

-oX		#XML输出,将XML输出写入指定文件

-oS		#script kiddi3输出,适合原来全是大写的输出

-oG		#Grep输出

-oA		#可以将扫描结果以标准格式、XML格式和Grep格式一次性输出

大扎好,我是基于搜索引擎的安全咸鱼工程师,欢迎关注! 么!!!