人家说要想百站百胜,你必须良知知彼,你要维护系统不被攻击,你首先必须了
解袭击者,被动特征探测Passive Fingerprinting 是一种了解攻打者的而
不被其察觉的一种方法
Fingerprinting
传统上,操作系统特征可以使用一些踊跃的工具,如queso或者nmap,这些工具是
在每一个操作系统上的IP堆栈有本人不同特征的原理上来操作的,每个操作系统
响应通过的多种信息包。所以这些工具只有树立一个基于不同的操作系统对应不
同的信息包的数据库,而后,要判定远程主机的操作系统,发送多种不寻常的信
息包,检测其是怎么响应这些信息包的,再与数据库进行对照做出判断。Fyodor
的 nmapwww.insecure.org/nmap工具就是应用这种方法的,他也写了一
份详细的文档www.insecure.org/nmap/nmapfingerprintingarticle.html,
另外绿盟backend也写过这中文文章。
而被动特征探测Passive Fingerprinting 遵守雷同的概念,但实现的办法不
同。被动特征探测Passive Fingerprinting 基于嗅探远程主机上的通讯来取代
自动的去查问远程主机,所有你须要做的是抓取从远程主机上发送的信息包。在
嗅谈这些信息包的基本上,你可以判断远程主机的操作系统,就象主动特征探测
一样,被动特征探测Passive Fingerprinting 也是由每个操作系统的有自己
的IP堆栈特征,通过火析sniffer traces 和鉴别他们之间的不同之处,就可以判断
远程主机的操作系统了
信,
断定主机的操作系同一般能够由4个方面来决议当然也有其余信,存在:
TTL
这个数据是操作系统对出站的信息包设置的存活时光。
窗口大小Window Size 是操作系统设置的窗口大小,这个窗口大小是 在发送FIN信息包时包括的选项。
DF
可以查看是否操作系统设置了Don\'t Fragment bit位· TOS
是否操作系统设置了装备类型·
通过剖析信息包这些因数,你可以判断一个远程的操作系统,当然探测到的系统
不可能100准确,也不能依附上面单个的信,特征来判断系统,但是,通过查看
多个信,特征和组合这些信息,你可以增添对远程主机的精确水平。下面是一个
简略的例子,下面是the sniffer trace of a system 发送一个信息包,
. This system launched a mountd exploit against me,
我当初不要使用finger 或者NMAP等工具,而想要懂得被动接收到的信息,使用snort
www.clark.net/~roesch/security.html
得到了下面的一些信,特征:
04/2021:41:48.129662 129.142.224.3:659 > 172.16.1.107:604
TCP TTL:45 TOS:0x0 ID:56257
...F..A. Seq: 0x9DD90553 Ack: 0xE3C65D7 Win: 0x7D78
依据上面的四条准则,我们可以到达下面的情形:
TTL: 45
Window Size: 0x7D78 (or 32120 in decimal)
DF: The Don\'t Fragment bit is set
TOS: 0x0
我们在比较信,特征数据库,首先,我们查看使用在远程系统上的TTL,从我们
的sniffer trace 可以看到TTL是45,这多数表现它通过19跳来被咱们捕捉,因此
原始的TTL是设置为64,基于这个TTL,这个信息包应当看来是由LINUX和FREEBSD
系统发来的当然更多的系统信,特征需要放到数据库中,这个TTL通过了
traceroute
远程主机得到证明,如果你斟酌到远程主机在检测你的traceroute, 你可以设置你traceroute的timetolive(默认是30跳,使用m选项来设定到
主机的跳数少1到2跳的数值,如,方才的例子里,我们可以使用traceroute m 18
来设置跳数为18跳,这样做可以让你看到达到主机的门路而不遇到远程主机。
要多TTL的信息,请查看www.switch.ch/docs/ttl_default.html
下一步是比较窗口大小Windows size,用Windows size来判断是另一个十分有效
的工具,特殊是使用多大的窗口大小和改变大小的法则,在上面的信,特征中,
我们可以看到其设置为0x7D78,这是LINUX通常使用的默认窗口大小。LINUX,FREEBSD
和SOLARIS系统在完全的一个会话进程中窗口的大小是保持不变的,但是 ,局部
Cisco
路由器如2514和WINDOWS/NT的窗口是常常转变的在一个会话阶段, 假如在初始化三次握手后权衡窗口大小是比较准确的,详细信息,可以看看
Richard Stevens
的"TCP/IP Illustrated, Volume 1" 20章.
多数系统使用DF位设置,因而这个是一个限定的值,然而有些系统如SCO跟OPENBSD
不应用这个DF标记,所以就比拟轻易的用来辨别一些不这个DF位设置的体系,在
更多的测试后,发明TOS也是一个限定的值,这就表示不是良多操作系统来判断TOS,
而是协定在使用这个值。TOS的断定需要更多的测试。因此,根据上面的信息,一些
特别的TTL值和窗口大小值,你可以通过信,数据库来比较成果。
留神,与主动特征探测一样,passive Fingerpinting有很多限度,首先,利用
程序必需构建他们自己的与操作系统不同信,特征信息包如NMAP,HUNT ,TEARDROP等。
其次,这种探测可以使用调剂系统的信息包的值来防止,如可以用下面的方式来
改变TTL值:
Solaris: ndd set /dev/ip ip_def_ttl \'number\'
Linux: echo \'number\' > /proc/sys/net/ipv4/ip_default_ttl
NT: HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters
其他信息特征和使用
上面的是探讨了4个信,特征,但还有其他的特征可以被跟踪,如一些初始化序列
好,IP鉴定,码IP Identification numbers ,TCP或者IP的选项。如:
Cisco
路由器趋势由0开端IP鉴定,码IP Identification numbers 来代替 随机的指派,码。也可以使用ICMP的有效负载来判断,
dev.whitehats./papers/passive/index.html