Selasa, 14 Oktober 2008

Wireless Hotspot

---// Pendahuluan

Wireless hotspot merujuk pada implementasi jaringan wireless (nirkabel)
yang memanfaatkan protokol IEEE 802.11x untuk keperluan akses Internet
publik. Implementasi jaringan wireless ini dapat digunakan tanpa bayar,
biasanya akses diberikan oleh penyedia layanan untuk keperluan promosi,
atau berbayar.

Di kota-kota besar di Indonesia, seperti Jakarta, Bandung, dan Surabaya,
wireless hotspot dapat ditemukan di mall, plaza, hotel, atau airport.
Dengan ekspetasi pengguna yang beragam, dari geek sampai mereka yang
gagap teknologi, maka wireless hotspot didesain untuk memberikan kemudahan
dalam penggunaan. Oleh karena itu, kebanyakan wireless hotspot tidak
memberikan perlindungan penuh terhadap penyalahgunaan jaringan wireless.

Tulisan ini merupakan uraian panjang dari presentasi teknis yang pernah
saya bawakan dengan judul yang sama pada konferensi keamanan informasi
dan hacking internasional di Kuala Lumpur [1] , Malaysia tahun 2005 dan
Prague [2] , Czech Republic tahun 2006. Gunakan keajaiban mesin pencari
online untuk mengetahui lebih lanjut mengenai saya.

Tulisan ini terbagi menjadi dua bagian. Bagian kedua akan dipublikasikan
pada rilis echo|zine mendatang.


---// Menggunakan Wireless Hotspot

Jika Anda belum pernah memanfaatkan layanan wireless hotspot, maka
langkah-langkah berikut dapat Anda lakukan ketika Anda berada dalam
jangkauan akses wireless hotspot.

1. Siapkan device yang akan digunakan untuk mengakses wireless hotspot.
Device dapat berupa laptop, PDA, atau telepon selular.

2. Asosiasikan device Anda pada hotspot SSID (Service Set Identifier)
untuk mendapatkan konfigurasi jaringan. Biasanya jaringan wireless
hotspot menggunakan layanan DHCP untuk keperluan ini.

3. Gunakan web browser untuk mulai mengakses Internet. Jika Anda
mendapatkan tampilan web yang meminta login username dan password
(terkadang cukup password saja), maka Anda harus memasukan username
dan password yang sudah disiapkan. Jika Anda dapat langsung
menggunakan akses Internet, Anda beruntung. Dan mungkin Anda tidak
perlu membaca kelanjutan dari artikel ini. Namun kalau Anda hanya
dapat mengakses beberapa website tertentu saja, besar kemungkinan
Anda akan diminta username dan password untuk mengakses website
yang lainnya.

4. Jika Anda sudah memasukkan username dan password, dan berhasil
terautentikasi. Anda selanjutnya dapat mengakses Internet sampai
kredit akses Anda habis atau perhitungan akses dihitung setelah Anda
menggunakan akses Internet (ini biasanya berlaku bagi mereka yang
juga adalah pelanggan penyedia layanan Internet).


---// Mendapatkan Akses

Beberapa cara yang dapat dilakukan untuk mendapatkan akses wireless hotspot,
tergantung dari penyedia layanan, namun secara garis besar Anda dapat
melakukan hal-hal berikut:

1. Membeli prepaid card. Penyedia layanan seperti CBN, Indosat, dan
BizNet menyediakan prepaid card dengan nominal tertentu.

2. Membayar hak akses dengan kartu kredit. Berlaku jika penyedia layanan
memberikan pilihan ini. Saya hanya menemukan fitur ini pada wireless
hotspot di luar negeri.

3. Registrasi via SMS. Penyedia layanan wireless hotspot yang juga
penyedia layanan telekomunikasi selular bergerak biasanya memberikan
kemudahan pada pelanggannya. Hak akses online pada wireless hotspot
dapat ditukar dengan nilai kredit kartu telepon selular pra-bayar.
Saya pernah menemukan Indosat memberikan layanan ini.

4. Mengalihkan tagihan online pada tagihan kamar hotel. Ini berlaku
jika Anda menggunakan layanan wireless hotspot dari kamar hotel
dimana harga yang harus dibayarkan nanti seringkali jauh lebih
mahal. Sebagai contoh, M@giNET bekerja sama dengan hotel Westin
di Kuala Lumpur, untuk memberikan layanan wireless akses bagi mereka
yang menginap di hotel tersebut.

5. Melakukan aktivitas social engineering untuk mendapatkan username
dan password. Silakan mengira-ngira sendiri karena saya tidak akan
membahas hal ini.

6. Mencari jalan keluar sendiri untuk mendapatkan username dan password
atau untuk langsung dapat menggunakan layanan akses Internet.
Beberapa trik akan dijelaskan pada bagian lain di artikel ini.


---// Analisis Desain Wireless Hotspot

Beberapa hal yang saya berhasil saya simpulkan dari sejumlah implementasi wireless
hotspot yang telah saya coba, antara lain:

1. Tidak adanya standarisasi untuk setup sebuah hotspot. Dengan kata
lain, setup jaringan dari penyedia layanan akan berbeda dengan
penyedia layanan yang lain. Hal lain yang berpengaruh adalah
pemilihan produk.

2. Banyak dari penyedia layanan wireless hotspot yang memberikan akses
roaming, memungkinkan pengguna untuk mengakses layanan di tempat
yang berbeda asalkan ada layanan dari penyedia yang dimaksud.
Sebagai contoh, jika Anda memiliki hak akses untuk layanan wireless
hotspot yang disediakan oleh Indosat, maka Anda dapat mengakses
dilebih dari 30 tempat, dengan akses point berjumlah lebih dari
190 buah. Dan sebagai informasi tambahan, kesemua akses point
tersebut semuanya terhubung dan dikontrol dari pusat.

3. Autentikasi biasanya digunakan untuk keperluan akses Internet.
Yang berarti jika Anda terhubung ke sebuah akses point wireless
hotspot namun tidak ingin mendapatkan akses Internet, Anda masih
dapat menggunakan jaringan wireless secara lokal dan berhubungan
dengan pengguna jaringan wireless yang lain (jika dan hanya jika
penyedia layanan mengijinkan hal ini).

4. Untuk keperluan autentikasi, penyedia layanan biasanya akan
menyediakan Internet gateway (yang biasanya terdapat web server,
DNS server, database server, dan mail server di dalamnya) dan satu
atau lebih akses point. Beberapa produk yang sering digunakan
sebagai Internet gateway untuk layanan hotspot antara lain
diproduksi oleh ANTLabs (seperti yang digunakan oleh Indosat dan
CBN), Nomadix (digunakan oleh M@giNET), perangkat lunak gratis
NoCatsAuth atau yang serupa (seperti yang digunakan oleh Melsa).

5. Seringkali tidak ditemukan segregasi jaringan untuk pengguna. Baik
bagi mereka yang belum terautentikasi maupun yang belum. Hal ini
memungkinkan seseorang melakukan aktivitas hacking terhadap
pengguna layanan wireless hotspot yang lain.

6. Juga sering ditemukan para penyedia layanan wireless (ataupun
produsen produk Internet gateway) menggunakan aplikasi yang sudah
out-of-date. Sebagai contoh, sebuah produk ANTLabs menggunakan
Red Hat Linux release 6.2 (Zoot) sebagai sistem operasi.
Terhitung perangkat lunak yang digunakan seperti MySQL, arpd, dan
Apache, juga out-of-date.


---// Mengakali Proses Autentikasi 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. Mengingat bahwa materi sudah pernah
dipresentasikan di depan publik, besar kemungkinan penyedia layanan
maupun vendor dari produk-produk yang terkena dampaknya sudah
memperbaiki celah-celah yang dimaksud.

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 (kebetulan saya
menggunakan Mac OS X).


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 ort/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. 0x05

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.

Silakan merujuk pada referensi DNS Tunneling [3] [4] [5] [6] [7] .

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.


---// Penutup Bagian I

Seperti yang sudah disinggung di atas, materi yang dibahas pada artikel ini
hanya setengah dari keseluruhan materi. Pada bagian kedua akan dibahas
mengenai isu bocornya identitas pengguna yang menggunakan wireless hotspot,
dan pemanfaatan teknik 'eviltwin' untuk mengelabui pengguna serta isu lain
yang berhubungan dengan penggunaan wireless hotspot.

Jika Anda adalah pengguna dan menemukan kesulitan dalam mereplikasikan
teknik-teknik yang disebutkan, saya hanya dapat mengatakan bahwa artikel
ini tidak ditujukan untuk memberikan panduan mudah hacking wireless
hotspot. Ide dan trik yang dibahas dapat Anda kembangkan sendiri.

Bila Anda melakukan tindakan berdasarkan teknik-teknik yang dijelaskan
di atas dan kemudian menghadapi masalah hukum. Anda adalah orang bodoh.



---// Referensi

1). Hack In The Box Security Conference 2005,
http://conference.hackinthebox.org/

2). IT-Underground Prague 2006,
http://itunderground.org/en/conferences/it_underground.html

3). NSTX (IP-over-DNS) Howto,
http://thomer.com/howtos/nstx.html

4). DNS tunneling,
http://www.daemon.be/maarten/dnstunnel.html

5). DNStunnel.de - Free DNS Tunneling Service,
http://dnstunnel.de/

6). Public Access to Tor via DNS,
http://afs.eecs.harvard.edu/~goodell/blossom/tor-via-dns.html

7). Quick tunneling IP over DNS guide,
http://www.digitalsec.net/stuff/texts/dns-tunnelingv0.2-en.txt

8). Bypassing Authenticated Wireless Networks,
http://www.defcon.org/images/defcon-13/dc13-presentations/
DC_13-Pierce-Edwards-Lineberry/DC_13-Pierce-Edwards-Lineberry.pdf

Tidak ada komentar: