Nmap扫描器使用和分析.docx

上传人:b****4 文档编号:11987993 上传时间:2023-04-16 格式:DOCX 页数:59 大小:2.87MB
下载 相关 举报
Nmap扫描器使用和分析.docx_第1页
第1页 / 共59页
Nmap扫描器使用和分析.docx_第2页
第2页 / 共59页
Nmap扫描器使用和分析.docx_第3页
第3页 / 共59页
Nmap扫描器使用和分析.docx_第4页
第4页 / 共59页
Nmap扫描器使用和分析.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

Nmap扫描器使用和分析.docx

《Nmap扫描器使用和分析.docx》由会员分享,可在线阅读,更多相关《Nmap扫描器使用和分析.docx(59页珍藏版)》请在冰豆网上搜索。

Nmap扫描器使用和分析.docx

Nmap扫描器使用和分析

华中科技大学计算机学院

《计算机网络安全》实验报告

 

实验名称Nmap扫描器使用和分析

团队成员:

姓名

班级

学号

贡献百分比

得分

王凤伟

IS0703

U200714945

100%

注:

团队成员贡献百分比之和为1

Email:

visual_110@

教师评语:

 

一.环境(详细说明运行的操作系统,网络平台,机器的IP地址)

操作系统:

MicrosoftWindowsXPProfessionalServicePackage3。

网络平台:

TCP/IP网络

机器IP:

211.69.207.74

Nmap版本:

5.21

 

二.实验目的

●掌握主机、端口扫描的原理

●掌握Nmap扫描器的使用

●掌握Nmap进行远程OS检测的原理

三.实验步骤及结果(包括主要流程和说明)

1.安装Nmap

a)安装界面

单击“IAgree”

 

b)选择组件

默认安装,单击“Next”

c)进入安装

单击“Install”

后面一路默认设置,最后安装成功。

2.利用Nmap扫描

d)-sS(TCPSYNscan)参数扫描如图2-1所示

图2-1-sS扫描211.69.207.72

从扫描结果可以看出211.69.207.72开通了11个端口,而且这些端口都是tcp端口,因为syn扫描是基于tcp的。

e)-sT(TCPconnectscan)参数扫描211.69.207.72如图2-2

图2-2-sT扫描211.69.207.72

从中可以看出,-sT扫描比-sS扫描多扫出了一个21号端口,对此我用wireshark截了一些包,发现21号端口只回应了一个rst|ack包,而其余的端口回应了至少三个rst|ack或reset之类的包,因此我判断有可能-sS与-sT判断端口打开的标准不同,-sT对回复一个rst|syn包就认为对方的端口是开着的,而-sS要对方回复多个rst|syn才认为对方的端口是开放的。

 

f)-sU(UDPscans)参数扫描如图2-3

图2-3–sU参数扫描202.114.0.242

由于-sU扫描的是UDP端口,而且扫描的目标ip为学校的DNS服务器,因此一定能扫描到对方的53号端口。

g)-sY(SCTPINITscan)扫描如图2-4

图2-4–sY参数扫描211.69.207.72

由于流控制传输协议(SCTP)是IETF新定义的一个传输层transportlayer协议(2000)所以到目前支持的不是很好,所以什么都没有扫描出来。

 

h)-sN;-sF;-sX(TCPNULL,FIN,andXmasscans)

-sN参数扫描如图2-5-a所示

图2-5-a–sN参数扫描211.69.207.72

由于对方是windows系列的操作系统所以检测到端口都是关闭的,但用syn扫描却发现对方11个tcp端口。

下面我们扫描一个不是windows系列的操作系统,-sF参数扫描如图2-5-b所示

图2-5-b–sF参数扫描

对方的主机是IBMAIX5.3-6.1,所以像443/tcp等关闭的端口操作系统会返回一个rst|ack,可以被nmap侦测到。

其它的966都是open或者filtered。

-sX参数扫描如图2-5-c所示

图2-5-c–sX参数扫描

这里的扫描结果与-sF的扫描结果一致,原理也基本一致,这里就不再解释了。

i)-sA(TCPackscan)参数扫描如图2-6

图2-6–sA参数扫描211.69.207.27

由于对方对每个ack报文都回复了rst,所以nmap判断所有的端口都没有过滤。

j)–sW(TCPwindowscan)参数扫描如图2-7

图2-7–sW参数扫描211.69.207.72

由于对方的所有回复报文均为rst故nmap判断对方所有端口关闭。

k)–sM(TCPMaimonscan)参数扫描如图2-8

图2-8–sM参数扫描211.69.207.72

-sM扫描实际是将sck和fin置位,对方以rst应答,nmap判断对方的所有端口都是开放或者被过滤的。

l)–sO(IPprotocolscan)参数扫描如图2-9

图2-9–sO参数扫描211.69.207.72

-sO扫描了IP协议相关的配置,如对方开放了ICMP协议、tcp协议以及UDP协议,而igmp、ip、ipv6、esp以及ah协议被检测为open|filtered。

m)–scanflags(CustomTCPscan)参数扫描如图2-10

图2-10–scanflags2参数扫描211.69.207.72

-scanflags2其实就是syn扫描机-sS所以扫描的结果与-sS(图2-1)应该基本相同。

3.深入了解NmapOS指纹库的结构和含义

n)利用-O参数扫描211.69.207.72如图3-1-A和3-1-B

图3-A-1–O参数扫描211.69.207.72第一屏

图3-B-2–O参数扫描211.69.207.72第二屏

由于使用了-d参数,所以nmap会打印出匹配的指纹信息,下面我们就讨论一下,这些指纹信息是如何计算出来的,以及nmap是如何通过指纹库判断操作系统的。

o)Scan行

此行反映了扫描的环境信息,如V=5.21说明nmap的版本是5.21,P=i686-pc-windows-windows说明扫描者的平台是i686,操作系统是windows系列的。

还有一些选项,不知道其具体是什么意思,但这对判断操作系统应该影响不大,所以就没有深入研究。

p)SEQ行

首先,我们看看nmap-os-db中对应于FingerprintMicrosoftWindowsXPSP2,的SEQ行:

SEQ(SP=FA-108%GCD=1-6%ISR=106-110%TI=I%II=I%SS=S%TS=0)。

下面我们先计算GCD:

由nmap的官方文档

http:

//nmap.org/book/osdetect-methods.html#osdetect-gcd可知,GCD是由Packet#1-Packet#6这六个报文的响应报文推到而来的,下面我们找到这些报文,我们首先找到Packet#1,可以通过如下的过滤参数得到:

ip.addr==211.69.207.234&&tcp.options.wscale_val==10&&tcp.window_size==1,结果如图3-C-1:

图3-C-1Packet#1报文

由图3-C-1可知Packet#1报文的序号为2054,那么我们就可以通过此序号找到其它的五个报文,如图3-C-2:

图3-C-2Packet#X以及它们的响应报文

下面我们计算各个响应报文之间的差值,以及差值的最大公约数。

我们用数组diff1保存各个差值,并只给出计算diff1[0]的详细过程,以及相关数据包的截图。

第一个响应报文为2055号报文,报文内容如图3-C-3:

图3-C-32055号报文wireshark截图

wireshark用相对值反映tcp的ISN,我们必须用实际的ISN,那么ISN=0X54f7491f。

第二个响应报文为2057号报文,报文的内容如图3-C-4:

图3-C-42057号报文的wireshark截图

ISN=0Xee7f5d13,所以diff1[0]=0Xee7f5d13-0X54f7491f=0X998813F4

由于响应报文的ISN依次为:

0X54f7491f、0Xee7f5d13、0X34447a3c、0Xf9b8bea0、0Xc0c45029、0X7f375ad7

同理可得(具体报文请参考os_detect.pcap文件):

diff1[0]=0Xee7f5d13-0X54f7491f=0X998813F4(已得到)

Diff2[1]=0X34447a3c-0Xee7f5d13+0Xffffffff=0X45C51D28

Diff3[2]=0Xf9b8bea0-0X34447a3c=0XC5744464

Diff4[3]=0Xf9b8bea0-0Xc0c45029=0X38F46E77

Diff5[4]=0Xc0c45029-0X7f375ad7=0X418CF552

由此可得:

GCD=(0X998813F4,0X45C51D28,0XC5744464,0X38F46E77,0X418CF552)=1,也就是GCD在1和6之间。

与nmap的打印结果不同。

下面计算ISR:

我们用数组seq_rates表示各个响应报文之间的初始序列号增长率,那么通过图3-C-2和diff1数组可以计算seq_rates:

Seq_rates[0]=0X998813F4/(4.965939-4.856578)=23553479320.78

Seq_rates[1]=0X45C51D28/(5.075279-4.965939)=10705560270.72

Seq_rates[2]=0XC5744464/(5.184631-5.075279)=30294198880.68

Seq_rates[3]=0X38F46E77/(5.294036-5.184631)=8733998985.42

Seq_rates[4]=0X418CF552/(5.403459-5.294036)=10050509326.19

AVG(seq_rates)=(23553479320.78+10705560270.72+30294198880.68+8733998985.42+8733998985.42+10050509326.19)/5=16667549356.758

ISR=8*log16667549356.758=0X10F,但不知为什么与nmap打印的0X106有一定的偏差。

说明:

log的底默认为2

下面计算SP:

SP=8*logStandardDivision(seq_rates)=8*log9687277259.89=0X109,但nmap打印的0X105,计算的结果还是与nmap的有些偏差。

下面计算TI:

探测SEQ响应报文(图3-C-2中有响应的序列号)的IP_ID分别为:

16538、16541、16542、16543、16544、16545,显然,IP_ID的增量小于10,所以TI=I,与nmap的打印结果一致。

下面计算CI:

由于CI要由T5、T6、T7的响应报文计算出来,下面我们就找到T2-T7,在wireshark中输入过滤参数:

ip.addr==211.69.207.234&&tcp.options.mss_val==265

得到过滤结果如图3-C-5

图3-C-5找到T2报文

由图3-C-5可知T2的报文序列号为2074,下面我们可以找到T2-T7如图3-C-6所示

图3-C-6T2-T7以及它们的响应报文

下面我们看看T5、T6、T7的响应报文的IP_ID,请看图3-C-7、图3-C-8和图3-C-9,

图3-C-7T5的响应报文

图3-C-8T6的响应报文

图3-C-9T7的响应报文

从以上3个图可以看出,T5、T6、T7响应报文的IP_ID分别为:

16553、16554、16555,显然它们的差值小于10所以CI=I,这与nmap的打印结果一致。

下面计算II:

由于II需要IE探测包的响应报文,那么我们就先找到两个IE探测包,使用如下wireshark过滤参数:

ip.addr==211.69.207.234&&icmp

得到如图3-C-10的结果

图3-C-10IE探测包及其响应报文

下面我们得到两个IE探测包响应报文的截图,如图3-C-11和图3-C-12

图3-C-11第一个IE探测包响应报文

图3-C-12第二个IE探测包响应报文

由以上两个图可以看出IP_ID分别为,16546、16547,所以它们的差值为1,小于10,所以II=I,这与nmap的打印结果一致。

下面计算SS:

探测SEQ响应报文(图3-C-2中有响应的序列号)的IP_ID分别为:

16538、16541、16542、16543、16544、16545,那么有:

Agv=(16545-16538)/(6-1)=1.4;

又由于第一个icmp响应报文IP_ID为16546,所以16546<16545+3*1.4,所以SS=S,这与nmap的打印结果一致。

其实,这个结果根本不用算,因为icmp的IP_ID为16546,最后一个tcp的IP_ID为16545,这正好是连续的。

下面计算TS:

我们先看看Packet#1的响应报文,如图3-C-13

图3-C-13Packet#1的响应报文

由图3-C-13可知,此报文TSval为0,所以TS=0,这与nmap的打印结果一致。

即:

SEQ(SP=109%GCD=1%ISR=10F%TI=I%CI=I%II=I%SS=S%TS=0)

q)OPS行

由于前面我们已经找到了所有的Packet#1-Packet#6,这里就不在全部截图了,而只给一个例子,Packet#1的响应报文如图3-D-1所示

图3-D-1Packet#1响应报文的ops

所以可得:

O1=M5B4NW0NNT00NNS;

同理可得:

O2=M5B4NW0NNT00NNS;

O3=M5B4NW0NNT00;

04=M5B4NW0NNT00NNS;

O5=M5B4NW0NNT00NNS;

O6=M5B4NNT00NNS;

这个结果与nmap的打印结果完全一致。

即:

OPS(O1=M5B4NW0NNT00NNS%O2=M5B4NW0NNT00NNS%O3=M5B4NW0NNT00%O4=M5B4NW0NNT00NNS%O5=M5B4NW0NNT00NNS%O6=M5B4NNT00NNS)

r)WIN行

由于前面我们已经找到了所有的Packet#1-Packet#6,这里就不在全部截图了,而只给一个例子,Packet#1的响应报文如图3-E-1所示

图3-E-1Packet#1响应报文的windowssize

由图3-E-1可得:

W1=FFFF;

同理可得:

W2=FFFF;

W3=FFFF;

W4=FFFF;

W5=FFFF;

W6=FFFF;

这与nmap的打印结果完全相同。

即:

WIN(W1=FFFF%W2=FFFF%W3=FFFF%W4=FFFF%W5=FFFF%W6=FFFF)

s)ECN行

我们首先找到ECNCWR报文,利用以下wireshark的过滤参数:

ip.addr==211.69.207.234&&tcp.flags.syn&&tcp.window_size==3

得到如图3-F-1所示的结果:

图3-F-1找到ECNCWR报文

由图3-F-1可知,ECNCWR报文的序列号为2072,下面我们定位其响应报文,如图3-F-2所示

下面计算R:

由图3-F-2可知,ECNCWR报文由响应报文,所以R=Y,这与nmap的打印信息一致。

下面计算DF:

由图3-F-2可知,DF标志位置1,所以DF=Y,这与nmap的打印信息一致。

下面计算T:

由于扫描的是局域网内的计算机,所以受到对方的IP数据包中的TTL即为初始TTL,由图3-F-2可以看到TTL=128,也就是十六进制的80,所以T=80,这与nmap的打印结果一致。

图3-F-2ECNCWR报文的响应报文

下面计算W:

由图3-F-2可知windowssize为65535,即十六进制的0Xffff,所以W=ffff,这与nmap的打印结果一致。

下面计算O:

由图3-F-2的ops字段可知:

O=M5B4NW0NNS

这与nmap的打印结果一致。

下面计算CC:

由图3-F-2的tcp头部的flag字段可知ECE与CWR字段均没有置位,所以CC=N,这与nmap的打印结果一致。

下面计算Q:

由于ECN、CWR以及URG均没有置位,所以根本不会存在文档中所说的所谓的巧合,所以Q什么值都没有鸡Q=,这与nmap的打印结果一致。

即:

ECN(R=Y%DF=Y%T=80%W=FFFF%O=M5B4NW0NNS%CC=N%Q=)

t)T1行

T1即为Packet#1,由于我们在前面已经找到了Packet#1报文,下面我们只给出其响应报文,如图3-G-1所示

图3-G-1T1响应报文

下面计算R:

由图3-G-1可知T1有响应报文,所以R=Y,这与nmap的打印结果一致。

下面计算DF:

由图3-G-1可知DF被置位,所以DF=Y,这与nmap的打印结果一致。

下面计算T:

由图3-G-1可知TTL=128,也就是十六进制的80,所以T=80,这与nmap的打印结果一致。

下面计算S:

下面我们把图3-G-1中的sequencenumber做一个特写,如图3-G-2所示

图3-G-2T1的响应报文的sequencenumber

我们还要知道请求报文,即T1的acknowledgementnumber,如图3-G-3所示:

由图3-G-2可知T1响应报文的sequencenumber为0X54f7491f,而由图3-G-3可知T1的acknowledgementnumber为0Xefd97016,所以S=O,这与nmap的打印结果一致。

图3-G-3T1的acknowledgementnumber

下面计算A:

从图3-G-3可知T1的sequencenumber为0Xa8975c01,且由图3-G-2可知T1的响应报文的acknowledgementnumber为0Xa8975c02,因此ack为syn+1,即A=S+,这与nmap的打印结果一致。

下面计算F:

由图3-G-2可知,T1响应报文的tcp的flags字段syn和ack被置位,所以F=AS,这与nmap的打印结果一致。

下面计算RD:

由图3-G-2可知,T1响应报文的tcp层根本没有携带用户层的数据,所以RD=0,这与nmap的打印结果一致。

下面计算Q:

由图3-G-2可知,T1响应报文的tcp头的flags字段的ECN、CWR以及URG字段均没有置位,所以Q的置位空,即Q=,这与nmap的打印结果一致。

即:

T1(R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)

u)T2行

下面我们找到T2报文,通过过滤参数:

ip.addr==211.69.207.234&&tcp.flags==0,可以得到如图3-H-1

图3-H-1T2报文全貌

由图3-H-1可知,T1报文的序列号为2074,下面我们找到其响应报文,如图3-H-2所示

下面计算R:

由图3-H-2可知,T2报文有响应报文,所以R=Y,这与nmap的打印信息一致。

下面计算DF:

由图3-H-2可知,T2的响应报文的IP头的flags字段的DF没有置位,即DF=N,这与打印结果一致。

图3-H-2T2响应报文全貌

下面计算T:

由图3-H-2可知,T2响应报文的TTL为128,由于是在局域网中测试的,所以TTL的值即为T的值,即T=80(十六进制),这与nmap的打印信息一致。

下面计算W:

由图3-H-2可知,T2响应报文的widowssize为0,即W=0,这与nmap的打印结果一致。

下面计算S:

由图3-H-2可知,T2响应报文的sequencenumber为0,所以S=Z,这与nmap的打印结果一致。

下面计算A:

由图3-H-1可知,T2报文的sequencenumber为0Xa8975c01,而由图3-H-2可知,T2响应报文的acknowledgementnumber也为0Xa8975c01,所以A=S,这与nmap的打印结果一致。

下面计算F:

由图3-H-2可知,T2响应报文的tcp头部flags字段RST与ACK字段被置位,所以F=AR,这与nmap的打印结果一致。

下面计算O:

由图3-H-2可知,T2响应报文的tcp头部的ops字段没有数据,所以O为空,即O=,这与nmap的打印结果一致。

下面计算RD:

由图3-H-2可知,T2的响应报文tcp层根本没有携带用户层的数据,因此RD=0,这与nmap的打印结果一致。

下面计算Q:

由图3-H-2可知,T2的响应报文的tcp头部的flags的ECN、CWR以及URG均没有置位,所以Q为空,即Q=,这与nmap的打印结果一致。

即:

T2(R=Y%DF=N%T=80%W=0%S=Z%A=S%F=AR%O=%RD=0%Q=)

v)T3行

首先我们找到T3报文,T3报文就在T2报文的下面,T3报文如图3-I-1所示,而T3的响应报文如图3-I-2所示。

下面计算R:

由图3-I-2可知,T3报文有响应报文,所以R=Y,这与nmap的打印结果一致。

下面计算DF:

由图3-I-2可知,T3响应报文的IP头的flags字段的DF被置位,所以DF=Y,这与nmap的打印结果一致。

下面计算T:

由图3-I-2可知,T3响应报文的IP头的TTL字段的值为128,即十六进制的0X80,由因为对方主机与扫描主机在同一个局域网,所以T也为128,即T=80,这与nmap的打印结果一致。

下面计算W:

由图3-I-2可知,T3响应报文的tcp头部的windowssize字段的值为65535,即十六进制的0Xffff,所以W=ffff,这与nmap的打印结果一致。

下面计算S:

由图3-I-1可知,T3报文的acknowledgementnumber字段值为0Xefd97016,而由图3-I-2可知,T3响应报文的sequencenumber字段值为0Xfcd729be,所以S=O,这与nmap的打印结果一致。

图3-I-1T3报文全貌

下面计算A:

由图3-I-1可知,T3报文的sequencenumber值为0Xa8975c01,且由图3-I-2可知T3响应报文的acknowledgementnumber的值为0Xa8975c02,所以A=S+,这与nmap的打印结果一致。

下面计算F:

由图3-I-2可知,T3响应报文的tcp头部的flags字段的syn、ack均被置位,所以F=AS,这与nmap的打印结果一致。

下面计算O;

由图3-I-2中的T3响应报文的tcp头部的ops字段可知:

O=M5B4NW0NNT00NNS

这与nmap的打印结果一致。

图3-I-2T3的响应报文

下面计算RD:

由图3-I-2可知,T3响应报文的tcp层根本没有携带用户层的数据,所以RD=0,这与nmap的打印结果一致。

下面计算Q:

由图3-I-2可知,T3的响应报文的tcp头部的flags的EC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1