Trojan協議流量分析

原理解析

Trojan原理
如圖所示,Trojan工作在443端口,處理來自外界的HTTPS請求,如果是合法的Trojan請求,那麼爲該請求提供服務,否則就將該流量轉發給web。服務器Nginx,由Nginx爲其提供服務。基於這個工作工程可以知道,Trojan的一切表現均與Nginx一致,不會引入額外特徵,從而達到無法識別的效果。當然,爲了防止惡意探測,我們需要將80端口的流量全部重定向到443端口,並且服務器只暴露80和443端口,這樣可以使得服務器與常見的Web服務器表現一致。

當Trojan客戶端連接到服務器時,它首先執行真正的TLS握手。如果握手成功,則所有後續流量都將受到TLS的保護;

實例:

本機IP: 192.168.31.176

服務器IP: 91.220.202.97
TCP與TLS握手
TCP握手包序號:73,74,75

TLS握手:76,77,78,79,80,81,82,83

然後,客戶端發送以下結構(TLS加密之後的):

+-----------------------+---------+----------------+---------+----------+
| hex(SHA224(password)) |  CRLF   | Trojan Request |  CRLF   | Payload  |
+-----------------------+---------+----------------+---------+----------+
|          56           | X'0D0A' |    Variable    | X'0D0A' | Variable |
+-----------------------+---------+----------------+---------+----------+

當Trojan 請求是類似於如下SOCKS5的請求:

+-----+------+----------+----------+
| CMD | ATYP | DST.ADDR | DST.PORT |
+-----+------+----------+----------+
|  1  |  1   | Variable |    2     |
+-----+------+----------+----------+

o  CMD
        o  CONNECT X'01'
        o  UDP :X'03'
o  ATYP 
        o  IP V4 : X'01'
        o  域名: X'03'
        o  IP V6 : X'04'
o  DST.ADDR 所需的目標地址
o  DST.PORT 目標端口

UDP模式

+------+----------+----------+--------+---------+----------+
| ATYP | DST.ADDR | DST.PORT | Length |  CRLF   | Payload  |
+------+----------+----------+--------+---------+----------+
|  1   | Variable |    2     |   2    | X'0D0A' | Variable |
+------+----------+----------+--------+---------+----------+

服務器收到第一個數據包時,將檢查哈希密碼是否正確以及Trojan請求是否有效。如果不是,則將該協議視爲非Trojan請求。

請注意,第一個數據包將附加有效負載。這避免了長度模式檢測,並可能減少要發送的數據包數量。

如果請求有效,則Trojan服務器將連接到DST.ADDR和DST.PORT字段指示的目標服務器,並在服務器和Trojan客戶端之間打開通道。

因爲通常將Trojan服務器假定爲HTTPS服務器,所以偵聽套接字始終是TLS套接字。在執行TLS握手之後,如果Trojan服務器確定流量爲非Trojan協議,則會在服務器端點(默認爲本地HTTP服務器127.0.0.1:80)到客戶端之間打開一條連接,因此服務器端點控制解密的TLS流量。

所有沒有正確結構和密碼的連接都將重定向到預設的網址,因此,如果連接了鏈接,則Trojan服務器的行爲與該網址完全相同(默認爲HTTP)。

反檢測

由於流量受TLS保護(使用有效證書是用戶的責任),因此,如果您訪問的是HTTP站點,則流量與HTTPS相同(TLS握手後只有一個RTT);如果您不訪問HTTP站點,則流量看起來與保持活動的HTTPS或WebSocket相同。因此,Trojan還可以繞過ISP QoS限制。

Trojan標本

長度

包長度

IP

IP
實例

搭建方式:

點擊進入

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章