30 Sep 2010

Mengakali Proses Autentifikasi Wireless HotSpot

Ada banyak hal yang seseorang dapat lakukan untuk mengakali proses autentikasi. Beberapa cara yang dibahas dalam artikel ini hanya mencakup sebagian kecil aspek yang memanfaatkan kelemahan desain dari sebuah wireless hotspot gateway.

Sebagai pemberitahuan, tidak ada nama vendor yang akan diasosiasikan dengan celah yang saya temukan. Silakan mengira-ngira sendiri. Dan trik-trik yang dijelaskan hanya dapat direplikasikan jika Anda berada dalam environment sistem operasi berbasis Unix/Linux (Laptop saya menggunakan Mac OS X & Windows & Linux XCode).


1. Memanfaatkan demo account.

Banyak penyedia layanan yang berbaik-hati memberikan kesempatan bagi calon pengguna untuk dapat mengakses Internet dalam kurun waktu yang dibatasi. Pada halaman autentikasi biasanya disebutkan username dan password untuk keperluan ujicoba.

Seseorang yang menggunakan account ujicoba/demo harus melakukan autentikasi ulang setelah masa penggunaan berakhir. Namun hal tersebut dapat dilakukan secara otomatis dengan menggunakan script seperti ini.

---------------------------------------------------------------------
#!/bin/sh

while sleep 3;
do
curl --data
"username=demo&password=demo&submitForm=login"
"https://server:port/goform/HtmlLoginRequest";
done
---------------------------------------------------------------------

2. Menggunakan tunneling.

Beberapa implementasi hotspot dapat diakali dengan memanfaatkan metode tunneling. Implementasi yang dimaksud adalah implementasi yang tidak melakukan pemblokiran terhadap port atau protokol tertentu.

Sebagai contoh, sebuah hotspot hanya melakukan pengalihan untuk semua query HTTP dan HTTPS ke halaman login autentikasi bagi pengguna yang belum terautentikasi. Anda dapat menggunakan socks-tunneling via SSH karena port yang digunakan untuk SSH tidak terfilter. Anda dapat menambahkan option 'DynamicForward' pada konfigurasi SSH user Anda (lihat file ~/.ssh/config).

--------------------------------------------------------------------
...
Host titanium
Hostname titanium.justanotherrandomdomain.com
Port 22
User whfb
DynamicForward 22344
...
--------------------------------------------------------------------

Jika Anda sudah melakukan koneksi SSH ke host titanium, maka secara otomatis, port 22344 akan terbuka. Anda dapat menambahkan IP 127.0.0.1 dan port 22344 pada konfigurasi jaringan di web browser Anda untuk pilihan SOCKS proxy.

Namun cara yang disebutkan di atas tidak selalu berhasil karena gateway melakukan pengalihan pada semua port TCP dan UDP. Untuk mengakali kondisi tersebut, jika dapat memanfaatkan DNS tunneling. Mengapa protokol DNS? Karena sebagian besar penyedia layanan tidak melakukan pemblokiran atau pengalihan untuk query DNS.

3. Memanfaatkan celah pada aplikasi web portal Internet gateway.

Trik berikut saya temukan ketika saya yang kebetulan mendapatkan kesempatan untuk menginap di salah satu hotel terkenal dan menemukan adanya layanan wireless hotspot yang terdapat di lobby.

Pada halaman autentikasi, saya diberikan beberapa pilihan untuk melakukan pembayaran, antara lain:

a. login menggunakan username dan password dari pre-paid yang dapat dibeli di lobby,
b. login menggunakan username dan password dari layanan iPass dan Boingo

Setelah mengamati benar source-code dari halaman web yang digunakan untuk keperluan autentikasi, saya melihat adanya kejanggalan dimana pilihan a mempunyai billing_method_id adalah 2, dan pilihan b mempunyai billing _method_id adalah 3. Yang jadi pertanyaan saya waktu itu adalah pilihan apa yang mempunyai billing_method_id adalah 1. Dengan niatan mencoba-coba, saya lalu mengganti variable query billing_method_id dengan nilai 1, ternyata saya dapat langsung mengakses Internet.

--------------------------------------------------------------------
http://host/defaultportal/check_form.cgi?&billing_method_id=1
--------------------------------------------------------------------

Belakangan hari setelah saya berkesempatan meminjam produk yang digunakan sebagai Internet gateway tersebut, saya mengetahui bahwa billing_method_id dengan nilai 1 adalah pilihan untuk melakukan penagihan pada kamar. Sesuatu yang tidak mungkin dilakukan karena saya mengaksesnya dengan menggunakan wireless dari lobby. Setelah berkorespondensi dengan technical support vendor produk yang dimaksud, saya baru mengetahui bahwa pilihan tersebut hanya efektif jika pelanggan menggunakan kabel dan bukan wireless.

4. Mengganti IP address

Ditemukan beberapa implementasi wireless hotspot yang diketahui membagi alokasi IP address pada pengguna yang belum terautentikasi dan user yang sudah terautentikasi. Setelah pengguna berhasil melewati proses autentikasi, gateway akan mengingat MAC address Anda dan memberikan IP address baru (pada subnet yang baru) bagi pengguna tersebut.

Menggunakan perangkat lunak packet sniffer seperti tcpdump atau ethereal (sekarang wireshark), Anda dapat mengetahui IP address apa saja yang melintasi jaringan wireless Anda. Anda dapat mengira-ngira sendiri alokasi IP address yang 'baru' berikut dengan netmask-nya.

Sebagai contoh, jika belum terautentikasi Anda mendapatkan IP address 10.0.0.14 dengan netmask 255.255.255.0, dan setelah Anda terautentikasi, Anda mendapatkan IP address 10.0.1.18 dengan netmask 255.255.255.0.

Jika Anda tidak ingin melakukan proses autentikasi, Anda cukup mengkonfigur IP Address Anda pada range network pengguna yang sudah terautentikasi.

5. Piggyjacking

Saya mendefinisikan piggyjacking sebagai aktivitas untuk mendapatkan akses pada sebuah sesi akses wireless dengan mengambil-alih sesi yang sudah terlebih dahulu terautentikasi untuk mendapatkan akses Internet.

Untuk melakukannya, Anda membutuhkan informasi: - IP address dan MAC address pengguna yang sudah terautentikasi - IP address gateway

Anda dapat merujuk pada presentasi Dean Pierce, Brandon Edwards & Anthony Lineberry yang diberikan di DEFCON 13[8] untuk penggunaan perangkat lunak 'pul'. Jika Anda ingin melakukan dengan metode manual, Anda dapat mengikuti prosedur yang disebutkan pada point 4 di atas.

6. SQL Injection pada aplikasi portal gateway

Beberapa hotspot ternyata dapat diakali dengan memanfaatkan teknik SQL injection. Saya pikir tidak perlu menjelaskan lebih jauh mengenai teknik ini karena sudah seringkali dibahas. Tidak hanya untuk mem-by-pass akses Internet, teknik ini juga dapat mem-by-pass autentikasi administrative page.

7. Memindahkan tagihan ke kamar lain.

Jika Anda beruntung menginap pada hotel yang memberikan layanan Internet berbayar menggunakan kabel pada kamar hotel. Anda mungkin dapat menerapkan trik ini. Trik berikut ini hanya dapat dilakukan pada jaringan kabel pada hotel (tidak berhubungan dengan wireless), namun saya bahas di sini karena produk gateway yang digunakan sama dengan layanan wireless hotspot.

Anda mungkin dapat 'menyusahkan' orang lain dengan mengalihkan tagihan Internet kamar Anda atau mengalihannya ke kamar kosong.

Sebagai contoh, Anda dapat memodifikasi query HTTP seperti berikut ini
--------------------------------------------------------------------
http://HOTSPOT_GATEWAY/mlcbb/mlc/welcome.asp?UI=012345&
UURL=http://BILLING_SERVER/userok.htm&MA=00AABBCCDDEE&RN=1234&
http://google.com/&SC=12345
--------------------------------------------------------------------
Anda cukup menganti nilai 00AABBCCDDEE (MAC address) dan 1234 (nomor kamar). Tagihan akan ditujukan pada kamar baru jika kamar tersebut ada. Untuk amannya, saya menyarankan Anda mencari informasi nomor ruangan
yang digunakan untuk keperluan publik seperti ballroom atau lobby.

Tapi semua cara ini tak perlu untuk sekolah kita. Karena di sekolah tercinta kita HotSpotnya gratis.

0 komentar:

Posting Komentar

Posting Komentar