发现 trojan 挺搞笑的

57次阅读

共计 7501 个字符,预计需要花费 19 分钟才能阅读完成。

看有人发什么,从此再无被墙端口或墙 IP 困扰,就去看了下 trojan 协议的原理
挺搞笑的,感觉和小学生写的一样,密码不加盐不派生,直接哈希了就往外送
哈希结果不发送字节,直接发原本的 ASCII,直接用两倍的流量
还直接用回车来间隔协议位,还是 rn 的回车,简直不要太好玩
一看就是从来没接触过网络编程的,抄 socks5 也超不到精髓
还不如直接像 socks5 那样直接发原密码呢,有什么区别
还有,TLS 伪装,既然你这么担心指纹识别,还要费心调参数伪装
那干嘛不直接用原本的软件呢?nginx 应该是有 TLS 解密和 TCP 转发的功能的吧
直接处理你自己应用层的流量就好了啊,如果密码不对,自己返回 HTTP 响应就行了
或者转发到别的应用上,任选一个是套 TLS 的协议就行,甚至 RDP 也是套 TLS 的,选择不要太多
而且 nginx 你用的不爽,还有 haproxy 呢,还有各种负载均衡软件可以用来解密 TLS
甚至 CDN 回源都可以直接帮你解密好了 TLS,什么软件都不用装,只是要套个 ws 而已
说太多了,墙升级了不要怪我,我自己写协议自己奔放去了

上一篇:如何
下一篇:多小鸡做负载均衡

Sakuya 发表于 2022-12-23 19:18
看我最后一句话,早就写完在自己奔放了,不然也不敢在这吹牛逼

你们俩在这里争执个啥呢,真正的大佬都谦虚,想韦神一样低调于是无争的。高墙 10 来年,纵观像秋水这样,都是无私的像开源社区提交代码,不断优化社区代码,可以说早一批贡献 ss, v2ray,trojan 代码的人,不用管代码写的怎样,都值得 mjj 尊敬,希望 mjj 们学会尊敬自己,尊重他人,不要做半壶水叮当响,高调批评为开源社区做出贡献的人。希望版主看到此贴后讲本回复置顶,封禁此贴,谢谢 Trojan 伟大之处在于它的思想 (正如其名字一般),开创了全新的上网代理姿势。
你对比一下正常的 HTTP 请求,就会发现 Trojan 这么设计的意义了。取 Hex 是为了让数据像 HTTP 那样 Human-readable,以 CRLF 分割同样是为了能够跟 HTTP 采取同样的处理方式,不需要特地以 56 字节作为密码结束的标志。
作者无疑是懂网络编程的。。人家用 ASIO/C++11 全程 Callback 硬是撸出了第一版 Trojan,含金量不比用着现代语言特性 (指协程) 的小鬼要高么我来告诉你为什么 trojan 的密码必须要哈希而不能用明文或哈希的二进制。
trojan 必须要区分出解密后的请求是 HTTP 请求还是 trojan 请求,也就是密码不能以长得像 "GET / HTTP/1.1" 一样,哈希后的 HEX ASCII 字符串可以保证这点,哈希后的二进制和密码原文都不能。懂?
哈希是定长的,这个协议的逻辑根本就不是你说的“协议用回车间隔”。插入一个换行的原因就是为了强制和 HTTP 的请求行区分开,而 HTTP 协议规定了请求行后的换行是 rn 的。
以为自己看过个 trojan 的协议定义就觉得自己懂这个协议了?半桶水别晃荡晃荡了,多动点脑子吧。就这水平还有人在底下捧臭脚,这论坛水平也就这样了,笑。神仙放屁,不同凡响

breakmyheart 发表于 2022-12-23 20:46
@HOH

谢邀,我本不想说什么的,但是什么都不说你又不高兴
技术本来就是迭代的,没有批评检讨哪来更新换代
本来飜墙解决的是两个方面的问题,一个是安全,这倒不是大问题,随便整个简单的 sbox 都不一定能解出来,主要是你没这价值;另一个是伪装,永远都不可能完美伪装的,不是说外表伪装的有多好就不会被发现,而是你一蹦跶就暴露了你内在的行为 talk is cheap,show me the code.talk is cheap, show me the code. 大佬 求一个你写的一键脚本 我被墙怕了楼主把你的代码开源,让大家拜读一下,孰好孰坏,一目了然

dunce 发表于 2022-12-24 00:03
C++ 版的源码实现确实如你所说,不过这样恐怕会误伤网络环境不好的客户端 (虽然问题也不大
既然原作者都 …

网络不好不影响的,TLS record 本来就是一块一块地解密的路过 @吸精瓶你怎么看???????????????????前排已阅有技术的那些一键脚本却用空格敲,贼好笑是的 我只用 ssv2 Trojan vless 都没有 ss 好用有技术的发现 trojan 挺搞笑的mark 神仙放屁,不同凡响你行你上,你也去搞出一个上网代理协议看看能点评下 naiveproxy? 嗨呀,我一直都是 socks+ws+tls 呀难得的技术贴被你说的感觉我几台 trojan 小鸡生活在水深火热之中你是在说 trojan 还是 trojan-go 哦

solomon 发表于 2022-12-23 18:31
你行你上,你也去搞出一个上网代理协议看看

写得不好就应该质疑大佬 求一个你写的一键脚本 我被墙怕了我现在使用 trojan,求楼主的协议

bitman 发表于 2022-12-23 18:34
能点评下 naiveproxy?

想用这个 就是没后端和机场支持 …发现 trojan 挺搞笑的

cmfv 发表于 2022-12-23 18:19
是的 我只用 ssv2 Trojan vless 都没有 ss 好用

ss 是挺不错的,Clowwindy 肯定还是有点技术,不过没看到他发过技术原理,有些地方不知道为什么要这么设计,但直觉看起来就已经比较合理了,问题不大

solomon 发表于 2022-12-23 18:31
你行你上,你也去搞出一个上网代理协议看看

看我最后一句话,早就写完在自己奔放了,不然也不敢在这吹牛逼我猜楼主是用 go 写的

cmfv 发表于 2022-12-23 18:19
是的 我只用 ssv2 Trojan vless 都没有 ss 好用

ss 确实快,但是被墙了就没办法了

小学生 发表于 2022-12-23 19:20
我猜楼主是用 go 写的

py,简单直接,标准库很多东西都已经有了,我就写了不到 300 行,还方便我随时修改

bitman 发表于 2022-12-23 18:34
能点评下 naiveproxy?

他模仿的是服务器指纹?我觉得没人拿 chrome 当服务器吧
不知道客户端有没有指纹,如果有的话可能 chrome 当客户端可以 Trojan 伟大之处在于它的思想 (正如其名字一般),开创了全新的上网代理姿势。
你对比一下正常的 HTTP 请求,就会发现 Trojan 这么设计的意义了。取 Hex 是为了让数据像 HTTP 那样 Human-readable,以 CRLF 分割同样是为了能够跟 HTTP 采取同样的处理方式,不需要特地以 56 字节作为密码结束的标志。
作者无疑是懂网络编程的。。人家用 ASIO/C++11 全程 Callback 硬是撸出了第一版 Trojan,含金量不比用着现代语言特性 (指协程) 的小鬼要高么 Trojan 早就没更新了,作者好像已经润到美国加州了
好久之前的作品跟现在的对比肯定是不一样的发现 trojan 挺搞笑的

dunce 发表于 2022-12-23 19:45
Trojan 伟大之处在于它的思想 (正如其名字一般),开创了全新的上网代理姿势。
你对比一下正常的 HTTP 请求,…

Human-readable 为啥不直接明文,哈希为啥不 PBKDF2,感觉东不成西不就的
不用现代语言特性,是 OI 做题家吗,await 只配弱者用是吧大佬 求一个你写的一键脚本

Sakuya 发表于 2022-12-23 19:18
看我最后一句话,早就写完在自己奔放了,不然也不敢在这吹牛逼

你们俩在这里争执个啥呢,真正的大佬都谦虚,想韦神一样低调于是无争的。高墙 10 来年,纵观像秋水这样,都是无私的像开源社区提交代码,不断优化社区代码,可以说早一批贡献 ss, v2ray,trojan 代码的人,不用管代码写的怎样,都值得 mjj 尊敬,希望 mjj 们学会尊敬自己,尊重他人,不要做半壶水叮当响,高调批评为开源社区做出贡献的人。希望版主看到此贴后讲本回复置顶,封禁此贴,谢谢 @HOH

Sakuya 发表于 2022-12-23 20:26
Human-readable 为啥不直接明文,哈希为啥不 PBKDF2,感觉东不成西不就的
不用现代语言特性,是 OI 做题家吗 …

密码明文中可能包含 CRLF;即便是在 TLS 加密下,原数据是否 Human-readable 或许也能够被区分
自用的话是没那么多讲究,你把数据简单 XOR 一下都能跑这点小事就不用向坛友报告了破事水,快点贡献一个一键脚本来,我就给你点赞。

Sakuya 发表于 2022-12-23 19:18
看我最后一句话,早就写完在自己奔放了,不然也不敢在这吹牛逼

能不能分享一下你的奔放方法,现在已经被墙一堆小鸡了

breakmyheart 发表于 2022-12-23 20:46
@HOH

谢邀,我本不想说什么的,但是什么都不说你又不高兴
技术本来就是迭代的,没有批评检讨哪来更新换代
本来飜墙解决的是两个方面的问题,一个是安全,这倒不是大问题,随便整个简单的 sbox 都不一定能解出来,主要是你没这价值;另一个是伪装,永远都不可能完美伪装的,不是说外表伪装的有多好就不会被发现,而是你一蹦跶就暴露了你内在的行为大佬,TROJAN 毒害我好几年了,现在还在毒害我。。。。。。
啥也别说了,我等你的新武器出来。我来告诉你为什么 trojan 的密码必须要哈希而不能用明文或哈希的二进制。
trojan 必须要区分出解密后的请求是 HTTP 请求还是 trojan 请求,也就是密码不能以长得像 "GET / HTTP/1.1" 一样,哈希后的 HEX ASCII 字符串可以保证这点,哈希后的二进制和密码原文都不能。懂?
哈希是定长的,这个协议的逻辑根本就不是你说的“协议用回车间隔”。插入一个换行的原因就是为了强制和 HTTP 的请求行区分开,而 HTTP 协议规定了请求行后的换行是 rn 的。
以为自己看过个 trojan 的协议定义就觉得自己懂这个协议了?半桶水别晃荡晃荡了,多动点脑子吧。就这水平还有人在底下捧臭脚,这论坛水平也就这样了,笑。大佬写一个稳定不被墙的,我绝对用终于看到技术之争了。
可惜官方没办法下场对线。讲了要和 HTTP 的请求行区分开来,怎么还问“没空格和 HTTP 不像”。
简单点说,这种设计的意义就是:
保证和 HTTP 一样都有一个以 rn 为分割的“第一行”,而且仅通过这个“第一行”的内容就可以区分出是 trojan 的第一行或者是 HTTP 的第一行
这都看不懂就算了,真的。你像个小丑

nlzy 发表于 2022-12-23 22:48
讲了要和 HTTP 的请求行区分开来,怎么还问“没空格和 HTTP 不像”。
简单点说,这种设计的意义就是:

你还要看“第一行”一整行的内容啊,我学 socks5 一样,第一个字节 x05 就能分辨出来了不好吗
这都不懂就算了,真的。

isabella 发表于 2022-12-23 22:49
你像个小丑

大哥你来指点一二,承接开发吗,叫你写一个你能开发的出来吗

Sakuya 发表于 2022-12-23 23:08
你还要看“第一行”一整行的内容啊,我学 socks5 一样,第一个字节 x05 就能分辨出来了不好吗
这都不懂就算 …

你这种只要主动探测一下就暴露了。。你自己用的话没人管,也没人知道

dunce 发表于 2022-12-23 23:17
你这种只要主动探测一下就暴露了。。你自己用的话没人管,也没人知道

密码不对我也返回 HTTP 呗,怎么就能暴露

Sakuya 发表于 2022-12-23 23:09
大哥你来指点一二,承接开发吗,叫你写一个你能开发的出来吗

我一直都用的是以前学 rust 时实现的 trojan。我不需要指点你,你的帖子已经充分暴露了你的智商。

isabella 发表于 2022-12-23 23:23
我一直都用的是以前学 rust 时实现的 trojan。我不需要指点你,你的帖子已经充分暴露了你的智商。…

牛的,最弱技术,祝你也奔放

Sakuya 发表于 2022-12-23 23:08
你还要看“第一行”一整行的内容啊,我学 socks5 一样,第一个字节 x05 就能分辨出来了不好吗
这都不懂就算 …

别对你的帖子避重就轻,我就问你这么设计它有什么问题?
现在是你发帖说,trojan 协议发密码的 hash 很搞笑,自己就丝毫没有想过(或者是没有能力想到)发 hash 的必要性,我给你点出来了,你死抠这个 rn 是不是在打滚?换句话说,发 rn 是不必要的,发 x05 就是必要的了?
别人发个 rn 还能保证第一行能打印出来方便调试的优点,发 x05 连这个优点都没有。两个都是设计失败,看来还是你的设计更失败一点。

dunce 发表于 2022-12-23 23:17
你这种只要主动探测一下就暴露了。。你自己用的话没人管,也没人知道

我想了一下你们是啥意思,刚拿 baidu.com 测了下
在第一个 rn 前,无论发什么内容,都不会断开连接
所以 trojan 的意思是,readuntil(n)
– 正常 HTTP 请求:GET / HTTP/1.1rn:fallback
– trojan 但是密码不正确:passwordrn:fallback
– ASCII 密码:保证二进制内容不凑巧等于 正常的 HTTP 请求
那我假设修改一下,x05+ 二进制密码 +rn,一样密码不对 fallback
这样会被探测识别?

nlzy 发表于 2022-12-23 23:33
别对你的帖子避重就轻,我就问你这么设计它有什么问题?
现在是你发帖说,trojan 协议发密码的 hash 很 …

确实没想过,懂点密码学的都知道不能直接哈希密码,官方也没个文档解释,这谁第一次见就能猜到?
我还看到个别人发的 issue,可以说明很多人对协议设计都是不懂的:https://github.com/trojan- 高墙 /trojan/issues/661

Sakuya 发表于 2022-12-23 23:35
我想了一下你们是啥意思,刚拿 baidu.com 测了下
在第一个 rn 前,无论发什么内容,都不会断开连接

精髓就在于 CRLF。这样服务端就可以像处理 HTTP 那样正大光明地等到 CRLF 出现,然后从中取出密码。你用自定的 header + passwd 的话我就构造个 CRLF 结尾的请求来探测你,你不得不马上响应。

dunce 发表于 2022-12-23 23:43
精髓就在于 CRLF。这样服务端就可以像处理 HTTP 那样正大光明地等到 CRLF 出现,然后从中取出密码。你用自定的 …

不行的。。。。不能这么设计的,这么设计会暴露出“服务器在等待客户端发送 n”这个信息,很致命的。。。trojan 的代码没有那么 naive。。。。
trojan 的工作流程是,如果第一个 TLS 数据包解密出的数据长度小于 hex(sha224(password)) 就直接 fallback,不会再去等待下一个 TLS 数据包了。羡慕楼主有这么知识发现 trojan 挺搞笑的

nlzy 发表于 2022-12-23 23:47
不行的。。。。不能这么设计的,这么设计会暴露出“服务器在等待客户端发送 n”这个信息,很致命的。。。…

因为 trojan 后面套的 fallback HTTP server 可能是那种会不等待 n 的 HTTP server(比如 nginx)

dunce 发表于 2022-12-23 23:43
精髓就在于 CRLF。这样服务端就可以像处理 HTTP 那样正大光明地等到 CRLF 出现,然后从中取出密码。你用自定的 …

行,那我没啥说的,就是模仿协议
那为啥 Trojan Request 后面还要一个 CRLF 呢,Request 最后的 port 是定长的,发完不是就可以直接发 payload 了吗看到这么多人喷你我也就放心了。

nlzy 发表于 2022-12-23 23:48
因为 trojan 后面套的 fallback HTTP server 可能是那种会不等待 n 的 HTTP server(比如 nginx)…

那你讲讲 trojan 具体是怎么识别的?球球你们别吵了,有这力气争回车符号不如去翻翻 RFC 文档吧

Sakuya 发表于 2022-12-23 23:51
那你讲讲 trojan 具体是怎么识别的?

#56 编辑了

nlzy 发表于 2022-12-23 23:47
不行的。。。。不能这么设计的,这么设计会暴露出“服务器在等待客户端发送 n”这个信息,很致命的。。。…

C++ 版的源码实现确实如你所说,不过这样恐怕会误伤网络环境不好的客户端 (虽然问题也不大
既然原作者都这样实现了,那我的理解可能有偏差

cmfv 发表于 2022-12-23 18:19
是的 我只用 ssv2 Trojan vless 都没有 ss 好用

Ss 怎么抗封求解。都说 ss 已经破解能看你流量是什么。。。

nlzy 发表于 2022-12-23 23:53
#56 编辑了

那好像没用上 rn 的好处啊,还是我又没想到?这不是就等于 read(56)吗,都没读到 rn

dunce 发表于 2022-12-24 00:03
C++ 版的源码实现确实如你所说,不过这样恐怕会误伤网络环境不好的客户端 (虽然问题也不大
既然原作者都 …

网络不好不影响的,TLS record 本来就是一块一块地解密的

nlzy 发表于 2022-12-24 00:06
网络不好不影响的,TLS record 本来就是一块一块地解密的

那我发 socks5 请求和 trojan 有何区别?
首包 不完整的 s5 请求 =fallback,完整但密码不正确的 =fallback,搞不清楚收了啥协议的 =fallback

Sakuya 发表于 2022-12-24 00:04
那好像没用上 rn 的好处啊,还是我又没想到?这不是就等于 read(56)吗,都没读到 rn …

我也觉得这个让 trojan 和 HTTP 一样都有个能打印的第一行的特性没太大用

nlzy 发表于 2022-12-24 00:11
我也觉得这个让 trojan 和 HTTP 一样都有个能打印的第一行的特性没太大用

看来是我无端联想了,,
考虑到 TLS Record 的因素,服务端只要读入一次就必然能区分出真正的客户端了

nlzy 发表于 2022-12-24 00:11
我也觉得这个让 trojan 和 HTTP 一样都有个能打印的第一行的特性没太大用

说了半天,个人觉得不如直接上 HTTP 伪装,payload 直接塞 body 里,简单直接
而且够 Human-readable,和你看其他真正的 HTTP 请求一样
那说了半天不就是 https CONNECT 代理吗楼主把你的代码开源,让大家拜读一下,孰好孰坏,一目了然 talk is cheap,show me the code. 说啥没用,写一个比 TROJAN 牛的让大家用几位大佬上代码吧,star 已准备好发现 trojan 挺搞笑的you can you up, no bb
shutup and show your code.talk is cheap, show me the code.

zymsdf 发表于 2022-12-24 00:04
Ss 怎么抗封求解。都说 ss 已经破解能看你流量是什么。。。

我用的 IPLC 一直 ss 裸奔技术我不懂,楼主的头像让我想起了破娃酱大佬写一个一定用

cmfv 发表于 2022-12-24 13:15
我用的 IPLC 一直 ss 裸奔

IPLC 已经跳出决赛圈了。

正文完
 0