ettercap主机指纹识别原理

0x01启动ettercap测试
从启动信息可以看到,有1766个tcp os 指纹
在这里插入图片描述
嗅探结果
在这里插入图片描述
我这里开了两台机器,146是win,140是kali
查看146的详情,可以看到给出了指纹,但是没有识别出操作系统
在这里插入图片描述
查看140的也是同样
在这里插入图片描述
考虑到ettercap是根据tcp指纹被动识别,没识别出来可能是因为LAN里没有tcp流量
所以我在kali上开了apache2,让win去访问
此时在ettercap的win机器上可以看到
在这里插入图片描述
识别出了是windows
在kali的详情里看到
在这里插入图片描述
根据80端口的服务识别出了Linux debian

在win上面再开一个apache
在这里插入图片描述
此时根据tcp 80处的指纹也是能判断出是windows,此时在kali上访问win的80端口
但是ettercap还是没有进一步地识别
在这里插入图片描述
又在kali上开了MySQL,让win去远程登录
在这里插入图片描述
不过可以看到,没有进一步识别

所以猜测:开放的基于tcp的服务越多,且存在交互产生流量,则ettercap能得到更多指纹,更好识别主机操作系统;另外,如果服务端的软件是某种操作系统特有的,能有助于识别(比如IIS之于win),想mysql这种跨平台的,对识别的帮助不大

0x02使用插件
在ettercap上还有一个插件,如下图所示,应该就是用于指纹识别的
在这里插入图片描述
使用插件识别win的结果
在这里插入图片描述
识别kali的结果
在这里插入图片描述
还是有很高的误报率(当然,结果自己也说明了,实际上没有判断出来,给出的结果是最接近判断的)

0x03源码分析
查看插件对应的源码文件
在这里插入图片描述

发送syn到指定端口并收集返回的指纹
在这里插入图片描述
收集从目标返回的syn ack,并提取出指纹
在这里插入图片描述
收集到指纹后移除hook
在这里插入图片描述
然后将收集到的指纹与指纹库对比,打印结果

在这里插入图片描述

0x04指纹库分析
指纹库共有两个,一个是tcp协议栈指纹
在这里插入图片描述
从前面的注释可以看出还是基于tcp协议栈的实现不同来进行识别的
下图是部分指纹
在这里插入图片描述
以匹配到win的146机器的指纹为例
在这里插入图片描述
可以看到嗅探得出的指纹起始并不能与指纹库很好匹配,指纹库中也没有NT 6.1,不清楚这个结果是怎么得出来的

一个是mac指纹,用于是被设备制造商
在这里插入图片描述
如140被识别为vmware

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值