一、说明
CertWatcher 是一种使用 YAML 模板捕获和跟踪证书透明度日志的工具,使用 Go 语言编写,该工具有助于检测和分析网络钓鱼网站,旨在让安全专业人员和研究人员易于使用。
![图片[1]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全](https://wordpress-1251526205.file.myqcloud.com/uploads/2023/03/20230310164551725.png/5Zu+54mH5Y6L57yp)
二、安装
下面为安装步骤
git clone https://github.com/drfabiocastro/certwatcher
cd certwatcher
make
sudo make install
![图片[2]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全](https://wordpress-1251526205.file.myqcloud.com/uploads/2023/03/20230310154649390.png/d2F0ZXJtYXJr)
不过在这里需要特别说明一下,由于我的系统是 MacOS (Ventura v13.2),在 make 安装依赖的 Go 包后,执行 sudo make install 出错,提示往 /usr/bin
目录下进行写操作被拒绝,即使用了 sudo 也出现,我想到的只有 MacOS 的 SIP 安全机制,重启按 Command + R
进入安全模式将 SIP 关闭后问题依旧,还是无法进行写操作
![图片[3]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全](https://wordpress-1251526205.file.myqcloud.com/uploads/2023/03/20230310155705974.png/d2F0ZXJtYXJr)
查看项目下的 Makefile 文件,定位到 install,将 /usr/bin
修改为 /usr/local/bin
再重新执行,问题解决
![图片[4]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全](https://wordpress-1251526205.file.myqcloud.com/uploads/2023/03/20230310160143614.png/d2F0ZXJtYXJr)
![图片[5]-SSL/TLS 证书监测工具 — Certwatcher-零度非安全](https://wordpress-1251526205.file.myqcloud.com/uploads/2023/03/20230310160441729.png/d2F0ZXJtYXJr)
在 Certwatcher 中可使用自定义模板来显示证书信息,有一些来自社区的公共自定义模板:https://github.com/drfabiocastro/certwatcher-templates
三、模板
Certwatcher 基于 YAML 模板工作,模板定义了如何处理获得的证书,这让 certwatcher 具有可扩展性和灵活性。
这些模板用 YAML 编写,指定一种友好的可读格式来快速定义执行过程。
3.1 自定义模板
每个模板都有一个唯一的 ID,在输出写入期间使用该 ID 来指定输出行的模板名称,模板文件以 YAML 扩展名结尾,可以使用任何文本编辑器创建模板文件。
id: fas-keywords-malware
ID 不得包含空格,这样做是为了更容易进行输出解析。
3.2 Info
关于模板的下一个重要信息是 info 块,info 块提供 id
、name
、author
、description
、classification
,reference
。
info 块粟子
info:
id: fas-keywords-malware
name: Ads Malware Delivery
author: Fábio Castro
description: List of Ads Malware Delivery for keyword matching.
classification:
tags:
- ads
- windows
reference:
- https://github.com/certwatcher/certwatcher-templates
实际请求和相应的 matchers 放在信息块下面,它们执行分析的任务。
3.3 Keywords
Certwatcher 使用的 keywords 用于过滤 YAML 文件中证书日志返回的域对应的关键字,这些关键字可用于限制需要分析的日志量
# Keywords for domain matching.
keywords:
- acrobat
- adwcleaner
- airtable
- airvpn
- androidstudio
- anydesk
3.4 Matchers
每个 matcher 都是一个包含三个字段的字典:pattern
,type
和 description
。pattern 字段包含一个正则表达式,用于在 HTTP 请求正文中获取 pattern。type 字段指定在哪里寻找 pattern,例如请求的主体或请求的头部。description 字段提供了它对应 pattern 的描述。
matchers:
# Using regular expressions to search in the page body.
- pattern: "\\b(UA-167472923|UA-145098812)\\b"
type: body
description: "Matches UA tracking codes in the body of the request."
- pattern: "\\bGTM-[A-Z0-9]+\\b"
type: body
description: "Matches Google Tag Manager container IDs"
- pattern: "\\b(RC-|YCL)[0-9]+\\b"
type: body
description: "Matches Yahoo Search Ads conversion tracking IDs"
提供的 matchers 用于查找特定字符串,例如令牌、API 密钥、电子邮件地址、跟踪 ID、AdSense 发布商 ID、Google Ads 转换 ID 和 Google 跟踪代码管理器容器 ID。
3.5 顶级域 (TLDs)
顶级域 (Top Level Domains,TLD) 是互联网分层域名系统中的最高级别,这些 pattern 用于识别和匹配包含顶级域的 URL,通常用于网络钓鱼,这是一种欺骗用户提供密码、银行或信用卡信息等个人信息的做法。
tlds:
- pattern: "\\b\\w+\\.net|org|io|info|xyz|top|club|pw|tk|ga|ml|cf|gq|online|tech\\b"
type: url
description: "Matches common TLDs used for phishing"
- pattern: "\\b\\w+\\.link|bid|download|loan\\b"
type: url
description: "Matches common TLDs used for phishing"
3.6 模板的结构
- id:关键字集的唯一标识符;
- name:关键字集的名称;
- country:欺诈或网络钓鱼站点的位置,通常具有特定国家/地区的关键字;
- author:关键字集的作者或创建者的姓名;
- description:关键字集及其用途的描述;
- classification:有关关键字集分类的附加信息,包括标签和引用;
- reference:与关键字集相关的相关参考资料列表;
- keywords:与关键字集相关的关键字列表;
- matchers:用于识别钓鱼网站关键字的匹配类型列表,包括精确的单词匹配和 pattern 匹配以识别特定的表单字段。
- tlds:用于识别与关键字集相关的 URL 的顶级域模式列表,包括每个 pattern 的描述;
暂无评论内容