转载自:
https://evilrecluse.top/post/…
前置常识:
Https-TLS 相干
在线测试 JA3: https://ja3er.com/json
github 页:https://github.com/salesforce…
老外的领导:https://github.com/yolossn/JA…
信息
JA3 特征值是依据 TLS 的 Client Hello 报文生成的,对于同一台主机对服务器的拜访而言,这个值会保持一致
相似的,JA3S 的特征值是依据 TLS 的 Server Hello 报文生成的,对于同一台服务器对同一台主机的响应而言,这个值会保持一致
利用的策略绝对简略
服务器能够利用 JA3 值 用来标识客户端
客户端能够利用 JA3S 值 用来标识服务器
利用同主机 JA3 值 不变的特点来限度并发拜访
利用同 服务器 & 主机 JA3S 值不变的特点,避免浸透 / 坑骗
流程
获取数据
关上 wireshark,捕捉数据包
拜访 在线测试 JA3,失去测试值
{
"ja3_hash":"b32309a26951912be7dba376398abc3b",
"ja3":"771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-21,29-23-24,0",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
}
这里会拿到两个值 JA3 和 JA3_Hash
JA3 收集 Client Hello 报文 特色信息
第一次握手中,客户端会发送 Client Hello 报文
JA3 会收集 Client Hello 报文的以下字段的十进制字节值
TLS 版本 | 加密组件 | 扩大类型列表 | 反对组 | 椭圆曲线明码格局 |
---|---|---|---|---|
Version | CipherSuites | Type List of Extensions | Supported Group | Elliptic Curve Formats |
将这些值串联在一起。同一字段中的各值用 - 来分隔,不同字段用, 来分隔
最终组合成 JA3 值:
771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-21,29-23-24,0
与在测试网页上获取的信息统一
JA3S MD5-Hash-32 收集 Server Hello 报文 信息
第二次握手中,客户端会发送 Server Hello 报文
和第一步相似
JA3 会收集 Server Hello 报文的以下字段的十进制字节值
TLS 版本 | 加密组件 | 扩大类型列表 |
---|---|---|
TLSVersion | CipherSuites | Extensions |
也能算出相似的值
而后进行 MD5 计算即可