zoukankan      html  css  js  c++  java
  • 利用TCP/IP的堆栈指纹的方法

    目前的技术------利用TCP/IP的堆栈指纹的方法

        我们发现利用尝试登陆的信息有时候尽管可以获取很多有用的资料,但是很难保证它的真实性与正确性。 因此,有人开发了利用网络操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份。这种 的准确性相当高,因为再精明的管理员都不太可能去修改系统底层的网络的堆栈参数。目前,利用这种 技术实现的工具很多,比较著名有NMAP,CHECKOS,QUESO等。

        利用这一技术,可以精确地区分Solaris 2.6,2.5-2.51,2.4或者LINUX的内核的细微不同! 它的实现手段主要是以下的几种:

    1. 利用用FIN探测: 通过向目标机发送一个FIN的包(或者是任何没有ACK或SYN标记的包)到目标主机的一个开放的端口然后 等待回应。许多系统如MS-WINDOWS,BSDI,CISCO,HP/UX,MVS和IRIX会返回一个RESET。
    2. 利用BOGUS标记探测: 通过发送一个SYN包,它含有没有定义的TCP标记的TCP头。那么在LINUX系统的回应任就会包含这个没有 定义的标记,而在一些别的系统则会在收到SYN+BOGU包之后关闭连接。利用这些特性,可以区分一些操 作系统。
    3. 利用TCP ISN采样: 这是利用寻找初始化序列长度模板与特定的操作系统相匹配的方法。利用它可以对许多系统分类,如较 早的UNIX系统是64K长度。一些新的UNIX系统则是随机增长的长度(Solaris,IRIX,FreeBSD,Digital Unix, Cray等)
    4. 使用Don't Fragment位: 许多操作系统在发送的包里使用这个位,由此可以确定操作系统的类型。
    5. 使用TCP的初始化窗口: 在这里只是简单地检查返回包里包含的窗口长度。这项技术根据各个操作系统的不同的初始化窗口大小 来唯一确定它们。
    6. 利用TCP的可选项: 利用在发送的TCP包里设定一些TCP可选项根据他们返回包的内容来确定对方系统的类型。
  • 相关阅读:
    上周热点回顾(8.25-8.31)团队
    上周热点回顾(8.18-8.24)团队
    Suricata产生的数据存储目录
    Suricata的规则解读(默认和自定义)
    Suricata的总体架构
    Suricata是什么?
    snort + barnyard2如何正确读取snort.unified2格式的数据集并且入库MySQL(图文详解)
    基于CentOS6.5或Ubuntu14.04下Suricata里搭配安装 ELK (elasticsearch, logstash, kibana)(图文详解)
    Windows里安装wireshark或者ethereal工具(包括汉化破解)(图文详解)
    Tcpdump的用法
  • 原文地址:https://www.cnblogs.com/goodloop/p/251701.html
Copyright © 2011-2022 走看看