Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Selelekela

Karolong ea pele Lingoloa Re fane ka tlhaloso e khuts'oane ea mochine o patiloeng oa SNI (eSNI). Ba bontšitse kamoo, ho itšetlehile ka eona, ho ka khonehang ho qoba ho fumanoa ke litsamaiso tsa morao-rao tsa DPI (ho sebelisa mohlala oa Beeline DPI le RKN root tracker e thibetsoeng), hape ba hlahloba phetolelo e ncha ea domain fronting e thehiloeng mochine ona.

Karolong ea bobeli ea sengoloa, re tla fetela pele ho lintho tse sebetsang tse tla thusa litsebi tsa RedTeam mosebetsing oa tsona o boima. Qetellong, sepheo sa rona ha se ho fumana lisebelisoa tse koetsoeng (bakeng sa lintho tse sa reng letho re na le VPN ea khale e ntle). Ka lehlohonolo, ho na le mefuta e mengata e fapaneng ea bafani ba VPN, joalo ka ha ba re, bakeng sa tatso e 'ngoe le e' ngoe, 'mala le tekanyetso.

Re tla leka ho sebelisa mochine o ka pele-pele ho lisebelisoa tsa morao-rao tsa RedTeam, mohlala, tse kang Cobalt Strike, Empire, joalo-joalo, 'me re ba fe bokhoni bo eketsehileng ba ho etsisa le ho qoba mekhoa ea sejoale-joale ea ho sefa litaba.

Lekhetlong la ho qetela re kentse mochini oa eSNI laeboraring ea OpenSSL mme ra o sebelisa ka katleho ts'ebelisong e tloaelehileng ea curl. Empa, joalokaha ba re, u ke ke ua khotsofalla khōhō e le ’ngoe feela. Ha e le hantle, ke rata ho kenya ts'ebetsong ntho e tšoanang ka lipuo tsa boemo bo phahameng. Empa, ka bomalimabe, ho batlisisa ka potlako Marang-rang hoa re soabisa, hobane ts'ehetso ea mochine oa eSNI e sebelisoa ka botlalo feela GOLANG. Kahoo, ha re na boikhethelo bo bongata: ekaba re ngola ka C ++ e hloekileng re sebelisa laeborari ea OpenSSL e patiloeng, kapa re sebelisa fereko e arohaneng ea GOLANG ho tloha CloudFlare mme re leke ho kenya lisebelisoa tsa rona moo. Ha e le hantle, ho na le khetho e 'ngoe, ea khale, empa ka nako e ts'oanang e ja nako - ho kenya ts'ehetso ea eSNI bakeng sa Python. Ntle le moo, Python e boetse e sebelisa OpenSSL ho sebetsana le https. Empa re tla tlohela khetho ena bakeng sa nts'etsopele ke motho e mong, 'me rona ka borona re tla khotsofatsoa ke ts'ebetsong Golang, haholo-holo kaha Cobalt Strike ea rona e ratoang e khona ho sebetsa ka mokhoa o phethahetseng le mocha oa puisano o hahiloeng ke lisebelisoa tsa mekhatlo ea boraro (Kantle ho C2 mocha) - re tla bua ka sena qetellong ea sehlooho.

Leka Haholo...

E 'ngoe ea lisebelisoa tse kentsoeng ho Go ke nts'etsopele ea rona ea ho kenella marang-rang - sekontiri rsockstun, eo, ka tsela, e se e bonoa ke lisebelisoa tsa Microsoft le Symantec e le software e kotsi haholo e reretsoeng ho senya botsitso ba lefats'e ...

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ho ka ba molemo ho sebelisa tsoelo-pele e fetileng tabeng ena hape. Empa mona ho hlaha bothata bo bonyenyane. 'Nete ke hore qalong rsockstun e bolela tšebeliso ea mocha oa puisano oa SSL o lumellanang le seva. Sena se bolela hore khokahano e thehiloe hang 'me e teng nakong eohle ea ts'ebetso ea kotopo. 'Me, ha u ntse u utloisisa, protocol ea https ha e reretsoe mokhoa ona oa ts'ebetso - e sebetsa ka mokhoa oa kopo-karabelo, moo kopo e' ngoe le e 'ngoe e ncha ea http e teng ka har'a khokahanyo e ncha ea tcp.

Bothata bo ka sehloohong ba morero ona ke hore seva ha se khone ho fetisetsa data ho mofani ho fihlela mofani a romela kopo e ncha ea http. Empa, ka lehlohonolo, ho na le mekhoa e mengata ea ho rarolla bothata bona - ho phallela data ka http protocol (ka mor'a moo, ka tsela e itseng re khona ho shebella mananeo a TV ao re a ratang le ho mamela 'mino o tsoang ho li-portal tse sebetsang ho https, empa ho fetisa video le molumo ha ho letho le leng. ho feta ho phallela data). E 'ngoe ea mahlale a morao-rao a ho etsisa ts'ebetso ea khokahano e felletseng ea TCP holim'a protocol ea HTTP ke theknoloji ea WebSockets, eo sehlooho sa eona e leng ho hlophisa khokahano e felletseng ea marang-rang pakeng tsa moreki le seva ea Marang-rang.

Ka lehlohonolo bakeng sa rona (hooray !!!), theknoloji ena e kenyelelitsoe ka ho sa feleng mererong eohle ea litefiso tsa CloudFlare 'me e sebetsa hantle hammoho le eSNI. Sena ke sona hantle seo re tla se sebelisa ho ruta kotopo ea rona ho sebelisa domain-fronting le ho ipata ho li-DPI tsa sejoale-joale.

Hanyenyane ka WebSockets

Pele ho tsohle, re tla bua ka bokhutšoanyane le ka mantsoe a bonolo ka li-websockets e le hore motho e mong le e mong a be le mohopolo oa hore na re tla be re sebetsa le eng.

Theknoloji ea Websocket e u lumella hore u fetole ka nakoana ho tloha ho http ho ea ho sephutheloana se tloaelehileng sa marang-rang ntle le ho senya khokahanyo ea TCP e thehiloeng. Ha moreki a batla ho fetohela ho websocket, e beha lihlooho tse 'maloa tsa http ka kopo ea eona ea http. Lihlooho tse peli tse hlokahalang - Khokahano: Ntlafatsa и Ntlafatsa: websocket. A ka boela a hlakisa ka matla mofuta oa protocol ea websocket (Sec-Websockset-Version: 13) le ntho e kang sekhetho sa base64 websocket (Sec-WebSocket-Key: DAGDJSiREI3+KjDfwxm1FA==). Seva e mo araba ka khoutu ea http 101 Switching Protocols hape e beha lihlooho Khokahano, Ntlafatsa и Sec-WebSocket-Accept. Ts'ebetso ea ho fetoha e bonts'oa ka ho hlaka skrineng e ka tlase:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Kamora sena, ho kenya khokahano ea WebSocket ho ka nkuoa ho felletse. Lintlha leha e le life tse tsoang ho mofani le seva li tla fanoa eseng ka http, empa ka lihlooho tsa WebSocket (li qala ka byte 0x82). Hona joale seva ha se hloke ho emela kopo e tsoang ho mofani ho fetisetsa data, hobane Khokahano ea tcp ha e so robehe.

Golang e na le lilaebrari tse 'maloa tsa ho sebetsa ka li-websockets. Tse tummeng ka ho fetisisa ho tsona li Gorilla WebSocket le maemo WebSockets. Re tla sebelisa ea morao-rao, hobane ... e bonolo, e nyane mme, joalo ka ha ba re, e sebetsa kapelenyana.

Khoutung ea moreki oa rsockstun, re hloka ho khutlisa mehala ea net.dial kapa tls.dial ka mehala e tsamaellanang ea WebSocket:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Re batla ho etsa hore moreki e be karolo ea kotopo ea rona lefatšeng ka bophara mme e khone ho sebetsa ka khokahano e tobileng ea SSL le ka protocol ea WebSockset. Bakeng sa sena re tla theha mosebetsi o arohaneng func connectForWsSocks(khoele ea aterese, khoele ea moemeli) phoso {...} ka papiso le connectForSocks() 'me re tla e sebelisa ho sebetsa le li-sockets tsa marang-rang haeba aterese ea seva e boletsoeng ha ho qala mofani e qala ka ws: kapa wss: (tabeng ea Secure WebSocket).

Bakeng sa lehlakore la seva la kotopo, re tla boela re etse mosebetsi o arohaneng oa ho sebetsa le li-sockets tsa marang-rang. E tla etsa mohlala oa sehlopha sa http mme e behe sebatli sa http (ts'ebetso ea wsHandler):

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

'Me re tla beha mabaka ohle a ts'ebetso ea khokahano (tumello ea moreki a sebelisa senotlolo, ho theha le ho phethela seboka sa yamux) ho sebatli sa khokahano ea WebSocket:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Re bokella morero mme re qala karolo ea seva:

./rsockstun –listen ws:127.0.0.1:8080 –pass P@ssw0rd

Ebe karolo ea bareki:

./rsockstun -connect ws:127.0.0.1:8080 –pass P@ssw0rd

'Me re hlahloba mosebetsi ho moamoheli oa lehae:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ha re feteleng pele ho domain fronting

Ho bonahala eka re fumane li-websockets. Joale ha re feteleng ka kotloloho ho eSNI le domain fronting. Joalokaha ho boletsoe pejana, ho sebetsa le DoH le eSNI re hloka ho nka lekala le khethehileng la golang ho tsoa k'hamphaning CloudFlare. Re hloka lekala le nang le tšehetso ea eSNI (pwu/esni).

Re e kopanya sebakeng sa heno kapa re khoasolla le ho hlakola zip e tsamaisanang le eona:

git clone -b pwu/esni https://github.com/cloudflare/tls-tris.git

Ebe re hloka ho kopitsa bukana ea GOROOT, tlosa lifaele tse tsamaellanang le lekala le hlophisitsoeng ebe u li beha e le monghali. Ho pholosa moqapi ho tloha hloohong ena, bahlankana ba CloudFlare ba lokiselitse script e khethehileng - _dev/go.sh. Re e qala feela. Script hammoho le makefile e tla iketsetsa ntho e 'ngoe le e' ngoe. Bakeng sa monate feela, o ka sheba ka hare ho makefile bakeng sa lintlha.

Ka mor'a ho tsamaisa sengoloa, ha re hlophisa morero, re tla hloka ho hlakisa bukana ea lehae e lokiselitsoeng ke script joalo ka GOROOT. Tabeng ea rona, e shebahala tjena:

GOROOT="/opt/tls-tris/_dev/GOROOT/linux_amd64" go build ….

Ka mor'a moo, re hloka ho kenya ts'ebetsong ts'ebetsong ea ho kopa le ho fetisa linotlolo tsa eSNI tsa sechaba bakeng sa sebaka seo re se batlang. Tabeng ea rona, tsena e tla ba linotlolo tsa eSNI tsa sechaba tse tsoang ho li-server tsa CloudFlare frontend. Ho etsa sena, re tla theha mesebetsi e meraro:

func makeDoTQuery(dnsName string) ([]byte, error)
func parseTXTResponse(buf []byte, wantName string) (string, error)
func QueryESNIKeysForHost(hostname string) ([]byte, error)

Mabitso a mesebetsi, ka molao-motheo, a ipuella. Re tla nka litaba ho tsoa faeleng ea esni_query.go, eo e leng karolo ea tls-tris. Mosebetsi oa pele o theha pakete ea marang-rang ka kopo ho seva sa CloudFlare DNS o sebelisa protocol ea DoH (DNS-over-HTTPS), ea bobeli e fetisa liphetho tsa lipotso ebe e fumana boleng ba linotlolo tsa sechaba, 'me ea boraro ke a setshelo bakeng sa tse peli tsa pele.

Ka mor'a moo, re eketsa khokahano ea sokete ea webo mosebetsing oa rona o sa tsoa etsoa connectForWsSocks ts'ebetso ea ho kopa linotlolo tsa eSNI bakeng sa sebaka. Moo karolo ea seva e sebetsang teng, re beha liparamente tsa TLS, hape re beha lebitso la "domain cover domain" ea bohata:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ho ke ho hlokomeloe mona hore qalong, lekala la tls-tris le ne le sa etsetsoa tšebeliso ea domain fronting. Ka hona, ha e ele hloko lebitso la seva ea bohata (sebaka se se nang letho sa serverName se romelloa e le karolo ea sephutheloana-hello pakete). Ho lokisa sena, re tla tlameha ho kenya sebaka se tsamaellanang le FakeServerName ho sebopeho sa TlsConfig. Re ke ke ra sebelisa sebaka se tloaelehileng sa ServerName sa sebopeho, hobane e sebelisoa ke mekhoa ea ka hare ea tls 'me haeba e fapane le ea pele, tls handshake e tla qetella ka phoso. Tlhaloso ea sebopeho sa TlsConfig e teng faeleng tls/common.go - re tlameha ho e lokisa:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ho feta moo, re tla tlameha ho etsa liphetoho ho file tls/handshake_client.goho sebelisa sebaka sa rona sa FakeServerName ha re theha TLS ea ho ts'oarana ka letsoho:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ke phetho! O ka bokella morero mme o hlahloba mosebetsi. Empa pele u matha scan, u lokela ho theha e CloudFlare lebaka. Joale, nka re e thehe joang - theha ak'haonte ho cloudflare ebe u hokahanya sebaka sa hau sa marang-rang ho eona. Likarolo tsohle tse amanang le DoH, WebSocket le ESNI li kenyellelitsoe ho CloudFlare ka ho sa feleng. Kamora hore lirekoto tsa DNS li nchafatsoe, u ka sheba ts'ebetso ea sebaka sa marang-rang ka ho botsa linotlolo tsa eSNI:

dig +short txt _esni.df13tester.info 

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Haeba u bona ntho e tšoanang bakeng sa sebaka sa hau sa marang-rang, ho bolela hore tsohle lia u sebeletsa 'me u ka tsoela pele ho etsa liteko.

Qala Ubuntu Mohlala, VPS, ho DigitalOcean. PS: Tabeng ea rona, aterese ea IP ea VPS eo re sa tsoa e fumana ho mofani oa rona e ile ea qetella e le lethathamong le letšo la Roskomnadzor. Kahoo u se ke ua makala haeba ho ka etsahala ntho e tšoanang ho uena. Ke ile ka tlameha ho sebelisa VPN ho kena ho VPS ea ka.

Re kopitsa rsockstun e seng e ntse e hlophisitsoe ho VPS (ena, ka tsela, ke botle bo bong ba Golang - o ka bokella morero o le mong 'me oa o tsamaisa ho Linux leha e le efe, o shebile feela bokhoni ba tsamaiso) le ho qala karolo ea seva:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ebe karolo ea bareki:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Joalokaha re bona, moreki o atlehile ho hokahana le seva ka seva sa CloudFlare frontend a sebelisa websocket. Ho netefatsa hore kotopo e sebetsa hantle joalo ka kotopo, o ka etsa kopo ea curl ka likausi tsa lehae5, bula ho seva:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Joale ha re boneng hore na DPI e bona eng mocha oa puisano:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Ntlha ea pele, mochine oa tunnel, o sebelisa mochine oa DoH, o ikopanya le seva sa Cloudflare DNS bakeng sa linotlolo tsa eSNI bakeng sa sebaka seo u eang ho sona (lipakete No. 1-19), ebe o ikopanya le seva sa pele ebe o theha khokahano ea TLS, e ipatileng ka morao www.google.com (ena ke boleng ba kamehla ha ho se na domain name ea fake e boletsoeng ha moreki a qala). Ho hlakisa sebaka sa hau sa fake, o tlameha ho sebelisa parameter ea -fronfDomain:

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Joale ntho e 'ngoe hape. Ka kamehla, litlhophiso tsa ak'haonte ea CloudFalre li behiloe ho Flexible SSL. Sena se bolela hore likopo tsa https ho li-server tsa Cloudflare tse tsoang ho bareki li tla fetisetsoa li sa ngolisoe (http) ho seva sa rona. Ke kahoo re qalileng karolo ea seva ea kotopo ka mokhoa o seng oa ssl ( -mamela ws: 0.0.0.0), eseng ( -mamela wss: 0.0.0.0).

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

E le hore u fetohele ho mokhoa o feletseng oa ho kenyelletsa, u tlameha ho khetha Fullkapa E tletse (thata) haeba ho na le setifikeiti sa 'nete ho seva. Ka mor'a ho fetola mokhoa, re tla khona ho amohela likhokahano ho tloha CloudFlare ho sebelisa protocol ea https. U se ke ua lebala ho hlahisa setifikeiti se ingoletseng bakeng sa lehlakore la seva la kotopo.

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

'Mali ea nang le bohelehele o tla botsa: “Ho thoe'ng ka moreki ea tlas'a Windows"Etsoe, ts'ebeliso e kholo ea sesebelisoa sa ho kenya li-tunnel mohlomong ke ho theha khokahano ea morao-rao ho tsoa mechining le li-server tsa lik'hamphani, 'me hangata tseo ke Windows. Nka kopanya sesebelisoa sa ho kenya li-tunnel joang bakeng sa Windows, haholo-holo ka sethala se itseng sa TLS?" Joale re tla hlahisa tšobotsi e 'ngoe e bontšang hore na Golang e bonolo hakae. Re kopanya bakeng sa Windows ka kotloloho ho tsoa ho Kali ka ho eketsa feela paramethara ea GOOS=windows:

GOARCH=amd64 GOROOT="/opt/tls-tris/_dev/GOROOT/linux_amd64" GOOS=windows  go build -ldflags="-s -w"

Kapa mofuta oa 32-bit:

GOARCH=386 GOROOT="/opt/tls-tris/_dev/GOROOT/linux_amd64" GOOS=windows  go build -ldflags="-s -w"

Kaofela! 'Me ha ho sa hlokahala mathata. E hlile ea sebetsa!

Sebaka sa marang-rang se ipapisitse le TLS 1.3. Karolo ea 2

Lifolakha tsa -w le -s li ea hlokahala ho tlosa litšila tse sa hlokahaleng faeleng e ka phethisoang, ho etsa hore e be nyane ea megabytes. Ho feta moo, e ka kenngoa ka har'a UPX ho fokotsa boholo.

Ho e-na phetheha

Sehloohong sena, re sebelisa mohlala oa kotopo e ngotsoeng Golang, re bonts'itse ka ho hlaka tšebeliso ea thekenoloji e ncha ea marang-rang, e kentsoeng ts'ebetsong e thahasellisang ea protocol ea TLS 1.3. Ka mokhoa o ts'oanang, o ka ikamahanya le lisebelisoa tse teng tse ngotsoeng Golang ho sebetsa ka li-server tsa CloudFlare, mohlala Merlin - C2 e tsebahalang, kapa qobella CobaltStrike Beacon ho sebelisa eSNI-fronting ha o sebetsa le Teamserver ka Mocha oa kantle oa C2, e sebelisitsoeng Golang, kapa ka mokhoa o tloaelehileng oa C ++ ho sebelisa phetolelo e patiloeng ea OpenSSL, eo re buileng ka eona karolong ea ho qetela ea sengoloa. Ka kakaretso, ha ho na meeli ea ho nahana.

Mohlala o nang le tunnel le CloudFlare o hlahisoa ka mokhoa oa mohopolo mme ho ntse ho le thata ho bua ka litebello tsa nako e telele tsa mofuta ona oa marang-rang. Hajoale, ke CloudFlare feela e tšehetsang eSNI, 'me, ka khopolo, ha ho letho le ba thibelang ho thibela mofuta ona oa pele, ka mohlala, ho senya likhokahano tsa tls haeba SNI le eSNI li sa lumellane. Ka kakaretso, bokamoso bo tla bolela. Empa hajoale, tebello ea ho sebetsa tlas'a "sekoahelo sa kremlin.ru" e shebahala e le teko. Ha se eona?

Khoutu e ntlafalitsoeng ea tunnel, hammoho le lifaele tsa exe tse hlophisitsoeng, li fumaneha lekaleng le arohaneng la projeke ho. github. Ho molemo ho ngola taba mabapi le mathata ohle a ka bang teng leqepheng la morero ho GitHub.

Source: www.habr.com

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster