<div align=center><img src=images/logo.png width=30% ></div>
# TideFinger
TideFinger,一个开源的指纹识别小工具,使用了传统和现代检测技术相结合的指纹检测方法,让指纹检测更快捷、准确。
# 前言
通过分析web指纹的检测对象、检测方法、检测原理及常用工具,设计了一个简易的指纹搜集脚本来协助发现新指纹,并提取了多个开源指纹识别工具的规则库并进行了规则重组,开发了一个简单快捷的指纹识别小工具TideFinger,并实现了一套在线的指纹识别平台“潮汐指纹” [http://finger.tidesec.com](http://finger.tidesec.com),希望能为大家带来方便。
通过对各种识别对象、识别方法、识别工具的分析,发现大家的指纹库各式各样,识别方式也是各有千秋,传统的md5、url路径的方式居多,识别header信息的也是不少,但没有一个能集众家之长的小工具和指纹库。
于是我们参考了webfinger和whatcms的部分代码并进行了整合优化,做了一个小工具TideFinger。
```
https://github.com/TideSec/TideFinger
```
**另外,我会不定期更新指纹库,关注我们最下方公众号,回复“指纹库”即可获取最新的的指纹库。**
我把指纹识别相关的一些原理、工具汇总成了一篇文章,详见[《Web指纹识别技术研究与优化实现》](https://github.com/TideSec/TideFinger/blob/master/Web%E6%8C%87%E7%BA%B9%E8%AF%86%E5%88%AB%E6%8A%80%E6%9C%AF%E7%A0%94%E7%A9%B6%E4%B8%8E%E4%BC%98%E5%8C%96%E5%AE%9E%E7%8E%B0.md)。
# 安装使用
## python3版
python3版加入了`Wappalyzer`的调用,并对结果进行了去重,同时加了目录匹配式选项,默认不会进行目录匹配方式的探测,因为这样会向目标系统发起大量的http请求。
1、识别脚本的安装和使用都比较简单。
安装python3依赖库
```
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
说明:sqlite3库在Python3 以上版本默认自带了该模块,如提示sqlite3出错请自行排查。
```
2、执行脚本
```
$ python3 TideFinger.py
Usage: python3 TideFinger.py -u http://www.123.com [-p 1] [-m 50] [-t 5] [-d 0]
-u: 待检测目标URL地址
-p: 指定该选项为1后,说明启用代理检测,请确保代理文件名为proxys_ips.txt,每行一条代理,格式如: 124.225.223.101:80
-m: 指纹匹配的线程数,不指定时默认为50
-t: 网站响应超时时间,默认为5秒
-d: 是否启用目录匹配式指纹探测(会对目标站点发起大量请求),0为不启用,1为启用,默认为不启用。
```
指纹识别界面如下:
<img src=images/025.png >
## python2版
1、识别脚本的安装和使用都比较简单。
安装python2依赖库
```
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
说明:sqlite3库在Python 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.txt,每行一条代理,格式如: 124.225.223.101:80
-m: 指纹匹配的线程数,不指定时默认为50
-t: 网站响应超时时间,默认为5秒
```
指纹识别界面如下:
<img src=images/022.png >
# 升级完善(2021.08)
## 主要完善功能点
1、**完成了python3的代码升级**。之前使用python2实现的,现在github里包含了python2和python3两个版本,可以根据自己环境去选。
2、**升级了tidefinger的自身指纹库**,2020年的时候指纹大约为2100条,目前指纹文件`cms_finger.db`已包含大约5900条指纹。
3、**引入了Wappalyzer指纹库**,使用了python版的Wappalyzer,代码来自`https://github.com/chorsley/python-Wappalyzer`。
4、**引入了`webanalyzer`指纹库**,这个是国内一群安全爱好者做的一个很不错的项目,项目地址`https://github.com/webanalyzer/`,里面的role也集成了WhatWeb、Wappalyzer、fofa的规则等。
5、因为多个指纹库都会有部分重合,所以后面对识别到的指纹进行了简单的去重处理,并对部分常见的误报进行了优化。
6、py2版本中在无法识别到cms时会默认使用数据库文件遍历的方式进行进一步指纹识别,但这样会对目标站点发起大量请求,我现在已经基本不大用这种方式,所以py3版加了个-d的选项,0为不启用,1为启用,默认为不启用。
## 新旧版本对比
**python2版:**
<img src=images/16294255548257.jpg >
<img src=images/16294255369065.jpg >
<img src=images/16294255091237.jpg >
**python3新版:**
<img src=images/16294257386932.jpg >
<img src=images/16294257808047.jpg >
<img src=images/16294258223684.jpg >
python3新版本获取的指纹更多,默认对目标发送大约4-5个数据包,而且都是没有攻击特征的,相对来说还是是可以接受的。
<img src=images/16294279226025.jpg >
<img src=images/16294279658552.jpg >
不大习惯自动化更新,所以指纹需要手动更新。
`Wappalyzer`指纹库的更新:`https://raw.githubusercontent.com/AliasIO/wappalyzer/master/src/technologies.json`,替换为对应的`technologies.json`文件即可。
`webanalyzer`指纹库的更新,指纹库`https://github.com/webanalyzer/rules`,替换到对应的`webanalyzer/rules`目录即可。
# 技术原理及实现
## 指纹库整理
我们搜集了大量的开源指纹识别工具,从中提取了指纹库,进行了统一的格式化处理并进行去重,最终得到了一个大约2078条的传统指纹库。本来想把fofa的库也合并进来,发现格式差异有些大,便保持了fofa指纹库,并把WebEye的部分指纹和fofa指纹进行了合并。这样就保留了两个指纹库,其中cms指纹库为传统的md5、url库,大约2078条指纹,可通过关键字、md5、正则进行匹配,fofa库为2119指纹,主要对Header、url信息进行匹配。
<img src=images/020.png >
## 指纹库优化
在对指纹库整理去重后,对每个指纹进行了命中率的标识,当匹配到某个指纹时该指纹命中率会加1,而在使用指纹时会从优先使用命中率高的指纹。
然后我们从互联网中爬取了10W个域名进行了命中率测试,然后对一些误报率比较高的指纹进行了重新优化,得到了一份相对更高效的指纹库。
<img src=images/024.png >
## 未知指纹发现
目前新指纹的识别基本还是靠人工发现然后分析规则再进行添加,所以各平台都有提交指纹的功能,但是我们没有这种资源,只能另想办法。
于是想到了一个比较笨的方法:从网站中爬取一些静态文件,如png、ico、jpg、css、js等,提取url地址、文件名、计算md5写入数据库,这样再爬下一个网站,一旦发现有相同的md5,就把新的url也加入到那条记录中,并把hint值加1,这样爬取10W个站点后,就能得到一个比较客观的不同网站使用相同md5文件的数据了。
有兴趣的可以查看具体代码`https://github.com/TideSec/TideFinger/blob/master/python2/count_file_md5.py`文件。
爬取的结果如下:
<img src=images/021.png >
当然了,里面肯定很多都属于误报,比如上图中第一个其实是个500错误页面,所以出现的比较多,第二个是政府网站最下边那个常见的“纠错”的js,所以用的也比较多...
经过一些分析整理也发现了一些小众的CMS和建站系统的指纹,比如三一网络建站系统的`newsxx.php`,比如大汉JCM的`jhelper_tool_style.css`等等,后续会持续把这些新的指纹丰富到指纹库中去。
## 指纹识别脚本
有了指纹库之后,识
TideFinger潮汐指纹识别
5星 · 超过95%的资源 需积分: 41 82 浏览量
2022-09-18
20:31:51
上传
评论
收藏 15.64MB ZIP 举报
_PowerShell
- 粉丝: 5w+
- 资源: 83
最新资源
- ZEND解密dezender12
- sony 索尼IMX334摄像头模组电路板AD版硬件PCB图(6层板).zip
- 基于flask和echarts融合交易策略的bitfinex可视化微服务.zip
- 包含了wvp-assist.tar wvp-talk.tar zlmediakit.tar .
- 3r4efgh53wgrf43tw
- 2024新版Java基础从入门到精通全套视频+资料下载
- Spring AI大模型视频教程+ChatGPT视频教程+OpenAI大模型视频教程(资料+视频教程)
- ABB工业机器人教程PDF版本
- 123321123323211
- 三相桥式全桥整流电路MATALB Simulink仿真文件
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论10