Cloudflare CDN websocket reverse tunnel
මේක ගැනත් ඕනේ
Cloudflare ගැන general knowledge එකක් තියෙනව කියල හිතල මේක දාන්නම් නැත්තන් මෙතන web hosting පන්තියක් දැම්ම වෙනව.
කලින් පොස්ට් එකෙන් fundamentals දැනගත්ත නිසා මේකේ ලොකුවට වැඩි දෙයක් ලියන්න නැ, ඒත් මේක කලින් ක්රමයේ අනික් පැත්තට වෙන්නේ.
මේ වැඩේ දී පාවිච්චි වෙන්නේ ක්ලවුඩ්ෆ්ලෙයා වල තියෙනවා පොඩි හෝල් එකක්. අපි මේක exploit කරනවා මෙතඩ් එකෙන්.
SNI එක සාමාන්යයෙන් අපි දාන්නේ අදාළ වෙබ්සයිට් එකේ පැකේජ් එකෙන් allow කරලා තියෙන එක, හැබැයි දැන් මේ ක්රමේ වෙන්නේ ඔකේ අනික් පැත්තට. අපි මේ ක්රමේ දී දාන්නේ SNI එකට අපේ VPS එක ට පොයින්ට් කරලා තියෙන ඩොමේන් එකට (zoom.us දානවා වෙනුවට) . ඒ එක්කම host header එකත් සෙට් කරනවා අපේ සර්වර් එකට (ip එකට domain front කරලා තියෙන)
ඊටපස්සේ අපි v2ray client එකෙන් කෙලින්ම වෙන්නේ cloudflare CDN IP එකකට.
මෙහෙම කිව්වම විකාරයි වගේ ඇති, එත් මේක පැහැදිලි වෙනවා මේකෙන් සිද්දවෙන්නේ මොකක්ද කියල තේරුම් ගද්දි.
මේක ට අපි පාවිච්චි කරන්නේ websocket request request protocol එක. සාමාන්ය http request වල steteless සහ හැම රික්වෙස්ට් එකකටම අලුතින් කනෙක්ෂන් හදන්න ඕනේ උනාට, මේ ප්රෝටෝකොල් එක ඔයිට වඩා ටිකක් වෙනස්. මේවා පාවිච්චි වෙන්නේ වෙබ් බ්රවුසර් වල හරි app වල හරි මැසේජ් රියල් ටයිම් කමියුනිකෙට් කරන්න. (ඔය බයිනෑන්ස් වගේ ක්රිප්ටෝ සයිට් වල ලයිව් අප්ඩේට් වෙන්නේ බිට්කොයින් නගිනකොට බහිනකොට, අන්න ඒ data communicate වෙන්නේ websocket ප්රෝටෝකොල් එකෙන්. මේවටත් සාමාන්ය http requests වලට වගේම තියෙනවා හෙඩර් එකක් සහ SNI. මේකෙදි විශේෂ හෙඩර් එක තමයි host header එක අපේ වැඩේට අවශ්ය වෙන.
හරි , දැන් හිතන්න zoom.us හෝ ඒ වෙනුවට හිතන්න ඔන්න එඩියුකේෂනල් වෙබ්සයිට් එකක් තියෙනවා ලංකාවේ, ඕකට ISP ල free access කරන්න දීල තියෙනවා උන්ගේ නෙට්වර්ක් එකෙන්.
හැබැයි මේ වෙබ්සයිට් එක හදල උන් එකට cloudflare දාල තියෙනව.
cloudflare එක act කරන්නේ රිවර්ස් ප්රොක්සි එකක් විදිහට.
යුසර් සහ සර්වර් එක මැද්දේ තමයි cloudflare ඉන්නේ.
1. සාමාන්ය traffic flow එක (එකියන්න්නේ කන්ටෙන්ට් ඩිලිවරි සිස්ටම් (CDN) එක වැඩ කරන සාමාන්ය ක්රමය)
- user request එකක් යවනවා domain එකට, උදා: example.edu. එතකොට example.edu එකේ DNS එකෙන් පොයින්ට් කරනවා cloudflare වල IP address එකකට
- cloudflare receive කරනවා request එක. ඒ කරලා චෙක් කරලා බලනවා Host හෙඩර් එකේ තියෙන්නේ මොකක්ද කියල. (example.edu)
- cloudflare විසින් ෆෝවර්ඩ් කරනවා රික්වෙස්ට් එක origin server එකට. කියන්නේ cloudflare check කරලා බලනවා example.edu එක associate වෙලා තියෙන සවර් අයිපී එක මොකක්ද කියල බලල ඒකට යවනව. (මේ IP එක ඒ වෙබ්සයිට් එක හදපු කෙනාගේ cloudflare account එකේ dashboard එකේ එයා දාල තියෙන්නේ එයාලගේ සර්වර් එකට සෙට් කරලා.
2. අපේ සෙටප් එකේදී traffic flow එක: Exploit කරනවා host header එක.
1. Client යවනවා request එක
- අපි මේ කරන ක්රමේදී අපි cloudflare දාපු domain name එකක් නෙමෙයි පාවිච්චි කරන්නේ, ඒ වෙනුව ට අපි කෙලින්ම cloudflare වල CDN IP address එකට කනෙක්ට් වෙන්නේ. (zoom/us එකට හෝ example.edu domain එකට cloudflare CDN එක associate වෙලා තියෙන IP එකට) (104.16.123.96 වගේ එකකට)
- request එකේ host header එකේ තියෙනවා අපේ vps (v2ray සර්වර්) එකේ අයිපී එක, හෝ ඩොමේන් එක.
2. cloudflare receive කරනවා request එක.
- cloudflare දකිනවා request එක එයාලගේ CDN සර්වර් එකට එනවා කියල (104.16.123.96).
- cloudflare check කරලා බලනවා header host එකේ මොකක්ද තියෙන්නේ කියල. තියෙන්නේ අපේ vps ( v2ray සර්වර් එකේ ip එක හෝ ඩොමේන් එක)
3. cloudflare foward කරනවා request එක
- සාමාන්යයෙන් cloudflare එක ෆෝවර්ඩ් කරන්නේ request එක ඔරිජින් සරවර් එකට host header එක සෙට් වෙලා තියෙන,
- හැබැයි මේ වෙලාවේ host header එකේ තියෙන්නේ අපේ vps එකේ ip එක හෝ domain එක. ඉතින් cloudflare එක අපේ vpn එකට traffic එක foward කරනව.
ඔය තුන්වෙනි එකේ කියන විදිහට ඔහොම cloudflare එකෙන් domain validate නොකර සිම්පල් විදිහට traffic එක එවනවා. ආයේ එක උන්ගේ එකවුන්ට් වල තියෙනවද ගගා චෙක් කර කර ඉන්නේ නැහැ , හොස්ට් හෙඩර් එක ස්ටෑන්ඩර්ඩ් හෙඩර් එකක් http/https වල traffic එක රවුට් වෙන්න ඕන කොහෙටද කියල සඳහන් කරන. ඒ හින්ද destination එක විදිහට එතෙන්ට යවනවා.
මෙතැනදී client ගේ ඉදන් කෙලින්ම cloudflare CDN එකට තියෙන ලැටන්සි (ping) එක + cdn එකේ ඉඳන් v2ray එක තියෙන සර්වර් එකට තියෙන ලැටෙන්සි (ping) + vpn එකේ ඉඳන් ඔයා යන වෙබ් සයිට් එකට (pornhub.com

) තියෙන ලැටන්සි එක (ආයේ ඒකටත් cloudflare දාල තියෙනවා නම් උන්ගේ CDN එකේ ඉඳන් origin සර්වර් එකට තියෙන ලැටෙන්සි (ping) එක ඔක්කොම එකට එකතු වෙලා තමයි එන්නේ . එතකොට ටිකක් ping එක වැඩියි 450+ වගේ යන්න පුළුවන්.
summery: ISP cloudflare CDN IP whitelist කරලා තියෙන්නේ නැත්තන් උන්ගේ වෙබ් සයිට් එක ට ෆ්රී යන්න බැරි නිසා, හැබැයි අපි කරන්නේ ක්ලවුඩ්ෆ්ලෙයා CDN නෙට්වර්ක් එකට ඇත්තටම යනවා , ඒ ගිහිං එතැනක exploit එකක් කරලා traffic එක මැනිපුලේට් කරලා එතනින් බම්ප් වෙලා ආයේ වංගුව ගහනවා vpn එක ඇතුලට. එකට රිංග ගත්තට පස්සේ එකෙන් ආයේ free ලෝකේ දකින්න එලි බහිනවා
මගේ කතාව අවසානයි, ISP හැත්ත සහ v2ray විකුණන් කන උන් මේ පොස්ට් එක කියවන්නේ නැතුව අදාල technology වලට ආස උන් ට විතරක් knowledge එක ලැබේවා කියල ප්රර්ථනා කරමි .