Xprobe v2.0
精确的Active操作系统指纹识别的“模糊”的方法。
版权。Copyright ? 2002, Fyodor Yarochkin & Ofir Arkin
Ofir Arkin Fyodor Yarochkin
Founder
ofir@sys-security.com fygrave@tigerteam.net
The Sys-Security Group Beez!LSD Labs
http://www.sys-security.com http://www.notlsd.net
August 2002
概要
今天用于精确的Active操作系统指纹识别的工具使用讯号数据库来使他们从目标设备收到的结果与已知的操作系统指纹识别设备相匹配。
通常,通过精确的信号匹配来识别精确的操作系统的类型。依赖于严格的信号匹配的操作系统指纹识别工具,在操作方式上面临着一些问题,这些问题导致程目标操作系统识别的失败。
通过这篇文章,我们可以用精确的Active操作系统指纹识别呈现不同方法信号匹配。
我们的方式之一是通过精确的Active操作系统指纹识别解决目前面临的瞄准问题。以及当被用于反对任何的网络拓扑时提供比较正确的结果。
1.0 绪论
在 2001年八月, Fyodor Yarochkin 和 Ofir Arkin 中发表了译文 Xprobe 0.0.11。 Xprobe 是一个精确的Active操作系统指纹识别工具,这些工具基于 Ofir Arkin's"在扫描中ICMP 用法" 研究方案。 工具提供了一种对于其他的精确的Active操作系统指纹识别工具的选择。对于精确的Active操作系统指纹识别来说这些工具严重依赖传输控制协议协定的用法
Xprobe 的第一版本包含各种不同的精确的操作系统
指纹识别方法 ,该方法使用 ICMP 协定的方法, 根源于 " ICMP 用法在
扫描"研究方案, 进入简单的,快速的,有效率的和一个有力的方法发现目标主机的在下面的操作系统
。
Xprobe 的第一版本缺少信号数据库的支持而且仰赖静态的决策树来产生结果
。 使用在 Xprobe 里面而不是在支持操作系统指纹讯号数据库里的难的编码信号的用法是工具的主要缺点之一。。
Xprobe 的第一版本缺少讯号数据库的支持而且仰赖 一个静态的决树来产生结果
。
这导致进 Xprobe 之内的信号支持方法的产生。因为这导致进 Xprobe 之内的信号支持方法的产生。因为由于通常的严格的讯号匹配方法由其他的活跃的操作系统指纹识别工具所采纳,给予条件工具的一些设计缺点和准确度问题操作,我们用信号匹配考虑不同的方式。
这篇论文为分析由各种不同的操作系统指纹识别测试产生的结果呈现不同的方式。
该操作系统高效率利用精确的Active操作系统指纹识别的“模糊”方法。我们将会解释我们如何聚集不同的精确的操作系统指纹识别方法。
1 0.0.2 版是目前 Xprobe 的第一代正式的版本。
2 http://www.sys-security.com
Xprobe v2.0: 精确的Active操作系统指纹识别"模糊" 方法。
版权。 2002,Fyodor Yarochkin& Ofir Arkin
2.0 严格的讯号匹配
今天被用于精确的Active操作系统指纹识别的工具 (nmap3,queso), 使用一个讯号
数据库来完成精确的操作系统识别该系统利用严格的讯号匹配和确定的指纹识别测试的数量来辨别精确的操作系统的类型
2.1 问题
严格的签字匹配技术,其自身,不是完美的。 它受许多因素的影响,
被对准的系统/ 网络的地志学和指纹本身的性质反映出这个问题在哪里
我们只是‘猜测'遥远的操作系统的类型。 在这些议题之中,我们能识别
下列各项:
一个信息包在传送中可能受到不同方面的影响。信息包里的几个字段值可能由于不同的原因被网络设备和过滤设备所改变。
我们可以举一些例子:
o 一个储存器可能在一个储存器里面改变一些领域的价值 ( 比如TOS, IP 存在时限的价值,零核对和的储存器 (UDP) 及其他计算核对,等等。)。
o
路由器或防火墙为保护他们的对象系统可能欺骗反应。例如,欺骗ICMP询问的防火墙对他们保护的对象系统做出反映,
在与保护目标系统建立连接之前开始的系统中执行TCP三次握手协议 。
在每个由一个独立的模块实现的指纹测试初始化之上为每个操作系统(操作系统→( 操作系统1,操作系统2,.....操作系统i))。 这通过读 xprobe2.conf 结构文件来处理, xprobe2.conf 结构文件包含指纹签字数据库, "指纹"查询 和 系统进入的ID号。指纹测试一旦执行了,程序就检查接收到的指纹信息包并在适当的操作系统排放置恰当的‘得分’。
8Xprobe v2.0: 精确的Active操作系统指纹识别"模糊"方法
著作权 ? 2002,Fyodor Yarochkin& Ofir Arkin
得分值可能接受下面几个值
YES(3)
PROBABLY_YES(2)
PROBABLY_NO(1)
NO(0)
每个测试模块依照模块实现的方案分配成绩值那
组件。由于得分叁数被分配不同的值所以介绍某程度的“模糊”方法。
一旦所有的测试被完成, 我们只需运行所有的专栏以及为每个操作系统计划摘要。 顶端- 得分操作系统 {x}(X , Y , Z 或 D) 将会被宣布成最后的结果。
这种方式豁然说给了我们支持因为对于操作系统来说高成绩最可能产生精确的匹配,
当他们对识别有用的时候:另一个 '可能的' 结果可以随意的列出, 一些细微地不同TCP/IP堆栈被应用,该堆栈为了指纹识别测试产生相似的测试结果
在储存器里面改变一些价值的中间装置的类型该设备在信息包传送或接收中修改一些值
(举例来说,如果你使用 Linux's IP 化装能力,在信息包传送的IP头文件中它将会在里面写得过多某设定
这使最新版的nmap 和 xprobe8感到困惑).
最初的操作系统的类型,即使传输控制协议/ IP 堆栈被改变。 那种改变可能由于其中一个值,或者可调的因素的失败引起的,
传输控制协议/ IP 堆栈
变更也能被对准目标到 '化装' 作为其他的操作系统。
探测最初的操作系统的能力不管一些测试是否被TCP/IP堆栈修改都
保存真实, 一些进入帐户该帐户为没有交互的系统和为有交互的操作系统签名
应该用 签字数据库在场。
过滤装置为配置成防护的系统欺骗反应。
3.1.1 Pluggable 体系结构
pluggable 体系结构用 Xprobe v2 设计, 该结构有不同的模块, 呈现新的
组件,改良了组件,或者根据用户应用API程序,
你可以用自己的方式来实现传输控制协议/ IP指纹识别测试。 Xprobe v2 的核心功能被设计在
甚至3次握手操作传输控制协议 由于在开始传递之前系统直接地连接到一被保护的系统 (一些种类的否认--服务的)。
o 一个Scrubber5 可能在发送系统和目标系统之间出现。也可能存在这些和其它此类的问题, 可能被精确的采指纹工具的伴随着错误的结果产生的实时操作系统影响。
如果遥远的采指纹工具的实时操作系统仰赖于某一被那个网络储存器的环境改变或影响了的IP储存器领域的价值,
有更大的可能严格签字的匹配程序将会失败。 ( 或生产错误的结果)
如果采用指纹工具的一个远程实时操作系统传送的数据包通过一个负荷平衡装置传送时可能到达不同的机器而不是到指定的目标。这可能会引起讯号匹配处理的失败。
传输控制协议的堆叠方式的一些特性可能被一个使用者改变
o传输控制协议的可调叁数在各种不同的 *BSDs, Solaris 等上的 ndd 指令可能被改变的。
o 很多的插线的存在是为使一些开放的操作系统能改变方法特别的操作系统的传输控制协议对某小包7的响应。
如果采用指纹工具的一个远程实时操作系统正在使用一些可能改变部份基本的讯号叁数,讯号调匹配将很有可能失败。
如果采用指纹工具的一个远程实时操作系统利用难解的小包生产,其结果是这些难看的小包可能被偶然造访一个过滤装置破坏, 如果过滤装置为非法的内容分析小包。因此仰赖这些小包的指纹测试将会失败,而且没有结果产生。
2.2. 需要
以下列出的是我们觉的应该具有的可改进的远程实时操作系统的指纹匹配工具的一些能力和功能:
当一些特别的测试不及格或被目标网络描绘无效时,一个某精确的采指纹工具的远程实时操作系统的应该维护。
一些设备有识别网络障碍的能力, 像是过滤装置,负载平衡器等。防火墙是一个" 被一个防火墙保护"的缩写。
7 例如 独立的IP地址对应Linux Kernel 2.4. x 。 (http:// ippersonality.sourceforge.net/).
要有发现修改的能力必须建立对应机器的传输控制协议堆。
检测机器使用率的能力。
如果我们不能够识别被对准机器的操作系统类型, 我们想要把可能的推测/ 匹配的数目限制为一个有限数目。有一连串可能的匹配会允许合理的推断,另外还可能, 匹配的机率很小或者是在正确的操作系统中的一个经过计算的推测。
时常,当人发现新的指纹鉴定方法的操作系统, 或厂商改变他们的传输控制协议堆或者指纹鉴定方法和新的操作系统或改变后传输控制协议堆相反。
时常,当人发现新的指纹鉴定方法的操作系统, 或厂商改变他们的传输控制协议堆或者指纹鉴定方法和新的操作系统或改变后传输控制协议堆相反。我们希望有一种工具会允许使用者从维护到使用最初的模组和讯号数据库时,可以基于任何的协议采指纹技术容易添加或删除的模组。这意谓我们必须为工具设一个 API。
我们希望具有控制使用 (或者不使用)将探针和剧照聚集在一个远程实时操作系统的传输控制协议上的复杂小包的能力。
我们完全有控制指纹识别测试方面的能力 (也就是重复测试的数目,信息包发送的数目,参数的应用等).
Xprobe v2 拥有许多上面的特征以及上面需要的问题的解决的方法。 题, 当 我们坚持创造最先进的远程的操作系统指纹识别工具的原始目标时。我们努力解决大多数的这些问题
6
6
Xprobe v2.0: “失真”的采指纹的精确的Active操作系统的途径
版权。
2002, Fyodor Yarochkin与Ofir Arkin
检测修正的能力做成了指向的机器的 TCP/IP栈。检测擦净活动的能力。如果我们不能鉴别指向机器的操作系统类型, 我们将限制可能猜测/或限定的号码的匹配。 有一张可能的列表将允许知识丰富的编辑器, 在一些情况中, 到列表下面的可能的匹配或甚至采用教育推测正确的操作系统。
经常, 人发现新方法采指纹操作系统, 或自动改变他们的已知道指纹
TCP/IP栈或采指纹的方法对新操作系统或改变的TCP/IP栈失败。
我们希望有一种工具,该工具将允许用户很容易增加或移除采指纹技术的新模件,该技术基于任何协议,当维护时能仍然使用原始的模件和签名数据库。
这意味着我们必须将API作为工具。
在我们的探测中 我们希望在能力上维持控制使用(或不使用) 改变的包
以及在精确操作系统上能仍然收集特别的情报的 TCP/IP栈类型。在采指纹的测试的每个方面上有完整的控制的能力(即。 重复测试的数字,发送包的数字, 参数使用, 等等.)。
Xprobe v2引起许多的这些特征, 以及这些需要的许多的解决办法。
我们试图了解决这些问题的大多数, 当我们坚持创造最
的最先进的精确的活跃的操作系统的采指纹工具时。
7
7
Xprobe v2.0: 采指纹的精确的Active操作系统的模糊途径
版权? 2002, Fyodor Yarochkin与Ofir Arkin
3.0 有操作采指纹的系统的失真的途径
若干‘模糊’匹配的方法能够被用于精确的active操作系统指纹识别工具与用已知道的指纹信号数据库收到的结果相匹配
菲希尔的区分函数分析: 这是允许分类的一个统计学的解决办法
许多元素进入基于‘匹配因素’的组。
更多的细节在这里是可得到的:
http://www.statsoftinc.com/textbook/stdiscan.html(这能是有趣的实现)。
光学字符识别承认: 若干种光特征识别方法已经被实现许多年了
他们的大多数能被应用执行‘失真’的信号匹配
为每次测试匹配的手印的距阵基于分数的统计学的计算
(光学字符识别方法的简单化的形式之一)。
另外的数学的算法
3.1 ‘失真’ 有Xprobe2的途径
我们选择了使用基于采指纹匹配方法的矩阵,该方法基于光学字符识别。
距阵被用于与Xprobe v2匹配的模糊方法。
解决办法基于浏览的一个简单的矩阵表示(或浏览), 并且‘匹配’的计算根据为每个‘签名 (OS) 简单地总结分数。 所有的测试被独立的执行
下列是我们用Xprobe v2使用的抽象的矩阵:
:OS
测试
操作
系统1
操作
系统2
操作
系统3
…
…
操作
系统i
测试1(TTL) 分数分数分数…
分数
测试2(IP_ID) 分数分数…
分数
测试3(ICMP及不到的端口)
分数分数分数…
分数
…
…
…
…
测试n分数分数分数分数
总数X Y Z… D
表1: 结果表
在初始化之上每人采指纹测试, 作为独立的模件被实现, 建造它
自己的向量的可能‘测试匹配’ 为每OS(OS→ (OS1, OS 2, …
OS i )).
OS i))。
这由读xprobe2.conf构造文件, 它保持手印签名数据库, 并且寻找“手印” 以及“OS_ID” 条目。 一旦采指纹的测试被执行程序检验包(s) 由于采指纹的测试收到了并且把适当‘分数’放进适当的OS行。