远程操作系统与服务检测技术(远程验收系统)

网友投稿 243 2022-10-08


远程操作系统与服务检测技术(远程验收系统)

Nmap网络安全审计(四)

远程操作系统与服务检测技术

远程操作系统检测

很多工具都提供远程对操作系统进行检测的功能,你可以使用Nmap在网络上找到那些已经过时的系统或未经授权的系统。但是并没有一种工具可以提供绝对精准的远程操作系统信息。几乎所有的工具都使用猜解的方法,通过向目标发送探针,然后根据目标的回应来进行猜测系统。这个探针大多都是以TCP和UDP数据包的形式,检查的细节包括初始序列号(ISN),TCO选项,IP标识符(ID),数字时间戳等。每个系统都会对这些探针做出不同的响应,这些工具就提取这些响应中的特征部分,然后记录在一个数据库中,Nmap也是如此。在Nmap中操作系统检测还提供了关于系统运行时间和TCP序列可预测性信息的分类,使用-O参数通过端口扫描来完成对操作系统的扫描。

nmap -O 192.168.126.1

这个命令将会使用Nmap默认的SYN的扫描方式进行端口检测,不过操作系统检测选项可以和别的检测技术结合使用。使用--osscan-limit参数的时候,Nmap只会对满足“同时具有状态open和closed的端口”条件的主机进行操作系统检测。

操作系统指纹鉴别

远程判断目标计算机操作系统的方法可以分为两类。

主动式方法:指客户端主动向远程主机发送信息,远程主机一般要对这些信息作出反应,会回复一些信息,发送者对这些信息进行分析,就有可能会得知远程主机的操作系统类型。

被动式方法:并不向目标操作系统发送任何数据包,而是通过各种抓包工具来搜集流经网络的数据报文,再从这些报文中得到目标计算机的操作系统信息。

Nmap并不使用被动方式,Nmap的主动方式中采用多达15个探针的操作系统指纹扫描包。指纹是计算机作为身份认证的一种机制,每种操作系统都有不一样的特征,通过向计算机发送探针来查看目标主机的响应数据,这个过程就是操作系统指纹分析的过程。探针利用了TCP,UDP,ICMP等协议。这些经过巧妙设计的探针可以发现目标操作系统细微的差别。在Nmap中我们可以搭配使用-O参数

nmap -O -F 192.168.126.1

随着我们不断增加参数,可能会为系统带来更大的负担,同时也会泄露我们更多信息,更容易被IPS/IDS检测出来。

操作系统指纹扫描作为管理工具

nmap同样可以作为网络管理者的一个利器。利用这款工具,网络管理者可以节省大量的时间和精力,我们使用下面这个指令来看一下有什么效果。

nmap -sV -F --fuzzy --osscan-guess 192.168.0.103

如果我们希望通过nmap准确检测远程操作系统是比较困难的,所有这里我们使用到了-osscan-guess这个具有猜测功能的参数,它会猜测最为接近目标的操作系统类型,我们可以利用这条指令就可以简单的发现目标网络中那些不安全的系统,还可以快速获取目标上不安全的应用,我们做为维护者可以使用这个尽早来完善系统的安全性。

我们将第一个SCAN的结果拿出来分析一下

SCAN(V=7.80%E=4%D=11/3%OT=80%CT=7%CU=40895%PV=Y%DS=1%DC=D%G=Y%M=000C29%TM=5DBE8A64%P=i686-pc-windows-windows)

这一行代表当前进行扫描使用的nmap版本以及一些其他的相关本地信息。V=7.80表示当前使用的nmap版本D=11/3表示的扫描的日期OT=80%CT=7表示在指纹识别过程中使用的TCP端口CU=40895表示在指纹识别过程中使用的UDP端口PV=Y表示目标IP地址是否属于私有IP地址(Y=yes N=no)DS=1表示从nmap所在主机到目标主机的距离跳数G=Y表示这次扫描结果较好,可以提交给iNSEcure.Org(也就是nmap的网站)TM=5DBE8A64表示扫描所消耗的时间p=i686-pc-windows-windows指出nmap所在主机的操作系统类型

下面的这些测试结果(SEQ、OPS、WIN、T1),这些测试的结果是通过向目标上开放的TCP端口发送一组非常巧妙的探针得到的。

SEQ(SP=FD%GCD=1%ISR=10D%TI=I%CI=I%II=I%SS=S%TS=U)

SP=FD表示TCP的初始序列号(ISN)GCD=1表示TCP的增量ISR=10D表示ISN的速率TI=I表示SEQ探针回应数据包中IP头部的ID值II=I表示ICMP探针回应数据包中的IP头部的ID值TS=U表示TCP数据包的时间戳信息

OPS测试结果

OPS(O1=M5B4NW8NNS%O2=M5B4NW8NNS%O3=M5B4NW8%O4=M5B4NW8NNS%O5=M5B4NW8NNS%O6=M5B4NNS)

O1=M5B4表示TCP数据包每次能够传输的最大数据分段ST11表示ACK的可选信息和数据包的时间戳内容N表示为空操作w0指出了窗口大小O2、O3....O6的意义均和O1相同。

WIN测试结果

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

这个测试结果给出了6个探针返回值的初始窗口大小W1=2DA0W2=2DA0W3=2DA0W4=2DA0W5=2DA0W6=2DA0

ECN测试结果

ECN(R=Y%DF=Y%T=40%W=FFFF%O=M5B4NW8NNS%CC=N%Q=)

R=Y表示目标是否对我们进行了响应DF=Y表示IP数据包的分段标志位是否被设置T=40表示回应数据包IP中的TT1值 W=FFFF表示TCP初始化窗口的大小信息O=M5B4NNS表示TCP选项的信息CC=Y表示目标的拥塞控制控制能力。Y表示目标支持ECN

第一个探针回应。第二个探针是一个设置了DF位内容的为空的数据包,这个数据包的窗口大小为128。第三个探针是一个设置了FIN、URG、PSH以及SYN标识的数据包,这个数据包的大小为256。第四个探针是一个设置了ACK位的TCP数据包,这个包同样设置了DF位,大小为1024。第五个探针是一个窗口大小为31337的数据包。第六个数据包是一个窗口大小为32768,这个数据包通常是发往关闭的端口。第七个数据包设置了FIN、URG、PSH标志位,这个探针同样发往一个关闭端口,窗口大小为65535。

U1的结果是根据UDP数据包探针返的结果,这个探针的数据部分是300个C字符IE探针基于ICMP协议,由两个探针组成。

新的操作系统指纹信息提交地址 http://iNSEcure.org/Nmap/submit/

使用Nmap进行服务发现

Nmap提供更精确的服务及版本检测选项,可通过添加选项-sV进行服务和版本检测。服务和版本检测还有更多的选项。

-sV(版本检测)也可以使用-A同时打开操作系统探测和服务发现

--allports(扫描全部端口)通常我们在使用nmap进行版本探测的时候不会对目标的全部端口进行扫描,而是会跳过一些端口。如果确实有必要的话可以对全部端口进行扫描。 -version-intensity 0-9(设置版本扫描强度)当进行版本扫描-sV的时候,nmap发送一系列的报文,每个报文都被赋予一个1-9之间的值。数字越高,服务越有可能被正确识别。强度越高扫描时间也越长。强度值在0-9之间,默认是7。 --version-light(轻量级模式)--versiom-light其实相当于上面说的强度值为2的扫描。这种轻量级模式扫描速度更快,不过使用这种模式对服务进行扫描的成功几率也小了许多。 --version-all(尝试每个探测)--version-all相当于强度值为9的扫描。保证对每个端口尝试所有探测报文。 --version-trace(跟踪版本扫描活动)这将会是nmap打印出关于正在进行扫描的详细调试信息。它是用--packet-trace所得到的信息的子集。 -sR(RPC扫描)这种方法和许多端口扫描方法结合使用。它对所有被发现开放的TCP/UDP端口执行SunRPC程序和NULL命令,试图确定它们是否为RPC端口,如果是的话,可以确定是什么程序和版本号。(如果你是新版本的nmap的话会提示你如下内容: -sR is now an alias for -sV and activates version detection as well as RPC scan,翻译一下大意就是说-SR是-sV的别名,所以这个指令和-sV是一样的)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Nmap高级技术与防御措施(nmap穿透防火墙)
下一篇:@RequestBody时第二个字母大写,映射不到的解决
相关文章

 发表评论

暂时没有评论,来抢沙发吧~