JARM 指纹识别

JARM 指纹识别

介绍:

JARM 是一个活动的传输层安全 (TLS)服务器指纹识别工具。

使用 JARM 进行扫描提供了识别和分组 Internet 上的恶意服务器的能力。

[JARM tools](https 😕/github.com/salesforce/jarm)

JARM 指纹可用于:

  • 快速验证组中的所有服务器是否具有相同的 TLS 配置。
  • 通过配置对 Internet 上的不同服务器进行分组,例如,识别服务器可能属于 Google、Salesforce 和 Apple。
  • 识别默认应用程序或基础架构。
  • 识别 Internet 上的恶意软件命令和控制基础设施以及其他恶意服务器。

本文中,您将了解到:

  • JARM 是如何工作的。
  • 如何使用 JARM 来识别恶意服务器。
  • 从被动网络安全黑名单转变为主动网络安全黑名单。
  • 如何将 JARM 部署到您的检测和响应管道中。
  • JARM 如何用于配置验证和应用程序识别。

JARM 的工作原理

[zhy@zhy jarm]$ python jarm.py -V
JARM version 1.0
[zhy@zhy jarm]$ python jarm.py -h
usage: jarm.py [-h] [-i INPUT] [-p PORT] [-v] [-V] [-o OUTPUT] [-j] [-P PROXY] [scan]

Enter an IP address and port to scan.

positional arguments:
  scan                  Enter an IP or domain to scan.

options:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        Provide a list of IP addresses or domains to scan, one domain or IP address per line. Optional:
                        Specify port to scan with comma separation (e.g. 8.8.4.4,853).
  -p PORT, --port PORT  Enter a port to scan (default 443).
  -v, --verbose         Verbose mode: displays the JARM results before being hashed.
  -V, --version         Print out version and exit.
  -o OUTPUT, --output OUTPUT
                        Provide a filename to output/append results to a CSV file.
  -j, --json            Output ndjson (either to file or stdout; overrides --output defaults to CSV)
  -P PROXY, --proxy PROXY
                        To use a SOCKS5 proxy, provide address:port.

在学习 JARM 的工作原理之前,了解 TLS 的工作原理很重要。TLS及其前身SSL用于加密常见应用程序(如Internet浏览器)的通信,以确保数据安全,也用于加密恶意软件,因此它可以进行隐藏在噪声中。中要启动 TLS 会话,客户端将在 TCP 三次握手之后发送 TLS Client Hello 消息。此数据包及其生成方式取决于构建客户端应用程序时使用的包和方法。服务器如果接受 TLS 连接,将使用 TLS Server Hello 数据包进行响应。
在这里插入图片描述

TLS 服务器根据在 TLS 客户端 Hello 数据包中接收到的详细信息制定其服务器 Hello 数据包。根据应用程序或服务器的构建方式,服务器回复 Hello 的方式可能会有所不同,包括:

  • 操作系统
  • 操作系统版本
  • 使用的库
  • 使用的这些库的版本
  • 调用库的顺序
  • 自定义配置

所有这些因素导致每个 TLS 服务器以独特的方式响应。各种因素的组合使得不同组织部署的服务器不太可能有相同的响应。

下面是在Wireshark中查看的 TLS 客户端 Hello 和服务器 Hello 的示例。

在这里插入图片描述

在这里插入图片描述

JARM 通过主动向目标 TLS 服务器发送 10 个 TLS 客户端 Hello 数据包并捕获 TLS 服务器 Hello 响应的特定属性来工作。然后以特定方式对聚合的 TLS 服务器响应进行哈希处理以生成 JARM 指纹。

JARM 中的 10 个 TLS 客户端 Hello 数据包经过特殊设计,可在 TLS 服务器中提取唯一响应。JARM 以不同的顺序发送不同的 TLS 版本、密码和扩展,以收集唯一的响应。服务器是否支持 TLS 1.3?它会与 1.2 密码协商 TLS 1.3 吗?如果我们将密码从最弱到最强排序,它会选择哪个密码?这些是 JARM 本质上要求服务器提取最独特的响应的不寻常问题的类型。然后对 10 个响应进行哈希处理以生成 JARM 指纹。

[zhy@zhy-f0 jarm]$ python jarm.py -v baidu.com
Domain: baidu.com
Resolved IP: 220.181.38.251
JARM: 29d29d00029d29d1fc29d29d29d29d881e59db99b9f67f908be168829ecef9
Scan 1: c02f|0303|http/1.1|ff01-000b-0023-0010,
Scan 2: c02f|0303|http/1.1|ff01-000b-0023-0010,
Scan 3: |||,
Scan 4: c02f|0303||ff01-000b-0023,
Scan 5: c02f|0303||ff01-000b-0023,
Scan 6: c011|0302|http/1.1|ff01-000b-0023-0010,
Scan 7: c02f|0303|http/1.1|ff01-000b-0023-0010,
Scan 8: c02f|0303|http/1.1|ff01-000b-0023-0010,
Scan 9: c02f|0303|http/1.1|ff01-000b-0023-0010,
Scan 10: c02f|0303|http/1.1|ff01-000b-0023-0010

在这里插入图片描述在这里插入图片描述

在收到每个 TLS 服务器问候消息后,JARM 会使用 FIN 优雅地关闭连接,以免套接字打开。

JARM 示例:

DomainJARM
salesforce.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
force.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
google.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
gmail.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
facebook.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
instagram.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
oculus.com29d29d20d29d29d21c41d43d00041d741011a7be03d7498e0df05581db08a9

需要注意的是,JARM 是一种高性能指纹功能,不应将其视为或与安全加密功能混淆。

如何使用 JARM 识别恶意服务器

https://wangzhan.360.cn/296.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

f0_f0_f0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值