关于逆向工程: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计算即可

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理