一、Nmap入门

一、Nmap入门

1、扫描参数

设置扫描目标时用到的相关参数如下:

-iL:从文件中导入目标主机或目标网段。

-iR:随机选择目标主机。

--exclude:后面跟的主机或网段将不在扫描范围内。

--excludefile:导入文件中的主机或网段不在扫描范围内。

与主机发现方法相关的参数如下;

-sLList Scan(列表扫描),仅例举指定目标的IP,不进行主机发现。

-snPing Scan,只进行主机发现,不进行端口扫描。

-Pn:将所有指定的主机视作已开启,跳过主机发现的过程。

-PS/PA/PY[porlist]:使用TCP SYN/ACKSCTP INIT/ECHO方式来发现。

-PE/PP/PM:使用ICMP echotimestampnetmask请求包发现主机。

-PO[protocolist]:使用IP协议包探测对方主机是否开启。

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

-dns-servers<serv1[,serv2],...>:指定DNS服务器。

--system-dns:指定使用系统的DNS服务器。

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

与常见的端口扫描方法相关的参数如下:

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

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

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

--scanflags<flags>:定制TCP包的flags

-sI<zombie host[:probeport]>:指定使用Idle scan的方式扫描目标主机(前提是需要找到合适的zombie host)。

-sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况。

-sO:使用IP protocol扫描确定目标机支持的协议类型。

-b<FTP relay host>:使用FTP bounce scan扫描方式。

跟端口参数与扫描顺序的设置相关的参数如下:

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

-FFast mode(快捷方式),仅扫描TOP 100的端口。

-r:不进行端口随机打乱的操作(如无该参数,Nmap会将要扫描的端口以随机循序的方式进行扫描,让Nmap的扫描不易被对方的防火墙检测到)。

--top-ports<number>:扫描开放概率最高的number个端口(Nmap的作者增做过大规模的互联网扫描,以此统计网络上各种端口可能开放的概率,并排列出最有可能开放端口的列表,具体可以参见nmap-services文件,默认情况下,Nmap会扫描最有可能的1000TCP端口)。

--port-ratio<ratio>:扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,概率大于--port-ratio的端口才被扫描。显然参数必须在0-1之间,想了解具体的概率范围可以查看nmap-services文件。

-sV:指定让Nmap进行版本检测。

--version-intensity<level>:指定版本检测的强度(0-9),默认为7,数值越高,探测出的服务越准确,但是运行时间会比较长。

--version-light:指定使用所有的probes进行侦测(intensity2)。

--version-all:尝试使用所有的probes进行侦测(intensity9)。

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

在了解以上参数及其含义后,再来看用法会更好理解,扫描命令格式:Nmap+扫描参数+目标地址或网段。比如一次完整的Nmap扫描命令如下。

nmap -T4 -A -v ip

其中-A表示使用进攻性(Aggressive)方式扫描;-T4表示指定扫描过程使用的时序(Timing),共有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通信状况良好的情况下推荐使用T4-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,有助于让用户了解当前的扫描状态。

2、常用方法

扫描单个目标地址,在nmap后面直接添加目标地址即可扫描

nmap ip

扫描多个目标地址,如果目标地址不在同一网段,或在同一网段但不连续且数量不多,可以使用该方法进行扫描。

nmap ip ip

扫描一个范围内的目标地址,可以指定扫描一个连续的网段,中间使用“-”连接

nmap 192.168.0.100-110

扫描目标地址所在的某个网段,以c段为例,如果目标是一个网段,则可以通过添加子网掩码的方式扫描,下列命令表示扫描范围为192.168.0.1-192.168.0.225

nmap 192.168.0.100/24

扫描主机列表targets.txt中的所有目标地址,扫描targets.txt中的地址或者网段,此处导入的是绝对路径,如果targets.txt文件与nmap.exe在同一个目录下,则直接引用文件名即可

nmap -iL 绝对路径

扫描除某一个目标地址之外的所有目标地址,下列命令表示扫描除192.168.0.105之外的其它地址192.168.0.x地址

nmap 192.168.0.105 -exclude 192.168.0.105

扫描除某一文件中的目标地址之外的目标地址,下列命令表示扫描除了target.txt文件夹中涉及的地址或网段之外的目标地址,以扫描192.168.0.x网段为例,在target.txt中添加192.168.0.100192.168.0.105

nmap 192.168.0.100/24 -excludefile 绝对路径

扫描某一目标地址的21222380端口,如果不需要对目标主机进行全端口扫描,只想探测它是否开放了某一端口,那么使用-p参数指定端口号,将大大提升扫描速度

nmap 192.168.0.100 -p 21222380

对目标地址进行路由跟踪

nmap --traceroute 192.168.0.105

扫描目标地址所在c段的在线状况

nmap -sP 192.168.0.100/24

目标地址的操作系统指纹识别,通过指纹识别技术识别目标地址和操作系统的版本

nmap -O 192.168.0.105

目标地址提供的服务版本检测,下列命令表示检测目标地址开放的端口对应的服务版本信息

nmap -sV 192.168.0.105

探测防火墙状态,在实战中,可以利用FIN扫描的方式探测防火墙的状态。FIN扫描用于识别端口是否关闭,收到RST回复说明该端口关闭,否则就是openfiltered状态

nmap -sF -T4 192.168.0.105

3、状态识别

Nmap输出的是扫描列表,包括端口号、端口状态、服务名称、服务版本及协议。

open 开放的,表示应用程序正在监听该端口的连接,外部可以访问。

filtered 被过滤的,表示端口被防火墙或其它网络设备阻止,不能访问。

closed 关闭的,表示目标主机未开启该端口。

unfiltered 未过滤的,表示Nmap无法确定端口所处状态,需进一步探测。

open/filtered 开放的或被过滤的,Nmap不能识别。

closed/filtered 关闭的或被过滤的,Nmap不能识别。

posted @ 2020-08-30 09:09  只配吃三碗饭  阅读(535)  评论(0编辑  收藏  举报