WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院软件开发VC 探测远程主机操作系统指纹的全新技术 阅读

探测远程主机操作系统指纹的全新技术

 2010-05-12 20:35:36 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姇閻忔氨鈧凹鍓熷娲垂椤曞懎鍓伴梺閫炲苯澧紒澶婄秺瀵濡歌閸嬫捇妫冨☉娆忔殘闂佷紮缍€娴滎剟鍩€椤掑倹鏆柛瀣躬瀹曚即寮借閺嗭箓鏌ㄩ悤鍌涘
核心提示:4.3 静态分析因为数据报可能通过了一些不稳定的网络,比如Internet,探测远程主机操作系统指纹的全新技术(4),这样很可能接收到的连续数据报之间的延迟(r_i)和它们被发送时的延迟(s_i)就不再相同了,假如我们收到来自目标主机的两个连续的数据报时,然后,RING将会执行下面的步骤:- 源端口的选择;- 使用li

4.3 静态分析

因为数据报可能通过了一些不稳定的网络,比如Internet,这样很可能接收到的连续数据报之间的延迟(r_i)和它们被发送时的延迟(s_i)就不再相同了。

假如我们收到来自目标主机的两个连续的数据报时,测量到的延迟为3.01秒,但是很有可能他们在发送时相互间的延迟为3.0秒。问题在于某些系统实现时将3.2秒作为发送两个连续数据报的时间延迟。而介于3.0秒和3.2秒之间的区间因为太小,以至于无法区分接收到的数据报究竟是来自哪种系统的。

为了避免这个问题,我们可以使用TCP的时间截选项,这样就可以更好的得到何时发送数据报的信息了。在每个数据报里都设置时间截选项将会提高探测结果的准确度。不过,使用时间截选项也许会增加我们判断的难度,因为时间截选项可能会返回一些不准确的时间数据。

这种方法就是建立在指纹的获取以及与现有指纹数据库比较的基础之上的。通常的测量“距离”的方式为求得对应延迟之间的差值:

Distance=∑│ r_i - s_i │

其中r_i为与接收到的第i个数据报相关的时间延迟,s_i为指纹数据库中的相应顺序数据报的时间延迟。

因此,探测到的最可能的操作系统将是求得“距离”最短时的指纹数据库中对应的操作系统。而“距离”的求得并没有考虑TCP数据报头部的一些重要标记(如SYN,ACK,RST,FIN……)的影响。而这些标记往往又能探测到目标主机的运行状态。序号和确认号,这些信息却可以用来区分不同的系统实现方式。

五、RING的执行和现实结果

5.1 库

为了开发的简便,RING使用了标准的C语言和UNIX下的一些库文件。比如Dug Song''s Libdnet library,Mike D. Schiffman Libnet library,Lawrence Berkeley national liboratory Libpcap library。

Libdnet库被用来对防火墙进行控制,它提供了一个API允许控制某些UNIX的防火墙(比如ipchains,ipfilters,ipf……)

Libpcap通常被用来进行网络的监听,以及数据报的分析。

5.2 运行过程

RING对远程主机的探测需要一些初始化参数,目标主机的IP地址,目标主机上一个开放的TCP端口,扫描主机的IP地址以及用于监听数据报的网络接口。

然后,RING将会执行下面的步骤:

- 源端口的选择;

- 使用libdnet,建立起本地过滤设施,阻挡来自目标主机的数据报;

- 使用libpcap监听收到的数据报;

- 使用libnet,发送一个TCP SYN数据报到探测目标主机;

- 在默认/调整过的延迟内监听回送的数据报

- 将收到的回送数据报与以知的签名相比较

上一页  1 2 3 4 5 6 7  下一页

Tags:探测 远程 主机

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接