ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ°ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²Π΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ RedTeam ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠ°ΠΌ Π² ΠΈΡ Π½Π΅Π»Π΅Π³ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π½Π°ΡΠ° ΡΠ΅Π»Ρ β Π½Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ (Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π±Π°Π½Π°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ°ΡΡΠΉ Π΄ΠΎΠ±ΡΡΠΉ VPN). ΠΠ»Π°Π³ΠΎ ΡΡΠΎ VPN-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π΅Π»ΠΈΠΊΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, Π½Π° Π»ΡΠ±ΠΎΠΉ Π²ΠΊΡΡ, ΡΠ²Π΅Ρ ΠΈ Π±ΡΠ΄ΠΆΠ΅Ρ.
ΠΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³Π° Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² RedTeam, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Cobalt Strike, Empire ΠΈ Ρ.Π΄., ΠΈ Π΄Π°ΡΡ ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΌΠΈΠΌΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΎΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
Π ΠΏΡΠΎΡΠ»ΡΠΉ ΡΠ°Π· ΠΌΡ Π²Π½Π΅Π΄ΡΠΈΠ»ΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ eSNI Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ OpenSSL ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π΅ Π² Π·Π½Π°ΠΊΠΎΠΌΠΎΠΉ Π²ΡΠ΅ΠΌ ΡΡΠΈΠ»ΠΈΡΠ΅ curl. ΠΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΡΡΠ»ΠΎΠΌ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ, ΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅ΡΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅ Ρ
ΠΎΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² ΡΠ·ΡΠΊΠ°Ρ
Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π±Π΅Π³Π»ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΠΏΡΠΎΡΡΠΎΡΠ°ΠΌ ΡΠ΅ΡΠΈ Π½Π°Ρ ΡΠ°Π·ΠΎΡΠ°ΡΠΎΠ²ΡΠ²Π°Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° eSNI ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² GOLANG. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ±ΠΎΡ Ρ Π½Π°Ρ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ: Π»ΠΈΠ±ΠΎ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ Π½Π° ΡΠΈΡΡΠΎΠΌ Π‘ ΠΈΠ»ΠΈ Π‘++ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΏΠ°ΡΡΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ OpenSSL, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΎΡΠΊ GOLANG ΠΎΡ CloudFlare ΠΈ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΡΡΠ΄Π°. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ β ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ eSNI Π΄Π»Ρ ΠΏΠΈΡΠΎΠ½Π°. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Python ΡΠ°ΠΊ ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ OpenSSL Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ https. ΠΠΎ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΌΡ ΠΎΡΡΠ°Π²ΠΈΠΌ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ Π΅ΡΠ΅, Π° ΡΠ°ΠΌΠΈ Π±ΡΠ΄Π΅ΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π½Π° Π³ΠΎΠ»Π°Π½Π³Π΅, ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠΎ Π½Π°Ρ Π»ΡΠ±ΠΈΠΌΡΠΉ Cobalt Strike ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠΌΠ΅Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ°Π½Π°Π»ΠΎΠΌ ΡΠ²ΡΠ·ΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ (External C2 channel) β ΠΎΠ± ΡΡΠΎΠΌ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ.
Try Harderβ¦
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° Go ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² β Π½Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π»Ρ ΠΏΠΈΠ²ΠΎΡΠΈΠ½Π³Π° Π²Π½ΡΡΡΡ ΡΠ΅ΡΠΈ β ΡΡΠ½Π΅Π»Π»Π΅Ρ
ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΠΎ ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ rsockstun ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ SSL ΠΊΠ°Π½Π°Π»Π° ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ°. Π, ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» https Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ β ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΡΠΎΡ-ΠΎΡΠ²Π΅Ρ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½ΠΎΠ²ΡΠΉ http-Π·Π°ΠΏΡΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π½ΠΎΠ²ΠΎΠ³ΠΎ tcp-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠ°ΠΊΠΎΠΉ ΡΡ Π΅ΠΌΡ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΏΠΎΠΊΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΏΡΠΈΡΠ»Π΅Ρ Π½ΠΎΠ²ΡΠΉ http-Π·Π°ΠΏΡΠΎΡ. ΠΠΎ, ΠΊ ΡΡΠ°ΡΡΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· http ΠΏΡΠΎΡΠΎΠΊΠΎΠ» (Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² ΠΌΡ ΠΆΠ΅ ΡΠΌΡΠ΄ΡΡΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ ΡΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π°ΡΠΈ Π»ΡΠ±ΠΈΠΌΡΠ΅ ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΈ ΡΠ»ΡΡΠ°ΡΡ ΠΌΡΠ·ΡΠΊΡ Ρ ΠΏΠΎΡΡΠ°Π»ΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π½Π° https, Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡΠ΄ΠΈΠΎ β ΡΡΠΎ Π½Π΅ ΡΡΠΎ ΠΈΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ). ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄Π»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ tcp-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° http ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠΎΠ² (WebSockets), ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ.
ΠΠ° Π½Π°ΡΠ΅ Π²Π΅Π·Π΅Π½ΠΈΠ΅ (ΡΡΠ°-ΡΡΠ°!!!), ΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ ΡΠ°ΡΠΈΡΠ½ΡΠ΅ ΠΏΠ»Π°Π½Ρ CloudFlare ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ eSNI. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π΅Π΅ ΡΠΎ ΠΌΡ ΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΠΈΡΡ Π½Π°Ρ ΡΡΠ½Π½Π΅Π»Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³ ΠΈ ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΠΎΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ DPI.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ WebSockets
ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΌΡ Π²ΠΊΡΠ°ΡΡΠ΅ ΠΈ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ°Ρ , ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΠΈΠΌΠ΅Π»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, Ρ ΡΠ΅ΠΌ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Ρ http-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠΎΠΊΠ΅Ρ, Π½Π΅ ΡΠ°Π·ΡΡΠ²Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ tcp-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ Ρ ΠΎΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅Π±-ΡΠΎΠΊΠ΅Ρ, ΠΎΠ½ Π² ΡΠ²ΠΎΠ΅ΠΌ http-Π·Π°ΠΏΡΠΎΡΠ΅ Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ http-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². ΠΠ²Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° β Connection: Upgrade ΠΈ Upgrade: websocket. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅ΡΡΠΈΡ websocket ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° (Sec-Websockset-Version: 13) ΠΈ Π½Π΅ΡΡΠΎ Π²ΡΠΎΠ΄Π΅ base64 ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ° (Sec-WebSocket-Key: DAGDJSiREI3+KjDfwxm1FA==). Π‘Π΅ΡΠ²Π΅Ρ Π΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ http-ΠΊΠΎΠ΄ΠΎΠΌ 101 Switching Protocols ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Connection, Upgrade ΠΈ Sec-WebSocket-Accept. ΠΠ°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΡΠΊΡΠΈΠ½Π΅ Π½ΠΈΠΆΠ΅:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ WebSocket ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ. ΠΡΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΊ ΠΈ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄ΡΡ ΡΠ½Π°Π±ΠΆΠ°ΡΡΡΡ Π½Π΅ http, Π° WebSocket Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ (ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ Π±Π°ΠΉΡΠ° 0x82). Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΆΠ΄Π°ΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅, Ρ.ΠΊ. tcp-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π·ΡΡΠ²Π°Π΅ΡΡΡ.
Π Π³ΠΎΠ»Π°Π½Π³Π΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΈΠ· Π½ΠΈΡ
ΡΡΠΎ
Π ΠΊΠΎΠ΄Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° rsockstun Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ·ΠΎΠ²Ρ net.dial ΠΈΠ»ΠΈ tls.dial Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²ΡΠ·ΠΎΠ²Ρ WebSocket:
ΠΡ Ρ
ΠΎΡΠΈΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π· ΠΏΡΡΠΌΠΎΠ΅ ssl-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ» WebSockset. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ func connectForWsSocks(address string, proxy string) error {β¦} ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ connectForSocks() ΠΈ Π±ΡΠ΄Π΅ΠΌ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π±ΡΠ΄Π΅Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ws: ΠΈΠ»ΠΈ wss: (Π² ΡΠ»ΡΡΠ°Π΅ Ρ Secure WebSocket).
ΠΠ»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ° ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ. Π Π½Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° http ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ http-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (ΡΡΠ½ΠΊΡΠΈΡ wsHandler):
Π Π²ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎ ΠΏΠ°ΡΠΎΠ»Ρ, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ yamux-ΡΠ΅ΡΡΠΈΠΈ) ΠΌΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ WebSocket:
ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ:
./rsockstun βlisten ws:127.0.0.1:8080 βpass P@ssw0rd
Π Π·Π°ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠ°ΡΡΡ:
./rsockstun -connect ws:127.0.0.1:8080 βpass P@ssw0rd
Π ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Ρ ΠΎΡΡΠ΅:
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³Ρ
Π‘ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΌΡ Π²ΡΠΎΠ΄Π΅ Π±Ρ ΠΊΠ°ΠΊ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ eSNI ΠΈ Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³Ρ. ΠΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ DoH ΠΈ eSNI Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π³ΠΎΠ»Π°Π½Π³Π° ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ Π΅Π΅ ΠΊ ΡΠ΅Π±Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π΅ΠΌ ΠΈ ΡΠ°Π·ΠΆΠΈΠΌΠ°Π΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ zip:
git clone -b pwu/esni https://github.com/cloudflare/tls-tris.git
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ GOROOT, Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΎΡ ΡΡΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ ΡΠ΅Π±ΡΡΠ° ΠΈΠ· CloudFlare ΠΏΡΠΈΠ³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΡΠΈΠΏΡ β _dev/go.sh. ΠΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π΅Π³ΠΎ. Π‘ΠΊΡΠΈΠΏΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ makefile Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌΠΈ. ΠΠ»Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ° β ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³Π»ΡΠ½ΡΡΡ Π²Π½ΡΡΡΡ makefile Π·Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΡΠΌΠΈ.
ΠΠΎΡΠ»Π΅ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΈΠΏΡΠ°, ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ GOROOT Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡΠΎΠΌ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
GOROOT="/opt/tls-tris/_dev/GOROOT/linux_amd64" go build β¦.
ΠΠ°Π»Π΅Π΅, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² ΡΡΠ½Π½Π΅Π»Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ eSNI ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ Π±ΡΠ΄ΡΡ Π±ΡΠ±Π»ΠΈΡΠ½ΡΠ΅ eSNI ΠΊΠ»ΡΡΠΈ ΠΎΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² CloudFlare. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ:
func makeDoTQuery(dnsName string) ([]byte, error)
func parseTXTResponse(buf []byte, wantName string) (string, error)
func QueryESNIKeysForHost(hostname string) ([]byte, error)
ΠΠ°Π·Π²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π³ΠΎΠ²ΠΎΡΡΡ ΡΠ°ΠΌΠΈ Π·Π° ΡΠ΅Π±Ρ. ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΌΡ Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΠΈΠ· ΡΠ°ΠΉΠ»Π° esni_query.go, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΡΠΎΡΡΠ°Π² tls-tris. ΠΠ΅ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ ΠΊ DNS ΡΠ΅ΡΠ²Π΅ΡΡ CloudFlare, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» DoH (DNS-over-HTTPS), Π²ΡΠΎΡΠ°Ρ β ΠΏΠ°ΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄ΠΎΠΌΠ΅Π½Π°, Π° ΡΡΠ΅ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠΌ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΡΡ Π΄Π²ΡΡ .
ΠΠ°Π»Π΅Π΅, ΠΌΡ Π²Π½ΠΎΡΠΈΠΌ Π² Π½Π°ΡΡ, Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ° connectForWsSocks ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π·Π°ΠΏΡΠΎΡΠ° eSNI ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π°. Π’Π°ΠΌ, Π³Π΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ TLS, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π΅ΠΌ ΠΈΠΌΡ ΡΠ΅ΠΉΠΊΠΎΠ²ΠΎΠ³ΠΎ Β«Π΄ΠΎΠΌΠ΅Π½Π° ΠΏΡΠΈΠΊΡΡΡΠΈΡΒ»:
Π’ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ, Π²Π΅ΡΠΊΠ° tls-tris Π½Π΅ ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π² Π½Π΅ΠΉ Π½Π΅ ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΅ΠΉΠΊΠΎΠ²ΠΎΠΌΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π² ΡΠΎΡΡΠ°Π²Π΅ client-hello ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΏΠΎΠ»Π΅ serverName). ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΡΡΡΠΊΡΡΡΡ TlsConfig ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ FakeServerName. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ServerName ΡΡΡΡΠΊΡΡΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, Ρ.ΠΊ. Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ tls ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ, ΡΠΎ tls-Ρ
Π΅Π½Π΄ΡΠ΅ΠΉΠΊ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ TlsConfig ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ tls/common.go β Π΅Π³ΠΎ Π½Π°ΠΌ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ» tls/handshake_client.go, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΠΎΠ»Π΅ FakeServerName ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ TLS Ρ
Π΅Π½Π΄ΡΠ΅ΠΉΠΊΠ°:
ΠΠ° ΡΡΠΎΠΌ Π²ΡΡ! ΠΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ CloudFlare. ΠΡ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ β ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΠΊΠΊΠ°ΡΠ½Ρ Π½Π° ΠΊΠ»Π°ΡΠ΄ΡΠ»Π°ΡΠ΅ ΠΈ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΡΠ²ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΊ Π½Π΅ΠΌΡ. ΠΡΠ΅ ΡΠΈΡΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ DoH, WebSocket ΠΈ ESNI, Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² CloudFlare ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ DNS Π·Π°ΠΏΠΈΡΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΡΡΡ β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΠΌΠ΅Π½Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² Π·Π°ΠΏΡΠΎΡ eSNI ΠΊΠ»ΡΡΠ΅ΠΉ:
dig +short txt _esni.df13tester.info
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΡ
ΠΎΠΆΠ΅Π΅ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° β Π·Π½Π°ΡΠΈΡ Π²ΡΠ΅ Ρ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΠΌ Ubuntu VPS, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° DigitalOcean. P.S. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΡΠ΄Π°Π½Π½ΡΠΉ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠΌ IP-Π°Π΄ΡΠ΅Ρ VPS ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π² Π±Π»Π΅ΠΊ-Π»ΠΈΡΡΠ°Ρ Π ΠΠ. Π’Π°ΠΊ ΡΡΠΎ Π½Π΅ ΡΠ΄ΠΈΠ²Π»ΡΠΉΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°ΠΌΠΈ ΡΠ»ΡΡΠΈΡΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅. ΠΡΠΈΡΠ»ΠΎΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ VPN ΡΡΠΎΠ±Ρ ΠΏΠΎΠΏΠ°ΡΡΡ Π½Π° ΡΠ²ΠΎΡ VPS.
ΠΠΎΠΏΠΈΡΡΠ΅ΠΌ Π½Π° VPS ΡΠΆΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ rsockstun (Π² ΡΡΠΎΠΌ, ΠΊΡΡΠ°ΡΠΈ, Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠ΅Π»Π΅ΡΡΡ Π³ΠΎΠ»Π°Π½Π³Π° β ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Ρ ΡΠ΅Π±Ρ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° Π»ΡΠ±ΠΎΠΌ Π»ΠΈΠ½ΡΠΊΡΠ΅, ΡΠΎΠ±Π»ΡΠ΄Π°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ) ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ:
Π Π·Π°ΡΠ΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠ°ΡΡΡ:
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ΅ΡΠ΅Π· ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ΅ΡΠ²Π΅Ρ CloudFlare Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π΅Π±-ΡΠΎΠΊΠ΅ΡΠ°. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΠΎ ΡΡΠ½Π½Π΅Π»Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΡΡΠ½Π½Π΅Π»Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ curl-Π·Π°ΠΏΡΠΎΡ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ socks5, ΠΎΡΠΊΡΡΡΡΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΆΠ΅ DPI Π²ΠΈΠ΄ΠΈΡ Π² ΠΊΠ°Π½Π°Π»Π΅ ΡΠ²ΡΠ·ΠΈ:
Π‘Π½Π°ΡΠ°Π»Π° ΡΡΠ½Π½Π΅Π»Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ DoH ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ DNS ΡΠ΅ΡΠ²Π΅ΡΡ Cloudflare Π·Π° eSNI ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½Π° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΏΠ°ΠΊΠ΅ΡΡ β1-19), Π° Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ΅ΡΠ²Π΅ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ TLS-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, ΠΏΡΠΈΠΊΡΡΠ²Π°ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ
Π’Π΅ΠΏΠ΅ΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° Π½Π° CloudFalre ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Flexible SSL. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ https-Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ Cloudflare ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² Π½Π΅ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌ (http) Π²ΠΈΠ΄Π΅ Π½Π°ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ° Π² non-ssl ΡΠ΅ΠΆΠΈΠΌΠ΅ ( -listen ws:0.0.0.0), Π° Π½Π΅ ( -listen wss:0.0.0.0).
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ Full, ΠΈΠ»ΠΈ Full (strict) Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ CloudFlare ΠΏΠΎ https ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ. ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ self-signed ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ°.
ΠΡΠ΅Π΄Π»ΠΈΠ²ΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΡΠΏΡΠΎΡΠΈΡ: Β«Π ΠΊΠ°ΠΊ Π½Π° ΡΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΠ΄ Windows? ΠΠ΅Π΄Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ° β ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡ Π±Π΅ΠΊ-ΠΊΠΎΠ½Π½Π΅ΠΊΡ Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ
ΠΌΠ°ΡΠΈΠ½ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π° ΡΠ°ΠΌ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²ΡΠ΅Π³Π΄Π° Π²ΠΈΠ½Π΄Π°. ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½Π½Π΅Π»Π΅Ρ ΠΏΠΎΠ΄ Π²ΠΈΠ½Π΄Ρ, Π΄Π° Π΅ΡΠ΅ ΠΈ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠ΅ΠΊΠΎΠΌ TLS?Β» Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΡΠΈΡΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ Π³ΠΎΠ»Π°Π½Π³. ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ΄ windows ΠΏΡΡΠΌΠΎ ΠΈΠ· Kali, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ GOOS=windows:
GOARCH=amd64 GOROOT="/opt/tls-tris/_dev/GOROOT/linux_amd64" GOOS=windows go build -ldflags="-s -w"
ΠΠ»ΠΈ 32-Π±ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ:
GOARCH=386 GOROOT="/opt/tls-tris/_dev/GOROOT/linux_amd64" GOOS=windows go build -ldflags="-s -w"
ΠΡΡ! Π Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΠΌΠΎΡΠΎΡΠ΅ΠΊ Π½Π΅ Π½Π°Π΄ΠΎ. ΠΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ!
Π€Π»Π°Π³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° βw ΠΈ βs Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ±ΡΠ°ΡΡ Π»ΠΈΡΠ½ΠΈΠΉ ΠΌΡΡΠΎΡ ΠΈΠ· ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, ΡΠ΄Π΅Π»Π°Π² Π΅Π³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π½Π° ΠΏΠ°ΡΡ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ UPX, ΡΡΠΎΠ±Ρ Π΅ΡΠ΅ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π ΡΡΠ°ΡΡΠ΅ ΠΌΡ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π³ΠΎΠ»Π°Π½Π³Π΅ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ°, Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³Π°, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TLS 1.3. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Π³ΠΎΠ»Π°Π½Π³Π΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ²Π΅ΡΠ° CloudFlare, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
ΠΡΠΈΠΌΠ΅Ρ Ρ ΡΡΠ½Π½Π΅Π»Π΅ΡΠΎΠΌ ΠΈ CloudFlare ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈ ΠΏΠΎΠΊΠ° ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΎ Π΄Π°Π»Π΅ΠΊΠΈΡ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° Π΄ΠΎΠΌΠ΅Π½-ΡΡΠΎΠ½ΡΠΈΠ½Π³Π°. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° eSNI ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Ρ CloudFlare ΠΈ, ΠΏΠΎ ΠΈΠ΄Π΅Π΅, Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈΠΌ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΡΠΎΠ½ΡΠΈΠ½Π³ ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π·ΡΡΠ²Π°ΡΡ tls-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈ Π½Π΅ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ SNI ΠΈ eSNI. Π ΠΎΠ±ΡΠ΅ΠΌ, Π±ΡΠ΄ΡΡΠ΅Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ. ΠΠΎ ΠΏΠΎΠΊΠ° ΡΡΠΎ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π° ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ΄ Β«ΠΏΡΠΈΠΊΡΡΡΠΈΠ΅ΠΌ kremlin.ruΒ» Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΠΊΠΈ Π·Π°ΠΌΠ°Π½ΡΠΈΠ²ΠΎΠΉ. ΠΠ΅ ΡΠ°ΠΊ Π»ΠΈ?
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ½Π½Π΅Π»Π΅ΡΠ°, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ exe-ΡΠ°ΠΉΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com