操作系统侦测

发布于:2024-05-23 ⋅ 阅读:(131) ⋅ 点赞:(0)

操作系统侦测

  • 目标:识别目标主机操作系统的类型

  • 侦测方法:网络协议栈指纹识别技术

常用的网络协议栈指纹识别方法

TTL(存活时间)

TTL:Time To Live,即数据包的“存活时间”,表示一个数据包在被丢弃之前可以通过多少跃点(Hop)。不同操作系统的缺省TTL值往往是不同的。

常见操作系统的TTL值
  • Windows 9x/NT/2000 Intel TTL=128
  • Digital Unix 4.0 Alpha TTL= 60
  • Linux 2.2.x Intel TTL= 64
  • Netware 4.11 Intel TTL= 128
  • AIX 4.3.x IBM/RS6000 TTL= 60
  • Cisco 12.0 2514 TTL= 255
  • Solaris 8 Intel/Sparc TTL= 64

Windows系统修改TTL值的方法

打开注册表,在“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Par
ameters”
新建一个“DefaultTTL”Dword键值进行自定义

DF位

DF(不分段)位识别:不同OS对DF位有不同的处理方式,有些OS设置DF位,有些不设置DF位;还有一些OS在特定场合设置DF位,在其它场合不设置DF位。

Window Size

  • Window Size:TCP接收(发送)窗口大小。它决定了接收信息的机器在收到多少数据包后发送ACK包。

  • 特定操作系统的缺省Window Size基本是常数,例如AIX 用0x3F25,Windows、OpenBSD 、FreeBSD用0x402E。

  • 一般地,UNIXd的Window Size较大。Windows、路由器、交换机等的较小。

ACK 序号

不同的OS处理ACK序号时是不同的。如果发送一个FIN+PSH+URG的数据包到一个关闭的TCP端口,大多数OS会把回应ACK包的序号设置为发送的包的初始序号,Windows和一些打印机则会发送序号为初始序号加1的ACK包。

对FIN包的响应

发送一个只有FIN标志位的TCP数据包给一个打开的端口,Linux等系统不响应;有些系统如 Windows、CISCO、HP/UX等,发回一个RST。

ISN (初始化序列号)

  • 不同的OS在选择TCP ISN时采用不同的方法:一些UNIX系统采用传统的64K递增方法;
  • 较新的Solaris、IRIX、FreeBSD、Digital Unix、Cray等系统采用随机增量的方法;
  • Linux 2.0、OpenVMS、AIX等系统采用真随机方法;
  • Windows系统采用一种时间相关的模型;
  • 还有一些系统使用常数,如3Com集线器使用0x803,Apple LaserWriter,打印机使用0xC7001。

主机使用的端口

一些OS会开放特殊的端口,如Windows的137、139;一些网络设备,如入侵检测系统、防火墙等也开放自己特殊的端口。

操作系统的侦测

nmap-os-db(操作系统数据库文件)
  • 该数据库包含了超过2600种操作系统的指纹信息,Nmap把TCP和UDP报文发送到目标机器上,然后将检查结果和nmap-os-db数据库进行比对

  • 默认路径:/usr/share/nmap/nmap-os-db

操作系统侦测相关的命令选项

 


网站公告

今日签到

点亮在社区的每一天
去签到