开发Satori的人写了篇paper介绍如何通过dhcp数据包被动识别os指纹(http://chatteronthewire.org/papers.htm,chatter-dhcp.pdf),本文根据paper写出理解后的笔记:

对于被动指纹识别而言,DHCP的一个优点就是它是广播包,当一个dhcp客户端要加入时,他们会向所有人发送广播(所以在wireshark抓到的包中目的地址是255.255.255.255)。

作者首先介绍了最麻烦的方案:
利用捕获中显示的数据包的实际时间,每个DHCP数据包之间的差异,数据包的类型,存储在Seconds Elapsed字段中的值以及该数据包集合上的TransactionID等等来区分操作系统,如windows95和windows NT

再介绍了简单的方案:
通过options识别操作系统。
首先介绍通过option 55(Satori最主要的方案):
利用选项55中请求的参数以及请求它们的顺序来识别操作系统
比如window各个版本的差异

Fedora和cent os的

由于很多linux底层dhcp堆栈相同,如下图所示

使用option 55不足以识别,所以针对linux,作者提出可以加以option 51(客户希望的租用时间),option 57(告诉DHCP服务器它可以接受的DHCP数据包的大小)辅助。

然后又介绍了通过其他options辅助识别os
option 61,用作将客户端链接到其租约的唯一标识符
可用于识别MS RRAS服务器

上图是一台MS RRAS Server,value等于01 + RAS + ‘ ‘ + MAC + 000000000000
而下图是一台思科的设备

Option 77是用户类信息,它通常用于帮助识别某种类型的计算机或用户类别
比如下图

接着介绍从PXE boot中进行区分

相关的option包括:
Option93 ,客户端系统的架构;通过option 93可以识别底层硬件

Option94,客户端网络设备接口

最后作者指出,可以利用租约信息来进行识别
可以观察当租约到期时,有多少操作系统实际更新了他们的IP地址,哪些等待直到下次重启来识别。
下面是继续使用ip地址的系统

下面是当前已经拥有地址,然后发送dhcp renewel请求的系统

通过dhcp被动识别指纹原理相关推荐

  1. 计算机指纹识别的原理步骤,指纹识别原理和过程

    指纹识别概念 指纹识别是生物识别的一种.不过其所分析的对象是指纹特征.指纹特征是最早被发现和应用的,所以指纹识别的历史较之其它识别技术要悠久的多.出现自动化的指纹识别系统到现在,目前的指纹识别技术已经 ...

  2. 指纹锁的识别与原理及安全性

    你有仔细的观察过你的双手吗?张开你的双手你看到了什么呢?有没有看到你手上有着一些奇奇怪怪的纹路呢,这些纹路里的信息你有了解多少呢? 如果说有人和你长得相像可以理解,有人的身高和你一样可以理解,但是你一 ...

  3. 安卓系统的指纹解锁_安卓全面屏都用的屏幕下指纹识别,科普超声波指纹识别的原理...

    指纹识别可以说是苹果一手带热的,虽然苹果将指纹识别普及推广,但是随着iPhoneX的发布指纹识别和home一样消失了.不过目前大部分的安卓手机,都是采用了屏幕下指纹识别.在全面屏上,安卓走得比苹果iP ...

  4. 人脸识别技术原理及解决方案

    人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在 90年后期,以美国.德国和日本的技术实现为主. 人脸识别技术是基于人的脸部特 ...

  5. 人脸识别SeetaFace2原理与代码详解

    人脸识别SeetaFace2原理与代码详解 前言 一.人脸识别步骤 二.SeetaFace2基本介绍 三.seetaFace2人脸注册.识别代码详解 3.1 人脸注册 3.1.1 人脸检测 3.1.2 ...

  6. 智能锁越来越流行,买指纹锁为什么要选择半导体指纹识别的智能锁?光学识别指纹锁不好吗?

    随着智能门锁行业及技术的成熟,在人们生活水平不断提高的今天,越来越多的消费者在家里装修或是换门锁时,接基本上都想着是不是也该去给家里换把指纹锁? 目前市面主要分为两类,一类是半导体指纹识别,另一类是光 ...

  7. Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹

    Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹 Nmap工具的准备工作 当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描.但是,在扫描之前需要做一些准备工作,如探测网络中活动的主 ...

  8. 基于深度卷积神经网络进行人脸识别的原理是什么?

    原文:https://www.zhihu.com/question/60759296 基于深度卷积神经网络进行人脸识别的原理是什么? 这里的人脸识别包括但不限于:人脸检测,人脸对齐,身份验证识别,和表 ...

  9. java 设备指纹_使用Socket In(JAVA)处理生物识别指纹考勤设备

    我正在尝试使用 Java程序连接生物识别指纹考勤设备(实际上我是新手!).我使用的设备是Biocom指纹考勤系统.但是,我正在搜索和阅读有关这一点,我看到SDK可以使用哪种基于设备类型(这很难,不合逻 ...

最新文章

  1. 程序连接不上mysql数据库文件_数据库问题(程序连接mysql错误)
  2. 判断两棵树是否相等与使用二叉链表法建立二叉搜索树
  3. mysql skip network_MYSQL-skip-networking
  4. [NOIP2010提高组]关押罪犯
  5. 手机html滚动原理,手机滚动-如何实现惯性滚动
  6. 基本概念---part5
  7. IIS搭建站点错误系列
  8. string与stream互相转换
  9. php显示网络图片,PHP在服务器端怎么显示图片呢?
  10. Atitit.js javascript异常处理机制与java异常的转换.js exception process Voae
  11. VOC2007数据集解析
  12. python调用通达信函数_Funcat 将同花顺、通达信等的公式写法移植到了 Python 中
  13. 一个可以模仿你的表情的语音聊天机器人——Facemoji 废萌(OpenCV+Dlib+Live2D+图灵机器人+讯飞IAT语音听写+讯飞TTS语音合成)
  14. HTML在线播放音乐实例,一步一步实战HTML音乐播放器(示例代码)
  15. FTP虚拟用户(转发)
  16. 爆款AR游戏如何打造?网易杨鹏以《悠梦》为例详解前沿技术
  17. 一招,提高 Github 成员微信群运营效率
  18. QGraphicsView 更改鼠标样式 以及QGraphicsItem悬停时更改鼠标样式
  19. 谈谈我在PyTorch踩过的12坑
  20. Springboot 从华为云OBS中打包下载文件到本地

热门文章

  1. 怎么理解毕业论文中理论意义和实践意义的区别?
  2. 通过hive sql实现报表中的MTD,YTM,YTD
  3. C语言,枚举法求两个数的最大公约数
  4. 在 uni-app 中 使用字体图标
  5. C代码如何跑起来(程序编译和预处理)
  6. 如何关闭服务器系统防火墙设置方法,怎么关闭防火墙 Windows自带防火墙关闭方法...
  7. 这段时间做的简单dp题目(部分)
  8. Day 7 输出m到n之间的素数
  9. Unity3D 模型分块
  10. 【强化学习】《Easy RL》- Q-learning - CliffWalking(悬崖行走)代码解读