乐趣区

关于逆向工程:JS逆向-02

转载自:

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 计算即可

退出移动版