TAN。 堆栈指纹 许多本课中介绍的程序都利用堆栈指纹技术,这种技术允许你利用TCP/IP来识别不同的操作系统和服务。因为大多数的系统管理员注意到信息的泄露而且屏蔽了系统标志,所以应用堆栈指纹的技术十分必要。但是,各个厂商和系统处理TCP/IP协议的特征是管理员所难以更改的。许多审计人员和黑客记录下这些TCP/IP应用的细微差别,并针对各种系统构建了堆栈指纹表。 要想了解操作系统间处理TCP/IP协议的差异需要向这些系统的IP和端口发送各种特殊的包。根据这些系统对包的回应的差别,你可以推断出操作系统的种类。例如,你可以向主机发送FIN包(或任何不含有ACK或SYN标志的包),你会从下列操作系统获得回应: ·Microsoft Windows NT,98,95,和3.11 ·FreeBSD ·CISCO ·HP/UX 大多数其它系统不会回应。虽然你只不过缩小了一点范围,但这至少开始了你对目标系统的了解。如果你向目标系统发送的报文头有未定义标志的TCP包的话,2.0.35版本以前的LINUX系统会在回应中加入这个未定义的标志。这种特定的行为使你可以判断出目标主机上是否运行该种LINUX操作系统。 下列是堆栈指纹程序利用的部分特征,许多操作系统对它们的处理方式不同: ·ICMP错误信息抑制 ·服务类型值(TOS) ·TCP/IP选项 ·对SYN FLOOD的抵抗力 ·TCP初始窗口:只要TCP开始进行三次握手,总是先发出一个SYN包。像NMAP这样的程序会发出一个页码:[1] [2] [3] [4] [5] [6] [7] 第5页、共7页 |