Saya selalu menggunakan trik sederhana untuk mem-bypass sebagian besar firewall yang mencegah saya menggunakan port apa pun. Saya hanya membuka ssh di salah satu server saya di port 443 dan menyalurkan semua lalu lintas ke sana.
Namun saya sekarang berada di jaringan yang memiliki firewall yang belum pernah saya lihat sebelumnya dan saya bahkan tidak tahu itu mungkin.
Di jaringan ini Anda dapat menggunakan port 443 hanya untuk lalu lintas server web yang sah. Jika saya membuka ssh, atau apa pun di port 443 dan mencoba untuk terhubung di sana dari jaringan ini, itu langsung terbunuh. Jika saya memulai apache di server itu, itu berfungsi.
Bagaimana ini mungkin? Apakah ada beberapa firewall super canggih yang bahkan dapat menganalisis lalu lintas terenkripsi untuk memverifikasi itu lalu lintas https yang sah? Bagaimana?
sumber
Jawaban:
Ya, dan mereka tidak membutuhkan sihir apa pun di sini, hanya pencocokan sepele pada konten paket TCP. Meskipun SSH dan TLS (SSL) mengenkripsi muatannya , tajuk protokol itu sendiri masih dapat dibedakan dan sangat berbeda satu sama lain. Misalnya, koneksi SSHv2 selalu dimulai dengan pengiriman klien
SSH-2.0-(client name and version)
. Demikian pula, meskipun firewall Anda tidak dapat benar - benar tahu apakah koneksi TLS membawa HTTP di dalamnya, ia dapat mengenali TLS itu sendiri .Memeriksa lapisan-lapisan di atas TCP pada umumnya termasuk dalam "Deep Packet Inspection", fitur yang relatif umum.
Salah satu cara yang jelas untuk mem-bypass ini adalah dengan tunnel SSH di dalam TLS - misalnya, menggunakan stunnel, haproxy, atau sniproxy. (Selain tunneling polos, di mana port 443 didedikasikan untuk SSH-over-TLS, mereka juga dapat melipatgandakan SSH / HTTP / protokol lain melalui port yang sama berdasarkan SNI dan ALPN.)
Meskipun ini tidak akan selalu mengalahkan analisis lalu lintas yang sangat canggih, itu masih akan memotong sebagian besar filter yang hanya memeriksa "apakah ini terlihat seperti header TLS".
Dan kemudian ada jenis firewall yang mengganggu - yang mencegat TLS untuk mendekripsi dan mengenkripsi ulang semua lalu lintas. Ini benar-benar dapat melihat di dalam TLS, dan dapat melewati permintaan HTTP sambil memblokir yang lainnya. (Perhatikan bahwa beberapa program antivirus juga melakukan hal yang sama.) Anda dapat mengenali jenis ini dengan melihat sertifikat server; semua sertifikat yang dihasilkan proxy terlihat sama, dan seringkali tidak lulus validasi, sedangkan sertifikat nyata dikeluarkan oleh berbagai CA yang berbeda.
sumber