nmap-ipv6指纹

map有一个类似但独立的OS检测引擎,专门用于IPv6。 在较高的层次上,技术是相同的:发送探测,收集响应,并将响应集与数据库相匹配。 不同之处在于使用的特定探针以及它们匹配的方式。

IPv6操作系统检测与IPv4一样使用。 只需使用-6和-O选项。 例如,nmap -6 -O 。

Probes Sent
IPv6 OS检测使用许多与IPv4 OS检测相同的探测。区分操作系统的大部分功能来自TCP等高层协议,尽管有一些新的IPv6特定检测功能。

在所有情况下,在允许我们设置它的平台上,IPv6流标签都是0x12345。在不使用以太网发送的平台上(包括非Linux Unix平台),流标签将为0.因为这会影响响应,流标签的值将记录在OS指纹的EXTRA字段中 。 除NS探测外,跳跃限制(hop limits)是随机设置的。

总之,最多可以发送18个探测器。 它们按以下顺序发送。

1.1
Sequence generation (S1–S6)
这些是与IPv4检测中发送的T1探测器集合相同的六个探测器。这六个探头分开100毫秒进行定时测量。

如果目标缺少开放端口,则跳过S1-S6探测器

1.2
ICMPv6 echo (IE1)
这或多或少是普通的ICMPv6 echo request。 类型为128(Echo Request),代码为9,尽管本应为0. ICMPv6 ID为0xabcd,序列号为0.数据payload为120个零字节。 有一个Hop-By-Hop扩展头只包含填充。

1.3
ICMPv6 echo (IE2)
这是一个类型为128(Echo Request)且代码为0的echo request.ICMPv6 ID为0xabcd,序列为1.没有数据payload。
这个探针有趣的是它包含的错误扩展头。 总共有四个,按此顺序:
Hop-By-Hop
Destination Options
Routing
Hop-By-Hop
这些头(header)是错误的:除目标选项之外的任何header都不应出现多次,而hop-by-hop选项只应出现在第一个位置。 在我们的测试中,没有操作系统将此视为合法的回应请求。 但是,它们会响应不同的ICMPv6错误。

1.4
Node Information Query (NI)
RFC 4620定义了称为节点信息查询的ICMPv6消息,允许向目标询问其主机名,IPv4地址和IPv6地址。 NI探针具有类型139(ICMP节点信息查询)和代码0(指示受试者是IPv6地址)。 qtype是4(IPv4地址)。设置了A标志(返回所有单播地址)标志,没有其他标志。随机数设置为固定字符串“\ x01 \ x02 \ x03 \ x04 \ x05 \ x06 \ x07 \ x0a”。

尽管被要求提供IPv4地址,但某些操作系统会返回DNS名称。

1.5
Neighbor Solicitation (NS)
NS探测器发送Neighbor Solicitation查询,就像询问目标的硬件地址一样。类型为135,代码为0.跳跃限制始终设置为255,无论–ttl的设置是什么; RFC 2461禁止主机以其他方式回复。 所有标志都设置为0。

此探测仅发送到同一子网上的主机

1.6
UDP (U1)
如果可用的话,UDP数据包将发送到已关闭的端口。数据有效负载设置为300’C’(0x43)字节。 此探针旨在引出ICMPv6 Port Unreachable消息。

1.7
TCP explicit congestion notification (TECN)
这与IPv4的ECN探测相同。它是一个开放端口的SYN数据包,它也设置了ECE和CWR标志。 即使未设置紧急标志,也使用0xF7F5的紧急字段值。确认号为零,序列号为随机,窗口大小字段为3。 TCP选项是WScale(10),NOP,MSS(1460),允许SACK,NOP,NOP。

1.8
TCP (T2–T7)
这些对应于来自IPv4检测的T2-T7探测器。 编号从2开始而不是1,因为六个测序探针在IPv4中统称为“T1”(它们被重命名为S1-S6用于IPv6)。

2.Feature extraction
收到响应后,从中提取各种数据。 在机器学习文献中,这些数据被称为“特征”。 功能的示例包括:IPv6跃点限制(IPv6 hop limit),ICMPv6类型和代码,以及第一个TCP选项的代码。 在Nmap的术语中,它们分别称为IPV6_HOPLIMIT,ICMPV6_TYPE和TCP_OPT_0。)一些功能只是直接从响应数据包中提取,有些是对几个数据包进行计算的结果(如TCP_ISR,TCP初始序列号计数器速率)。

无法确定其值的任何特征(例如,来自未收到的响应的要素)都设置为-1。 这些特征放在一个大的一维特征向量中。 然后使用我们的训练数据估计的比例参数对每个进行缩放和平移以将其大致置于[0,1]范围内。
2.1
List of all features
TCP_ISR
TCP ISN计数率。这来源于S1-S6序列探针,它们相隔100毫秒发送。将连续序列响应之间的差异相加,然后将该总和除以第一次和最后一次探测之间经过的时间。
每个响应都会重复以下功能,因此,例如,完全限定的功能名称可能是S1.PLEN。
PLEN
IPv6 Payload Length字段
TC
IPv6流量类字段
HLIM
猜测IPv6 Hop Limit字段的原始值
对每个TCP响应重复以下功能。 完整的功能名称可能是T2.TCP_WINDOW。
TCP_WINDOW
TCP窗口大小
TCP_FLAG_F,TCP_FLAG_S,TCP_FLAG_R,TCP_FLAG_P,TCP_FLAG_A,TCP_FLAG_U,TCP_FLAG_E,TCP_FLAG_C
TCP标志。 每个标志都成为值为0或1的特征。
TCP_FLAG_RES8,TCP_FLAG_RES9,TCP_FLAG_RES10,TCP_FLAG_RES11
这些是TCP标头的保留部分的四个位。 RFC 3540将TCP_FLAG_RES8定义为nonce sum(NS)位。
TCP_OPT_0,<…>,TCP_OPT_16
输入前16个TCP选项的代码。
TCP_OPTLEN_0,<…>,TCP_OPTLEN_16
前16个TCP选项的长度。
TCP_MSS
第一个MSS选项的值(如果存在)。
TCP_SACKOK
如果存在允许SACK的选项,则为1,否则为0。
TCP_WSCALE
第一个Window Scale选项的值(如果存在)。

Differences from IPv4
IPv6指纹与IPv4指纹略有不同。 它们包含数据包内容的十六进制转储以及发送和接收时间,而不是分组功能的细分列表。
IPv6匹配算法完全不同。 它使用称为逻辑回归的机器学习算法,而不是对指纹列表进行简单比较。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值