L-codes / Neo-reGeorg

Neo-reGeorg is a project that seeks to aggressively refactor reGeorg
GNU General Public License v3.0
2.84k stars 439 forks source link

新增基于哥斯拉的反序列化与序列化引擎 #60

Closed BeichenDream closed 1 year ago

BeichenDream commented 2 years ago

新增基于哥斯拉的反序列化与序列化引擎 新增服务器http转发忽略Https

Neo-reGeorg 不适合基于TLV(类型、值长度、值)的反序列化引擎 更适合基于哥斯拉的KTLV的反序列化引擎(Key,值类型,值长度,值)

image

image

L-codes commented 2 years ago

感谢PR, 我后续有空仔细看看实现是否可行 :)

BeichenDream commented 2 years ago

我提交的pr已经有具体的实现了

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: L @.> 发送时间: 2022年3月23日 23:12 收件人: L-codes/Neo-reGeorg @.> 抄送: beichen @.>, Author @.> 主题: Re: [L-codes/Neo-reGeorg] 新增基于哥斯拉的反序列化与序列化引擎 (PR #60)

感谢PR, 我后续仔细有空看看实现是否可行 :)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

L-codes commented 2 years ago

嗯 看到,考虑是否可行是需要考虑兼容性、可靠性是否存在特征等的情况

BeichenDream commented 2 years ago

可靠性: 我在jdk1.4-17经过了测试  php5.2-8经过了测试特征:我提交的pr只是一个反序列化器  可以将dict/map序列化成二进制数据  neoreg先前的协议头特征就不存在了  另外我这个只是一个序列化器不会增加任何特征  底层加密数据依旧是neoreg的encode_body方法

BeichenDream commented 2 years ago

有没有进展

L-codes commented 2 years ago

@BeichenDream 我还没测试和阅读代码,下周我看看;另外改动有点大,方便沟通我微信发给你女朋友了,加一下我吧 :)

L-codes commented 2 years ago

师傅貌似还没加我微信,我已仔细阅读了代码和简单测试了一下:

新增服务器http转发忽略Https

  1. 这个非常不错,之前一直没解决,但建议单独功能PR合并

新增基于哥斯拉的反序列化与序列化引擎,需要继续沟通,有以下一些问题

  1. 因为header key的类型只有字符串并为可见字符组成,那KTLV除了比TLV能让数据结构更简短还有什么其它优势吗?因为我觉得neo-regorg的简易型设计,既然要封装到二进制的body里面,采用字节表编码或使用二进制掩码的形式会更加短,如果KTLV只带来精短,这个设计方案不见得是好,可能还有其它的优势我暂未发现,可以说说?
  2. 把 Target 拆分成 host port 的作用是?
  3. php 是考量什么把 if(version_compare(PHP_VERSION,'5.4.0','>='))@http_response_code(HTTPCODE); 删了,这个是用作伪装响应码的
  4. php 中 set_time_limit(0) 是否存在兼容性问题?(我看PHP 4, PHP 5, PHP 7, PHP 8支持,但只是大版本,会不会大版本里面细的小版本不支持)

另外,师傅不应该把我 header 随机化删掉的,识别出是neoreg的流量的话,这样变形base64可以破解出部分的明文信息 并且针对这个修改过的版本,特征很明显,response是固长的 forward请求响应 20字节,connect请求响应 36字节等 且 python2 中测试 neoreg.py 不兼容,违背该项目需要兼容 python2/3 的目的,也需要修改一下代码

原本的特征是人工一眼识别,机器规则难以添加,AI深度学习可识别 这个修改后的版本是人工对比能识别,机器规则能识别,AI深度学习也可识别

合并KTLV的内容,需要进一步沟通改良设计 :)

BeichenDream commented 2 years ago

师傅貌似还没加我微信,我已仔细阅读了代码和简单测试了一下:

新增服务器http转发忽略Https

  1. 这个非常不错,之前一直没解决,但建议单独功能PR合并

新增基于哥斯拉的反序列化与序列化引擎,需要继续沟通,有以下一些问题

  1. 因为header key的类型只有字符串并为可见字符组成,那KTLV除了比TLV能让数据结构更简短还有什么其它优势吗?因为我觉得neo-regorg的简易型设计,既然要封装到二进制的body里面,采用字节表编码或使用二进制掩码的形式会更加短,如果KTLV只带来精短,这个设计方案不见得是好,可能还有其它的优势我暂未发现,可以说说?
  2. 把 Target 拆分成 host port 的作用是?
  3. php 是考量什么把 if(version_compare(PHP_VERSION,'5.4.0','>='))@http_response_code(HTTPCODE); 删了,这个是用作伪装响应码的
  4. php 中 set_time_limit(0) 是否存在兼容性问题?(我看PHP 4, PHP 5, PHP 7, PHP 8支持,但只是大版本,会不会大版本里面细的小版本不支持)

另外,师傅不应该把我 header 随机化删掉的,识别出是neoreg的流量的话,这样变形base64可以破解出部分的明文信息 并且针对这个修改过的版本,特征很明显,response是固长的 forward请求响应 20字节,connect请求响应 36字节等

原本的特征是人工一眼识别,机器规则难以添加,AI深度学习可识别 这个修改后的版本是人工对比能识别,机器规则能识别,AI深度学习也可识别

合并KTLV的内容,需要进一步沟通改良设计 :)

可否留下微信号

L-codes commented 2 years ago

我已经申请添加好友了,麻烦通过一下 L

L-codes commented 2 years ago

PR 停留了太久,我先将忽略 https 安全的问题加入到现在的代码中先 :) 感谢师傅提交的方法,C#版本忽略证书安全的方法发现并不通用,找不到 using System.Net.Security; 找不到库 https://github.com/L-codes/Neo-reGeorg/releases/tag/v3.8.1

image
BeichenDream commented 2 years ago

PR 停留了太久,我先将忽略 https 安全的问题加入到现在的代码中先 :) 感谢师傅提交的方法,C#版本忽略证书安全的方法发现并不通用,找不到 using System.Net.Security; 找不到库 https://github.com/L-codes/Neo-reGeorg/releases/tag/v3.8.1 image

稍等 我在两天内会上传剩余代码

BeichenDream commented 1 year ago

等tlv实现后重新pull