Nmap基本使用-参数详解(1)不做脚本小子原理讲解

Nmap,也就是Network Mapper,最早是Linux下的网络扫描和嗅探工具包。nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。

首先用nmap -h查看一下使用的参数。

Nmap基本使用-参数详解(1)不做脚本小子原理讲解_第1张图片

先看主机发现这个模块的参数(Host DISCOVERY):

1:-Pn

默认主机是存活的,直接进行扫描。示例如图:

Nmap基本使用-参数详解(1)不做脚本小子原理讲解_第2张图片

第一竖行PORT 端口/连接类型

百度开启了80和443端口,采用的是tcp连接。

第二竖行 STATE 状态

open为打开,close为关闭,filter为过滤,filter|close,为过滤或者关闭,unknow为未知的。

第三竖行SERVICE 服务

百度开启了http和https服务。

2:-PS,PA,PU

在讲解之前,首先需要一点tcp知识。

 

Nmap基本使用-参数详解(1)不做脚本小子原理讲解_第3张图片

首先服务器监听本地端口,客户端发起请求。SYN是在建立连接时用来同步序号,当syn为1,ack为0时,表明这是一个连接请求报文。seq是序号的意思,即每个字节的唯一标识。

服务端发送确认消息给客户端。ACK为确认号,当ACK=1时,确认号有效,ACK=0时,确认号无效。ack是确认的序号。

客户端收到服务端的确认消息之后,返回一个确认消息给服务器,然后进行数据传送。

(这只是一个大概的描述,细讲起来说不完)

-PS原理:

S是syn的缩写,在服务器发送给我们确认消息之后,我们发送一个rst包,用于拒绝或断开一个连接Nmap基本使用-参数详解(1)不做脚本小子原理讲解_第4张图片

我们对服务器发送的确认消息回复断开连接,这样一条完整的tcp连接并没有建立起来,实现了隐蔽扫描。(具体效果我就不演示了。。)

-PA原理:

Nmap基本使用-参数详解(1)不做脚本小子原理讲解_第5张图片

客户端直接发送ACK包,服务器肯定不会接受非建立连接请求的包,给客户端返回一个rst包终止建立,这样我们就可以判断目标主机存活。

-PU:

下面来说一下UDP协议

UDP是无连接的,尽最大努力交付数据包,因此不需要复杂的连接状态。

向目标发送一个udp包,如果未到达目标那么说明目标可能关机了或没有这个机器(当然有可能也给过滤了)。

这也就是为什么,无论扫描目标机器是否存活都要进行下一步测试的原因了。(你不知道你的扫描是否被目标防火墙过滤了)

未完待续~~

 

你可能感兴趣的:(网络)