CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

指纹识别系统

2017年5月23日 777点热度 0人点赞 0条评论
  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

操作系统指纹识别概述

Taskiller2014-03-31+6共257425人围观 ,发现 4 个不明物体系统安全

操作系统指纹识别一般用来帮助用户识别某台设备上运行的操作系统类型。通过分析设备往网络发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统。

只有确定了某台主机上运行的操作系统,攻击者才可以对目标机器发动相应的攻击。例如,如果要使用缓冲区溢出攻击,攻击者需要知道目标的确切操作系统与架构。

为什么要进行操作系统指纹识别?
能够探测到远程操作系统版本的网络侦察工具是非常有价值的,因为许多安全漏洞都依赖于操作系统的版本,如果没有这些信息,攻击者的攻击和利用都会受到限制。所以攻击发动之前要做的就是收集目标操作系统信息。
例如,没有操作系统指纹识别技术,攻击者就无法知道目标服务器运行的是IIS服务还是Apache服务,有可能用IIS的漏洞去攻击Apache服务,最后无功而返。
TCP与ICMP指纹识别

  • TCP指纹识别
对操作系统的扫描是通过TCP/IP协议簇进行的。TCP/IP是互联网的基础协议,网络上所有的通信交互都通过该协议簇进行,因此操作系统必须实现该协议,使其与网络上其它计算机进行通信。IP用来将一个逻辑地址分配给网络上的机器,TCP用一种网络公认的方式传输IP数据包。这些标记对操作系统特别重要,每个操作系统根据数据包的不同类型做出不同的反应,如果是TCP包就发送到系统自己的网络栈。

TTL(Time to live)是由发送数据包的计算机或设备设置的。数据包每次经过路由转发后,该值都会被减1,所以如果一个数据包在网络上传输太久,途经太多跳数(机器间的路由),TTL值就会变为0(因为每经过一次路由转发都会将该值减1),该数据包就会被丢弃。

  • ICMP指纹识别
ICMP协议也经常被用来进行指纹识别。许多traceroute功能使用ICMP协议发现起点到目标的网络路径。如果数据报没有被正确处理,不管是设备没有激活还是数据报自己的问题,ICMP都会返回错误消息,这些错误消息有时也很有用。

每个请求和应答的数据包头部看起来都不一样。

操作系统指纹识别的类别

1、主动指纹识别

主动指纹识别是指主动往远程主机发送数据包并对相应的响应进行分析的过程,使扫描器在更短的时间内获得比被动扫描更准确的结果。传统的方法是在探测到几个合法数据包时检查目标网络元素的TCP/IP栈行为。

  • Nmap

网络侦察的第一步是确定网络中哪些机器是处于激活状态的。Nmap就是这样一款检测操作系统是流行工具,不仅可以检测远程操作系统是否运行,同时也可以执行各种端口扫描。

nmap通过向目标主机发送多个UDP与TCP数据包并分析其响应来进行操作系统指纹识别工作。在使用Nmap扫描系统的同时,该工具会根据响应包分析端口的打开和关闭状态。下图选项告诉Nmap在发现主机后不执行端口扫描,只打印出响应扫描器的主机,一般被称为“ping扫描”。这种扫描不会引起目标网络太多注意。对攻击者来说,了解有多少主机处于激活状态比列出每个IP的端口和主机名要有价值得多。

用Nmap探测操作系统非常简单,只需要在运行时使用-O参数。下图是扫描一台Windows机器的结果:

下图是扫描一台Linux机器的结果:

  • Xprobe2

也可以使用xprobe2探测远程操作系统。Xprobe2根据Ofir Arkin的ICMP指纹识别研究执行远端TCP/IP协议栈的指纹识别工作,该工具依靠不同的方法识别操作系统是否处于激活状态,包括模糊签名匹配、概率猜测与联合匹配,以及一个签名数据库。

IDS系统很容易检测TCP扫描,因此要想隐藏扫描的话,使用Xprobe2自带的ICMP模块是个不错的选择。

当前,xprobe2包含以下模块:

·        icmp_ping: ICMP回显探索模块

·        tcp_ping: 基于TCP的ping探索模块

·        udp_ping: 基于UDP的ping探索模块

·        ttl_calc: 基于TCP和UDP的 TTL距离计算

·        portscan: TCP 与 UDP 端口扫描

·        icmp_echo: ICMP回显请求指纹识别模块

·        icmp_tstamp: ICMP时间戳请求指纹识别模块

·        icmp_amask: ICMP地址掩码请求指纹识别模块

·        icmp_port_unreach: ICMP端口不可达指纹识别模块

·        tcp_hshake: TCP握手指纹识别模块

·        tcp_rst: TCP RST指纹识别模块

·        smb: SMB指纹识别模块

·        snmp: SNMPv2c指纹识别模块

要识别一台远程主机,我们只需调用xprobe2并给出远程主机的IP地址或主机名作为参数:

2、被动指纹识别

被动指纹识别是分析一台网络主机中发过来的数据包的过程。这种情况下,指纹识别工具被当作嗅探工具,不会向网络发送任何数据包。称其“被动”是因为这种方法不会与目标主机进行任何交互。基于这对这些数据包的嗅探跟踪,用户可以确定远程主机的操作系统。被动扫描通常比主动扫描更通用但准确性也更低,因为这种扫描对被分析数据的控制更少。

  • NetworkMiner

NetworkMiner是一款网络取证分析工具。
NetworkMiner也可被用作检测操作系统、会话、主机名、开放端口等的被动网络嗅探器和数据包捕获工具,而不需要向网络发送任何流量。
要执行操作系统指纹识别,需要运行NetworkMiner并选择抓包的网络接口,我们可以根据IP地址、MAC地址、主机名、操作系统等为主机分类。设置好之后单击Start。

NetworkMiner会在“Host”选项卡中显示每台主机的操作系统,并在主机的树形列表的操作系统名旁边显示相应的icon图标。也可以展开每个主机,使用户可以查看指定主机对操作系统指纹匹配的更详细分析。

用Ping命令检测操作系统
也可以通过执行ping命令,根据目标响应信息的TTL值来确定目标主机的操作系统类型。

上表列出了常见操作系统的相应TTL值。

Linux机器的扫描结果如下:

通过上图显示的ping结果可以看到,TTL的值为128,是Windows系统的默认TTL值。

预防

完全屏蔽所有指纹识别攻击是个几乎不可能完成的任务,但我们可以通过一些措施加大攻击者的识别难度。例如我们必须确保外部主机无法直接扫描内部主机。
主动操作系统指纹识别一般也可以通过防火墙和主侵防御系统(IPS)解决。
banner抓取比较容易防御,可以通过对Apache的配置文件进行配置,限制其在头部列出的信息。
如果我们运行着某些服务并开放某些端口,可以屏蔽或删除触发某些错误时的显示的信息。

总结

操作系统指纹识别是一个非常有价值的操作系统发现技术。从攻击者的角度来看,操作系统指纹有助于帮助其找出系统中可利用的漏洞。当前有很多种系统指纹识别技术,同时也有很多方法避免对操作系统的识别。

参考

  • http://en.wikipedia.org/wiki/OS_fingerprinting
  • http://oreilly.com/pub/h/1347
  • https://www.sans.org/reading-room/whitepapers/testing/overview-remote-operating-system-fingerprinting-1231

原文地址:http://resources.infosecinstitute.com/overview-os-fingerprinting/

Taskiller

Taskiller29 篇文章等级: 5级
|
|
  • 上一篇:SYNPROXY:最廉价的抗DoS攻击方案
  • 下一篇:判断是否支持Heartbeat的NSE脚本
发表评论

已有 4 条评论

  • 不要问我是谁 2014-03-31回复1楼

    TTL值只是近似值不是固定的64,可能是63,62,还有如果你在本机跟虚拟机之间ping,网卡桥接,不管虚拟机是什么操作系统,返回值是一样的

    亮了(1)
    • 嘿嘿嘿 2014-03-31回复

      @不要问我是谁 TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

      亮了(0)
  • _remoter_ 2014-03-31回复2楼

    转发微博

    亮了(0)
  • 带脚镣跳舞 2014-04-01回复3楼

    亮了(0)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

Taskiller

Taskiller

这家伙太懒,还未填写个人描述!

29 篇文章14 条评论

相关阅读

  • 安全研究员是如何破解智能机指纹锁的?(含报告及演示视频)
  • 操作系统指纹识别概述
  • 欧洲黑客联盟(ChaosComputer Club):只需照片即可获取指纹
  • 分享Python编写的网站组件指纹扫描工具.
  • 看完这篇报告,ATM取款机上的指纹识别你还敢用吗?

特别推荐

关注我们 分享每日精选文章

不容错过

  • 一次对个人服务器入侵事件的调查clouds2016-09-06
  • 警惕,WinRAR和TrueCrypt安装程序在用户电脑中植入恶意程序latiaojun2016-10-22
  • 让子弹多飞一会:论如何优化DDoSnickchang2016-06-20
  • 解密BBOSS组织:全球超十二万站点的地下掌控者阿里安全2016-01-19

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me