freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Satori指纹识别原理及dhcp分析
蚁景科技 2019-07-04 10:06:24 228344
所属地 湖南省

原创: 萌新 合天智汇

原创投稿活动:重金悬赏 | 合天原创投稿等你来

Satori是被动识别中的一款独树一帜的软件,和ettercap等软件不同,它专门采用dhcp进行识别。本文通过对satori进行测试、读源码对其识别机制进行简单的分析,并在最后一部分对Satori开发者的paper进行了解读。

解压后有如下几个文件

0YH8SOPe86S

其中,dhcp.xml和tcp.xml在下文会详细分析,p0f.fp,p0fa.fp是和p0f的指纹库相同的,稍微了解即可,如下所示。 P0f.fp是分析syn指纹

0YH8SPNxixE

P0fa.fp是分析synack的指纹

0YH8SO1aQi0

运行测试一下

0YH8SNToEm8

1和149都是win7,但是没有非常精确地识别出来 因为我命令里加了-d,所以会打印出指纹,猜想应该是根据收到的数据包对比指纹库,然后给出结果

0YH8SMRIKno

以192.168.96.1为例

0YH8SLqTfuK

[12] 表明可能属于该系统的权重,值越大,越有可能 该数字来源于dhcp.xml中给出的特征及权重 在dhcp.xml中找到vista的指纹

0YH8SLZd3my

结合上一张截图,第一条

0YH8SKjlteS

,权重为5 第二条

0YH8SJaFuYy

,权重为5 第三条

0YH8SKIMLui

,权重为2 5+5+2=12;所以192.168.96.1为vista的权重为12 在试一下windows2000,验证一下猜想 Windows2000的指纹如图

0YH8SLD2Ek4

它所有特征中只匹配

0YH8SJ4iX8C

0YH8SHc9Ct6

权重加起来是7 我又测了一台centos

0YH8SJ0m2hk

Satori没有猜测出可能是什么系统 我手动在指纹库中匹配,也没有找到

结合抓包分析

0YH8SGtBVcu

以192.168.96.1为例 在探测时,输出的是

0YH8SFtFQlU

对应satori.pcap第一个包

0YH8SF3ZJTs

Option分别是53,61,12,60,55,255(末尾,可忽略) 命中指纹库中的

0YH8SEjYCjg

0YH8SEWD1Bw

Option55展开,分别是1,15,3,6,44,46,47,31,33,121,249,43,252 命中指纹库中的

0YH8SGQJut6

Option60展开 Vendorclass identifier为MSFT5.0

0YH8SCuXa76

命中指纹库

0YH8SDpwtTU

所以vista的权重为5+5+2=12 结合DHCP协议分析: DHCP一共有8种报文,分别为DHCPDiscover、DHCPOffer、DHCPRequest、DHCPACK、DHCPNAK、DHCPRelease、DHCPDecline、DHCPInform。各种类型报文的基本功能如下:

0YH8SBARtFQ

以这次抓到的流量来看,有三种报文,分别是DHCPRqeuest,DHCP ACK,DHCP Inform. 只分析DHCPInform的option

0YH8SAdlRYW

53表示报文类型 RFC2132(https://tools.ietf.org/html/rfc2132?spm=a2c4e.11153940.blogcont491032.62.60a34540ToTPN5)可以看到type为8表示inform

0YH8SAEvfV2

0YH8SCRyVjE

61(RFC2132)是客户端ID,DHCP客户端使用此选项指定其唯一标识符,可以包含硬件类型和硬件地址

0YH8SAp2pJw

0YH8S7n0x4i

12(RFC2132)表示hostname,指定客户端名称

0YH8S72FSMq

0YH8S7DtaLY

60被用来选择性地标识DHCP客户端的供应商类型和配置

0YH8S88AFbU

0YH8S7A5dqq

这里存在如下对应关系 MSFT5.0 <--> windows dhcpcd4.0.1 <--> 安卓2.2 dhcpcd4.0.15 <--> 安卓3.0 dhcpcd-5.2.10<--> 安卓4.0 dhcpcd-5.2.10:Linux-3.0.13:armv7l:MT6577<--> 小米手机 dhcpcd-5.5.6<--> 安卓4.2 udhcp1.19.4 <--> 极路由或其它路由器 55被用来请求指定配置参数的值。请求的参数列表指定为n个八位字节,其中每个八位字节是RFC2312中定义的有效DHCP选项代码

0YH8S5FwAfg

0YH8S3ODsOW

255表示有效信息的结束

0YH8S4RBaFs

0YH8S5EwrCK

开发Satori的人写了篇paper介绍如何通过dhcp数据包被动识别os指纹(http://chatteronthewire.org/papers.htm,chatter-dhcp.pdf),这部分是我根据paper写出理解后的笔记: 对于被动指纹识别而言,DHCP的一个优点就是它是广播包,当一个dhcp客户端要加入时,他们会向所有人发送广播(所以在wireshark抓到的包中目的地址是255.255.255.255)。 作者首先介绍了最麻烦的方案: 利用捕获中显示的数据包的实际时间,每个DHCP数据包之间的差异,数据包的类型,存储在SecondsElapsed字段中的值以及该数据包集合上的TransactionID等等来区分操作系统,如windows95和windows98等版本的比较

0YH8S0xKPKq

0YH8S2vZZ0y

0YH8S0fjh4q

0YH8S0u4O6C

0YH8S0MJCsq

0YH8RyeGDcO

再介绍了简单的方案: 通过options识别操作系统。

0YH8Rxbk6TY

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

0YH8RySfihk

Fedora和centos的

0YH8RxYXxYW

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

0YH8RwL6T8y

使用option55不足以识别,所以针对linux,作者提出可以加以option51(客户希望的租用时间),option57(告诉DHCP服务器它可以接受的DHCP数据包的大小)辅助。 然后又介绍了通过其他options辅助识别os option61,用作将客户端链接到其租约的唯一标识符 可用于识别MSRRAS服务器

0YH8Rw06XlA

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

0YH8RtSnOZE

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

0YH8RuMLtVg

接着介绍从PXEboot中进行区分

0YH8RszWg2C

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

0YH8RuiOto8

0YH8RrWqri4

Option94,客户端网络设备接口

0YH8Rrgn2xs

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

0YH8RosMaJc

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

0YH8RpjltOS

实操推荐 python爬虫-WEB目录爆破和指纹识别:过该实验,基于之前所学的爬虫知识,自己编写两个安全测试的小工具:web指纹识别,web目录爆破。 长按下面二维码,或点击“实验:python爬虫-WEB目录爆破和指纹识别(合天网安实验室))”,可预览学习(PC端操作最佳哟)

0YH8RoF468e

长按开始学习

0YH8RodqszI

声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关,本文为合天原创,如需转载,请注明出处!

# 合天智汇
本文为 蚁景科技 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透测试和实践
蚁景科技 LV.9
湖南蚁景科技有限公司主要从事在线教育平台技术研究及网络培训产品研发,专注网络空间安全实用型人才培养,全面提升用户动手实践能力。
  • 907 文章数
  • 675 关注者
蚁景科技荣膺双项殊荣,引领网络安全教育新潮流
2025-03-28
FlowiseAI 任意文件写入漏洞(CVE-2025–26319)
2025-03-27
路由器安全研究:D-Link DIR-823G v1.02 B05 复现与利用思路
2025-03-18