• Stars
    star
    970
  • Rank 47,174 (Top 1.0 %)
  • Language
    Rust
  • License
    MIT License
  • Created about 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

侦查守卫(ObserverWard)的指纹库

FingerprintHub

郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担。

  • 该仓库为侦查守卫(ObserverWard)指纹库,ObserverWard是一个基于社区的指纹识别工具。
类别 说明
作者 三米前有蕉皮
团队 0x727 未来一段时间将陆续开源工具
定位 社区化指纹库,让管理和使用指纹规则更加简单。
语言 Yaml
功能 可自定义请求,使用github actions 自动更新指纹库。

规则说明

name: apache-shiro
priority: 3
nuclei_tags:
  - - "shiro"
    - "apache"
fingerprint:
  - path: /
    request_method: post
    request_headers:
      Cookie: rememberMe=admin;rememberMe-K=admin
    request_data: ''
    status_code: 0
    headers:
      Set-Cookie: rememberMe=deleteMe
    keyword: [ ]
    favicon_hash: [ ]
  - path: /
    request_method: get
    request_headers: { }
    request_data: ''
    status_code: 0
    headers: { }
    keyword:
      - </i> shiro</li>
    favicon_hash: [ ]
字段 数据类型 描述
request_method String 自定义请求方法
request_data String 自定义请求数据,base64编码后的字符串
request_headers HashMap<String,String> 自定义请求头
path String HTTP请求的路径。
status_code u32 响应状态码,不匹配可以填0
headers HashMap<String,String> 相应的请求头,以键值对出现,值填*时只匹配键
keyword Vec 响应的HTML关键词数组,可以添加多个关键词提高识别精度
favicon_hash Vec favicon的MD5哈希数组,取并集关系,只要匹配到一个就算识别到
priority u32 优先程度,用来排序是否为重要组件资产,数字越大越重要,可选:[1,2,3],有标题和存在漏洞都会+1
nuclei_tags Vec<Vec> nuclei中的标签,当标签为[["shiro","apache"]]的时候,
yaml中同时有shiroapache这两个标签会被分到apache-shiro这个文件夹
  • 一个path为一组指纹,像上面的yaml规则中有两组指纹,只要匹配到了一组,就会返回name字段,也就是apache-shiro

如何贡献

验证单个指纹是否有效

  • 为了方便验证编写的yaml规则是否有效,可以使用--verify参数指定要验证的yaml文件,-t指定测试目标对指纹进行验证。
~ ./observer_ward_amd64 --verify 0x727/FingerprintHub/fingerprint/swagger.yaml -t http://httpbin.org
[ http://httpbin.org |["swagger"] | 9593 | 200 | httpbin.org ]
Important technology:

+--------------------+---------+--------+-------------+-------------+----------+
| url                | name    | length | status_code | title       | priority |
+====================+=========+========+=============+=============+==========+
| http://httpbin.org | swagger | 9593   | 200         | httpbin.org | 5        |
+--------------------+---------+--------+-------------+-------------+----------+

在线提交指纹

  • 当前项目支持通过issue提交指纹,但是这样不会把你添加进贡献者列表,如果你希望加入贡献者请选择使用提交PR贡献指纹。
  • 查看例子:提交指纹示例
  • 点击在线提交指纹
  • 提交指纹的标题必须要以提交指纹开头,组件名称使用方括号引起来的全英文,例如提交指纹-[apache-shiro],为apache-shiro组件提交指纹。
  • 规则使用覆盖的方式提交,按照markdown的Yaml代码格式,预填了,直接在中间插入规则就可以了。
  • 如果填写了测试目标会自动验证,没有就等着管理员审核通过再合并。

提交指纹规则

  • 点击Fork按钮克隆这个项目到你的仓库
git clone [email protected]:你的个人github用户名/FingerprintHub.git
  • 添加上游接收更新
cd FingerprintHub
git remote add upstream [email protected]:0x727/FingerprintHub.git
git fetch upstream
  • 配置你的github个人信息
git config --global user.name "$GITHUB_USERNAME"
git config --global user.email "$GITHUB_EMAIL"
git config --global github.user "$GITHUB_USERNAME"
  • 拉取所有分支的规则
git fetch --all
git fetch upstream
  • 不要直接在main分支上修改,例如我想添加一个thinkphp的指纹,创建一个新的分支并切换到新的分支。
git checkout -b thinkphp
  • 复制一份指纹规则文件,修改文件名和你想要提交的组件名一样,修改yaml文件里面的name字段为添加的组件名,添加或者修改规则。
  • 跟踪修改和提交Pull-Requests,合并指纹。
git add 你添加或者修改的文件名
git commit -m "添加的组件名或者你的描述"
git push origin thinkphp
  • 打开你Fork这个项目的地址,点击与上游合并,等待审核合并指纹。

谁在使用FingerprintHub

  • 如果你的开源工具中也使用了FingerprintHub,我感到非常的荣幸,欢迎补充列表,当项目有破坏性更新时可以及时通知到你。
ObserverWard
nuclei
nemo_go
afrog
ShuiZe

指纹反馈

  • 当前指纹库收集于互联网,虽然已经经过了人工整理,但是难免会有以下情况:
    • 出现误报,当指纹不够精确时会产生识别不准确的情况。
    • 组件重复,可能出现多个组件名称,但是都是同一个组件。
    • 识别不出组件,指纹规则覆盖不到。
  • 出现上面情况可以提交issues,可以附上演示URL地址,如果不方便演示可以提交首页的HTML源码,我们会人工修正指纹规则。

谢谢

  • 感谢您的关注和支持!

More Repositories

1

ShuiZe_0x727

信息收集自动化工具
Python
3,696
star
2

SpringBootExploit

项目是根据LandGrey/SpringBootVulExploit清单编写,目的hvv期间快速利用漏洞、降低漏洞利用门槛。
Java
1,801
star
3

ObserverWard

侦查守卫(ObserverWard)指纹识别工具Community web fingerprint identification tool
Rust
1,008
star
4

BypassPro

对权限绕过自动化bypass的burpsuite插件
Java
798
star
5

SchTask_0x727

创建隐藏计划任务,权限维持,Bypass AV
C#
510
star
6

SqlKnife_0x727

适合在命令行中使用的轻巧的SQL Server数据库安全检测工具
C++
415
star
7

ShuiYing_0x727

检测域环境内,域机器的本地管理组成员是否存在弱口令和通用口令,对域用户的权限分配以及域内委派查询
C++
331
star
8

Space_view

Space_view 是一款Hunter(鹰图平台)或者FOFA平台 资产展示的浏览器油猴插件
JavaScript
301
star
9

JNDIExploit

一款用于JNDI注入利用的工具,大量参考/引用了Rogue JNDI项目的代码,支持直接植入内存shell,并集成了常见的bypass 高版本JDK的方式,适用于与自动化工具配合使用。
Java
268
star
10

DropLabTools

一个垃圾利用工具,半自动发包机器
Java
227
star
11

MetasploitCoop_0x727

基于msf的后渗透协作平台
215
star
12

BugRepoter_0x727

BugRepoter_0x727(自动化编写报告平台)根据安全团队定制化协同管理项目安全,可快速查找历史漏洞,批量导出报告。
PHP
207
star
13

CloneX_0x727

进行克隆用户、添加用户等账户防护安全检测的轻巧工具
C++
171
star
14

AggressorScripts_0x727

Cobalt Strike AggressorScripts For Red Team
PowerShell
149
star
15

UserRegEnum_0x727

域内普通域用户权限查找域内所有计算机上登录的用户
C++
142
star
16

CloudSandbox

收集云沙箱上线C2的ip,如微X、奇XX、3X0、virustX等
120
star
17

MetasploitModules_0x727

Metasploit Modules Development
Ruby
70
star
18

MetasploitCoop-Backend

基于msf的后渗透协作平台 -- 后端部分
Python
38
star
19

n2shell

解决使用默认密码webshell的问题
Python
23
star
20

MetasploitCoop-Frontend

基于msf的后渗透协作平台 -- 前端部分
Vue
20
star
21

usefull-elevation-of-privilege

Usefull escalation of privilege Windows
3
star
22

.github

2
star