─ Sistem PHIshing Nirkabel Sepenuhnya Otomatis Terintegrasi IoT oleh Şefik Efe Altınoluk ─
Jangan mencoba perangkat lunak ini pada pengguna/sistem yang Anda tidak memiliki izin resmi. Penggunaan Wi-Phi
untuk menyerang target tanpa persetujuan bersama adalah tindakan ilegal. Pengguna akhir bertanggung jawab untuk mematuhi semua undang-undang lokal, negara bagian, dan federal yang berlaku. Saya tidak bertanggung jawab dan tidak bertanggung jawab atas penyalahgunaan atau kerusakan apa pun yang disebabkan oleh perangkat lunak ini, dokumentasinya, dan apa pun yang ada di repositori ini.
(LIHAT #4) Karena Wi-Phi
dapat digunakan secara jahat, saya tidak membagikan sebagian besar kode sumbernya. Hubungi saya dari LinkedIn untuk kasus bisnis/akademik/pendidikan apa pun yang memerlukan seluruh kode kerja.
Proyek ini dilisensikan di bawah Gnu General Public License Versi 3.0
Lihat LISENSI untuk lebih jelasnya.
Wi-Phi
adalah system
phishing
otomatis yang terintegrasi penuh ke papan IoT
(Internet of Things) nirkabel.
Ini dapat dianggap seperti Wifi Pineapple
yang canggih dan kaya fitur.
Wi-Phi
dapat melakukan phishing kepada pengguna yang menjalankan setidaknya salah satu perangkat lunak berikut:
Komponen utama Wi-Phi
adalah:
MicroPython
. Saya menggunakan Deneyap Kart
berdasarkan ESP32
.esp32-20220117-v1.18.bin
Dapatkan perangkat IoT ESP32.
Hubungkan ESP32 ke komputer Anda dan dapatkan port serial tempat ESP32 terhubung.
COMx
/dev/ttyUSBx
atau /dev/tty/USBx
Kemudian jalankan perintah berikut untuk GNU/Linux.
[efe@lhost ~] $ git clone https://github.com/f4T1H21/Wi-Phi.git && cd Wi-Phi
[efe@lhost Wi-Phi] $ pip3 install -r requirements.txt
[efe@lhost Wi-Phi] $ sudo ./setup.sh < serial_port >
Sekarang, perangkat lunaknya seharusnya berfungsi, periksa apakah Anda melihat jaringan Wi-Fi bernama Google Free Wi-Fi
.
Setiap kali Anda menyambungkan ESP32 ke catu daya, proyek berjalan secara otomatis setelah tahap booting.
Tidak ada hal lain yang penting.
Semua perangkat lunak diimplementasikan pada MicroPython, dan berjalan pada ESP32.
ESP32 menjadi AP Nirkabel (Access Point); dan menjalankan tiga (3) soket independen (pada OSI Layer 4):
53/UDP
untuk server DNS
80/TCP
untuk server HTTP
2121/TCP
untuk server Credential Store
Semua pengikatan dilakukan pada alamat IP gateway (AP), yaitu 210.210.210.1
Alasan mengapa saya memilih kelas IP seperti itu adalah karena untuk beberapa alasan, perangkat Samsung tidak menganggap alamat IP pendek sebagai captive portal. Itu merupakan masalah bagi saya.
Ide utamanya adalah melayani situs web phishing statis di server HTTP dan menjadikannya captive portal
untuk perangkat (stasiun) dari vendor mana pun yang terhubung melalui Wi-Fi.
Static site
dilayani oleh server HTTPDNS
, HTTP
& CS
TCP
& UDP
untuk protokol tingkat tinggiGateway
LAN
Wireless AP
, Wi-Fi
Di bawah ini menunjukkan skenario yang dirancang dengan baik di mana Wi-Phi
bekerja.
Ini juga merupakan studi kasus yang saya tugaskan untuk diri saya sendiri. Jadi, mari selami kasus ini...
Sebagian besar vendor perangkat mengirimkan permintaan HTTP ke titik akhir tertentu dari server pendeteksi portal tawanan khusus vendor mereka dan mengharapkan respons HTTP tertentu untuk memahami apakah jaringan Wi-Fi memiliki portal tawanan atau tidak.
Tabel di bawah ini menunjukkan respons yang harus dilakukan untuk berbagai vendor perangkat, agar perangkat mengira ada captive portal di jaringan Wi-Fi.
Catatan : Mozilla merupakan pengecualian untuk 'vendor perangkat'. Firefox (sebagai browser) dapat membuat keputusan ini sendiri sesuai dengan server deteksi captive portal miliknya.
Respons dengan kode status 302 Found
, juga harus memiliki header Location:
untuk mengarahkan ulang browser (klien) dengan benar.
Vendor Perangkat | Titik akhir | Kode Status | Badan Respon |
---|---|---|---|
Microsoft (Windows) | www.msftconnecttest.com/ncsi.txt | 200 OK | Microsoft NCSI |
Microsoft (Windows) | www.msftconnecttest.com/connecttest.txt | 200 OK | Microsoft Connect Test |
Microsoft (Windows) | www.msftconnecttest.com/redirect | 302 Found | |
Google (Android) | connectivitycheck.gstatic.com/gen_204 | 302 Found | |
Google (Android) | connectivitycheck.gstatic.com/generate_204 | 302 Found | |
Google (Android) | clients3.google.com/generate_204 | 302 Found | |
Xiaomi | connect.rom.miui.com/gen_204 | 302 Found | |
Xiaomi | connect.rom.miui.com/generate_204 | 302 Found | |
Apple (IOS/MacOS) | captive.apple.com/hotspot-detect.html | 302 Found | |
Mozilla (Firefox) | detectportal.firefox.com/canonical.html | 302 Found | |
Mozilla (Firefox) | detectportal.firefox.com/success.txt | 302 Found |
Untuk dapat menanggapi permintaan http yang dilakukan ke titik akhir di atas, permintaan ini harus dikirim ke server HTTP ESP32. Untuk mencapai hal ini, ESP32 harus menjawab pencarian domain tertentu ke alamat IP-nya sendiri.
google.com
harus menjadi 210.210.210.1
Jadi perlu ada Server Sistem Nama Domain yang berjalan di ESP32. Dari sudut pandang ini, pemandangannya terlihat mirip dengan serangan Pembajakan DNS.
Menurut saya Google adalah perusahaan teknologi paling populer dan tepercaya di seluruh dunia. Jadi saya menyiapkan halaman phishing statis, yang tampilannya hampir sama dengan halaman login Gmail lama. Dan juga menamakan jaringan Wi-Fi sebagai Google Free Wi-Fi
.
Saat adegan berlanjut, setelah mengarahkan browser (klien) ke halaman login statis, pengguna diminta untuk memasukkan kredensialnya dan menekan tombol berikutnya. Dan kredensial disimpan dalam file lokal. Kemudian pengguna mendapat larangan IP hingga reboot ESP32 berikutnya. Jika tidak, database lokal dapat dikacaukan oleh kredensial palsu/salah. Setelah semua ini, klien dialihkan ke /
direktori situs statis.
Setiap kali klien yang diblokir IP mencoba mengakses sumber daya apa pun di server HTTP, file html yang sama hacklendin.html
disajikan terlepas dari metode permintaan HTTP, kepala, badan, dll.
Di sisi lain, penyimpanan kredensial lokal dapat dilihat dari jarak jauh dengan menghubungkan ke 2121/tcp
dan mengautentikasi dengan kata sandi hardcode saat terhubung ke Wi-Fi.
Wi-Phi
adalah sistem yang kaya fitur. Log verbose yang dibuat oleh layanan Wi-Fi
, HTTP
, dan DNS
dapat dilihat secara real-time. Log ini tidak disimpan secara lokal untuk menghemat penyimpanan.
Untuk dapat melihat log verbose,
boot.py
ke file lokal bernama main.py
.boot.py
dari perangkat ESP32.main.py
di ESP32. Anda dapat menggunakan alat ampy
untuk pengoperasian file dan menjalankan perangkat lunak di ESP32.
Mari kita lihat kasus di mana kita memiliki beberapa perangkat independen dari berbagai vendor yang terhubung ke Google Free Wi-Fi
secara bersamaan.
Ketika perangkat iOS menemukan captive portal, mereka secara otomatis menjalankan halaman captive portal, tanpa meminta pengguna, Bagus!
Perangkat Samsung hanya menampilkan notifikasi. Jadi di sini pengguna perlu mengklik Sign in to the network
atau notifikasi di bagian atas layar.
Perangkat Xiaomi juga menampilkan notifikasi. Mereka juga terkadang membuka halaman captive portal secara otomatis, tanpa meminta pengguna lagi!
Di Firefox, prompt muncul di bagian atas jendela aplikasi. Setelah mengklik Open network login page
, halaman captive portal akan terbuka di tab baru.
Dan orang lain yang bahkan tidak membiarkan pengguna memutuskan (seperti iOS). Selalu membuka halaman captive portal secara otomatis.
Seperti yang saya jelaskan sebelumnya,
Seluruh periode pembelajaran, menerapkan apa yang saya pelajari ke kehidupan nyata, memperbaiki bug dan menulis dokumentasi ini sangat menyenangkan bagi saya! Saya harap Anda menggunakan pengetahuan ini untuk etika! Hubungi saya untuk pertanyaan tambahan dan kasus bisnis/akademik/pendidikan.
Twitter
LinkedIn
PeretasSatu
Retas Kotaknya
─ Ditulis oleh Şefik Efe Altınoluk ─