上犹电脑信息网我们一直在努力
您的位置:上犹电脑信息网 > 电脑怎么了 > 指纹识别小部件,集成了多个Web指纹库,使指纹检测更快,更准确

指纹识别小部件,集成了多个Web指纹库,使指纹检测更快,更准确

作者:上犹日期:

返回目录:电脑怎么了


TideFinger

TideFinger,一个开源的指纹识别小工具,使用了传统和现代检测技术相结合的指纹检测方法,让指纹检测更快捷、准确。


项目地址

https【HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。】://github.com/TideSec/TideFinger


前言

通过分析 web 指纹的检测对象、检测方法、检测原理及常用工具,设计了一个简易的指纹搜集脚本来协助发现新指纹,并提取了多个开源指纹识别工具的规则库并进行了规则重组,开发了一个简单快捷的指纹识别小工具 TideFinger,并实现了一套在线的指纹识别平台“潮汐指纹” http://finger.tidesec.net。


通过对各种识别对象、识别方法、识别工具的分析,发现大家的指纹库各式各样,识别方式也是各有千秋,传统的 md5【Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。】、url【统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。】 路径的方式居多,识别 header【标头 (header) 是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔。】 信息的也是不少,但没有一个能集众家之长的小工具和指纹库。


于是作者参考了 webfinger 和 whatcms 的部分代码并进行了整合优化,做了一个小工具TideFinger。


安装

1、识别脚本的安装和使用都比较简单


安装python2依赖库


pip install lxmlpip install requestspip install bs4说明:sqlite【SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。】3 库在 Python【Python(英语发音:/ˈpaɪθən/),是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。】 2.5.x 以上版本默认自带了该模块,如提示 sqlite3 出错请自行排查。

2、执行脚本


$ python TideFinger.py Usage: python TideFinger.py -u http://www.123.com [-p 1] [-m 50] [-t 5] -u: 待检测目标 URL【统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。】 地址 -p: 指定该选项为1后,说明启用代理检测,请确保代理文件名为 proxys_ips【侵入保护(阻止)系统(IPS)是新一代的侵入检测系统(IDS),可弥补IDS存在于前摄及假阳性/阴性等性质方面的弱点。】.txt ,每行一条代理,格式如: 124.225.223.101:80 -m: 指纹匹配的线程数【就是核心数,跟人的脑子一样,核心数2就说明CPU有两个脑子。】,不指定时默认为50 -t: 网站响应超时时间,默认为5秒

指纹识别界面如下:


技术原理及实现

指纹库整理


作者搜集了大量的开源指纹识别工具,从中提取了指纹库,进行了统一的格式化处理并进行去重,最终得到了一个大约 2078条的传统指纹库。作者本来想把 fofa 的库也合并进来,发现格式差异有些大,便保持了 fofa 指纹库,并把 WebEye 的部分指纹和 fofa 指纹进行了合并。这样就保留了两个指纹库,其中 cms 指纹库为传统的 md5、url 库,大约 2078条指纹,可通过关键字、md5、正则进行匹配,fofa 库为2119指纹,主要对 Header【标头 (header) 是服务器以HTTP协议传HTML资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔。】、url 信息进行匹配。


指纹库优化


在对指纹库整理去重后,对每个指纹进行了命中率的标识,当匹配到某个指纹时该指纹命中率会加1,而在使用指纹时会从优先使用命中率高的指纹。


然后作者从互联网中爬取了 10W个域名进行了命中率测试,然后对一些误报率【误报率是说杀毒软件在工作的时候,对软件提示病毒的错误几率, 也就是说,100个软件里都没有毒,但杀毒软件提示1个文件有毒, 那么他的误报率就是1% 由于误报会对用户的正常使用造成重要影响,所以在杀毒软件评测时,使用误报文件个数,而不是误报率作为评价指标. ...】比较高的指纹进行了重新优化,得到了一份相对更高效的指纹库。


指纹识别脚本


有了指纹库之后,识别脚本就相对比较简单了,已有的一些也都比较成熟了,直接使用了 webfinger 和 whatcms 的部分代码并进行了整合优化,于是就有了 TideFinger。


1、功能逻辑都比较简单,先用 fofa 库去匹配,然后获取一定 banner,如果 banner 中识别除了 cms,则返回结果,如果未识别到 cms,则会调用 cms 规则库进行匹配各规则。


2、脚本支持代理模式,当设置了 -p 参数,且 proxys_ips.txt 文件包含代理地址时,脚本会随机调用代理地址进行扫描,以避免被封 ip,不过这样的话效率可能会低一些。毕竟搜集的免费代理质量还是差一些,速度会慢很多。有钱人可以找收费代理池,然后每个规则都用不同代理去请求,这样肯定不会被封!


代理地址的搜集可以使用我修改的另一个代理池 https://github.com/TideSec/Proxy_Pool,提供了自动化的代理 ip 抓取+评估+存储+展示+接口调用。


3、经测试,一般网站把所有指纹跑一遍大约需要 30秒时间,个别的网站响应比较慢的可能耗时更长一些,可以通过设置网站超时时间进行控制。


指纹识别平台

在有了指纹库和识别脚本之后,作者继续完善下这个功能,于是又加入了其他一些功能,有个这个在线指纹查询平台 http://finger.tidesec.net。


开始想加的很多,但后来在速度和时间方面不得不进行了一定的取舍,于是就有了目前如下的功能。


1、网站信息:网站标题、状态码、302跳转信息等;


2、IP 地址信息:IP 归属地、IP 服务商信息、GPS 信息;


3、CDN 识别:对目标是否使用 CDN 进行检测,但目前 CDN 识别指纹还不多,对部分识别出使用 CDN 的目标还会列出来 CNAME;


4、中间件识别:主要通过 http 头信息中的 XPB、server 等字段获取中间件信息,如 nginx、iis、tomcat等;


5、更多banner:主要是调用了whatweb和Wapplyzer进行更多banner信息的获取,如jquery、bootstrap 等;


6、操作系统识别:识别比较简单,通过 ttl 值和文件大小写是否敏感...用 nmap 去识别的话速度太慢...


7、本来还加入了子域名发现、端口扫描和 waf 探测等等,但发现耗时相对较长,而且比较容易被封 IP,所以又去掉了。


待解决的问题

1、指纹库的继续完善:这是个旷日持久的工作,希望能坚持下去,此库作者会持续的开源最新指纹库,希望大家手头有好的资源也可以贡献出来。


2、代理问题:虽然集成了代理功能,但经实际使用来看,搜集的免费代理质量还是差一些,速度会慢很多。


3、IP 会被封:有的网站防护对目录枚举或一些路径非常敏感,会封 IP 地址;


4、下一步尝试对 http 头进行语义分析,从海量网站中提取分析 header 的共性,更高效的发现未知指纹。


本文标签:多个(3)指纹(73)

相关阅读

关键词不能为空
极力推荐
  • 怎么上传音乐-QQ音乐怎么上传歌词?

  • 软件版本:软件大小:软件授权:适用平台:Win7下载http://dl.pconline.com.cn/download/91024.html具体步骤如下: 1、首先登录QQ音乐,播放你需要上传歌词的歌曲。然后打开歌曲的桌面歌词,点击

电脑蓝屏_电脑怎么了_win7问题_win10问题_设置问题_文件问题_上犹电脑信息网

关于我们