操作系统侦测

简介: 操作系统侦测

操作系统侦测

  • 目标:识别目标主机操作系统的类型
  • 侦测方法:网络协议栈指纹识别技术


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

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

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

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
算法 安全 数据安全/隐私保护
互联网并发与安全系列教程(13) - 信息加密技术(对称&非对称加密)
互联网并发与安全系列教程(13) - 信息加密技术(对称&非对称加密)
883 0
|
弹性计算 负载均衡 容灾
阿里云服务器地域及可用区选择攻略(考虑七大影响因素)
阿里云服务器地域怎么选择?阿里云服务器可用区怎么选择?地域是指云服务器数据中心所在位置,可用区是指同一个地域下电力和网络相互独立的区域
4319 0
阿里云服务器地域及可用区选择攻略(考虑七大影响因素)
|
5月前
|
弹性计算 关系型数据库 定位技术
阿里云服务器【地域】如何选择?哪个地域速度快?
选择阿里云服务器地域时,应综合考虑用户地理位置、网络延迟、资源互通、备案要求及预算等因素。用户与服务器距离越近,访问速度越快,如北方用户选北京,南方用户选深圳或广州。多产品需内网互通时应选同一地域,并注意不同地域价格差异及备案要求。参考官方文档优化选择,提升性能与体验。
505 6
|
4月前
|
PHP 芯片 C++
基于TMS320F28377D双核芯片的开发例程
基于TMS320F28377D双核芯片的开发例程
|
6月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
753 0
|
Linux iOS开发 网络架构
如何使用 Ping 命令监测网络丢包情况?
如何使用 Ping 命令监测网络丢包情况?
11325 48
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
415 2
|
前端开发 程序员 API
【Qt】控件介绍
【Qt】控件介绍
|
网络协议 网络架构
什么是TCP重传?
【4月更文挑战第12天】
1451 3
|
存储 数据采集 算法
振南技术干货集:FFT 你知道?那数字相敏检波 DPSD 呢?(1)
振南技术干货集:FFT 你知道?那数字相敏检波 DPSD 呢?(1)