转载自:

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版本加密组件扩大类型列表反对组椭圆曲线明码格局
VersionCipherSuitesType List of ExtensionsSupported GroupElliptic 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版本加密组件扩大类型列表
TLSVersionCipherSuitesExtensions

也能算出相似的值
而后进行MD5计算即可