Pada dasarnya, komunikasi yang terjadi antar komputer dalam sebuah jaringan menggunakan alamat IP. Nah di sini lah fungsi DNS, sistem tersebut akan menterjemahkan nama domain atau host yang diminta oleh user menjadi sebuah alamat IP. Sebagai contoh ketika user mengetikkan host www. google.com, maka oleh sistem DNS, domain tersebut di terjemahkan menjadi 74.125.235.16 (IP versi 4).
1. Pendahuluan
Di backTrack, kita dapat menggunakan aplikasi nslookup, host, dig, ataupun tool lainnya untuk mencari informasi DNS sebuah domain. Sebagai contoh kita gunakan tool nslookup dengan target www.backtrack-linux.org
1 2 3 4 5 6 7 8 | root@bt:~# nslookup> bactrack-linux.orgServer: 192.168.136.2Address: 192.168.136.2#53Non-authoritative answer:Name: bactrack-linux.orgAddress: 208.73.210.29 |
dari contoh di atas, kita terhubung dengan DNS server local (192.168.136.2) dan memerintahkan server tersebut untuk menterjemahkan alamat domain www.bactrack-linux.org. Lalu DNS server membalas bahwa alamat IP domain tersebut adalah 208.73.210.29.
- MX Queries
MX queries adalah perintah untuk mengidentifikasi mail server sebuah domain. Silahkan perhatikan contoh berikut:
1234567891011root@bt:~# nslookup>settype=mx> backtrack-linux.orgServer: 192.168.136.2Address: 192.168.136.2#53Non-authoritative answer:backtrack-linux.org mail exchanger = 10 aspmx.l.google.com.backtrack-linux.org mail exchanger = 15 alt1.aspmx.l.google.com.backtrack-linux.org mail exchanger = 20 alt2.aspmx.l.google.com.backtrack-linux.org mail exchanger = 25 aspmx2.googlemail.com.
Dari contoh di atas, kita dapat mengetahui bahwa ada 4 mail server yang digunakan dimana masing server memiliki nilai "cost" 10, 15, 20, 25. Dari nilai-nilai cost tersebut, semakin rendah nilai cost maka server tersebut merupakan mail server yang di utamakan. sedangkan yang lain merupakan mail server cadangan. Sehingga dapat disimpulkan mesin aspmx adalah mail server utama yang digunakan backtrack-linux.org.
- NS Queries
NS queries digunakan untuk mengetahui DNS server authoritative yang digunakan sebuah domain.
123456789101112131415root@bt:~# nslookup>settype=ns> backtrack-linux.orgServer: 192.168.136.2Address: 192.168.136.2#53Non-authoritative answer:backtrack-linux.org nameserver = alex.ns.cloudflare.com.backtrack-linux.org nameserver = nina.ns.cloudflare.com.Authoritative answers can be found from:alex.ns.cloudflare.com internet address = 173.245.59.100alex.ns.cloudflare.com has AAAA address 2400:cb00:2049:1::adf5:3b64nina.ns.cloudflare.com internet address = 173.245.58.136nina.ns.cloudflare.com has AAAA address 2400:cb00:2049:1::adf5:3a88
Dari contoh diatas, diketahui bahwa backtrack-linux.org menggunakan DNS server yaitu alex.ns dan nina.ns.
2. Automating Lookup
Dalam proses pengumpulan informasi DNS, dapat digolongkan dalam 3 teknik, yaitu:
- Forward lookup bruteforce
Ide dari metode ini adalah kita menebak nama server domain yang digunakan target. Sebagai contoh, kita akan me-resolve domain www.checkpoint.com, lalu kemudian kita menebak salah satu nama server yang digunakan:
123456root@bt:~# host www.checkpoint.comwww.checkpoint.com has address 216.200.241.66www.checkpoint.com has IPv6 address 2620:0:2a01:2::1a10root@bt:~# host idontexist.checkpoint.comHost idontexist.checkpoint.com not found: 3(NXDOMAIN)root@bt:~#
Ternyata server idontexist.checkpoint.com tidak ada. Coba bayangkan sebentar, berapa banyak waktu yang dihabiskan untuk melakukan tebak-tebak jenggo secara manual. Untuk memudahkan pekerjaan kita, kita buat sebuah file semacam wordlist dengan nama file "dns-names.txt"
123456789101112wwwwww1www2firewallciscocheckpointsmtppop3proxydnsdns1ns
Lalu kita buat lagi sebuah file execute untuk menjalankan tebak-tebak jenggo DNS secara bruteforce :p
1234#!bin.bashfornamein$(cat dns-names.txt);dohost $name.checkpoint.comdone
Kemudian kita simpan dengan nama file "dodnsa.sh" jalankan file tersebut (oya jangan lupa ganti permission file tersebut ye....), dan hasilnya adalah sebagai berikut:
123456789101112131415161718#!bin.bashroot@bt:~# ./dodnsa.shwww.checkpoint.com has address 216.200.241.66www.checkpoint.com has IPv6 address 2620:0:2a01:2::1a10Host www1.checkpoint.com not found: 3(NXDOMAIN)www2.checkpoint.comisan aliasforwww.checkpoint.com.www.checkpoint.com has address 216.200.241.66www.checkpoint.com has IPv6 address 2620:0:2a01:2::1a10Host firewall.checkpoint.com not found: 3(NXDOMAIN)Host cisco.checkpoint.com not found: 3(NXDOMAIN)Host checkpoint.checkpoint.com not found: 3(NXDOMAIN)smtp.checkpoint.com has address 194.29.34.68pop3.checkpoint.comisan aliasformichael.checkpoint.com.michael.checkpoint.comisan aliasforsmtp.checkpoint.com.smtp.checkpoint.com has address 194.29.34.68Host proxy.checkpoint.com not found: 3(NXDOMAIN)Host dns.checkpoint.com not found: 3(NXDOMAIN)Host dns1.checkpoint.com not found: 3(NXDOMAIN)
Cuma informasi di atas masih agak berantakan, mari kita rapikan dengan mengedit sintaks pada file "dodnsa.sh" sehingga menjadi seperti berikut:
1234#!bin.bashfornamein$(cat dns-names.txt);dohost $name.checkpoint.com | grep"has address"done
sehingga hasilnya menjadi seperti ini:
123456root@bt:~# ./dodnsa.shwww.checkpoint.com has address 216.200.241.66www.checkpoint.com has address 216.200.241.66smtp.checkpoint.com has address 194.29.34.68smtp.checkpoint.com has address 194.29.34.68ns.checkpoint.com has address 194.29.32.199
Klo pengen cuma nampilin alamat IP nya aja, file "dodnsa.sh" dimodif lagi jadi kayak gini:
1234#!bin.bashfornamein$(cat dns-names.txt);dohost $name.checkpoint.com | grep"has address"|cut -d" "-f4done
sehingga bila dijalankan kembali, hasilnya adalah sebagai berikut:
123456root@bt:~# ./dodnsa.sh216.200.241.66216.200.241.66194.29.34.68194.29.34.68194.29.32.199
Setelah didapat range IP dari domain chekcpoint.com, kita dapat mengetahui whois dari IP tersebut dengan menggunakan tool whois.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970root@bt:~# whois 194.29.47.199% Thisisthe RIPE Database query service.% The objects areinRPSL format.%% The RIPE Databaseissubject to Terms and Conditions.% See http://www.ripe.net/db/support/db-terms-conditions.pdf% Note:thisoutput has been filtered.% To receive outputfora database update, use the"-B"flag.% Information related to'194.29.32.0 - 194.29.47.255'inetnum: 194.29.32.0 - 194.29.47.255netname: CHECKPOINTdescr: Check Point Software Technologies LTDorg: ORG-CA790-RIPEcountry: ILadmin-c: BB4445-RIPEtech-c: NN105-RIPEstatus: ASSIGNED PImnt-by: RIPE-NCC-END-MNTmnt-lower: RIPE-NCC-END-MNTmnt-by: NV-MNT-RIPEmnt-routes: NV-MNT-RIPEsource: RIPE # Filteredorganisation: ORG-CA790-RIPEorg-name: Check Point Software Technologies LTDadmin-c: BB4445-RIPEorg-type: OTHERaddress: 5 Ha'Solelim Street, Tel Aviv 67897, Israele-mail: noc-team@netvision.net.ilmnt-ref: NV-MNT-RIPEmnt-by: NV-MNT-RIPEsource: RIPE # Filteredrole: Netvision NOC teamaddress: Omega Buildingaddress: MATAM industrial parkaddress: Haifa 31905address: Israelphone: +972 4 8560 600fax-no: +972 4 8551 132e-mail: abuse@013netvision.co.ilremarks: trouble: Send Spam and Abuse complains ONLY to the above address!e-mail: ripetech@013netvision.co.iladmin-c: NVAC-RIPEtech-c: NVTC-RIPEnic-hdl: NN105-RIPEmnt-by: NV-MNT-RIPEsource: RIPE # Filteredperson: Bill Baraschaddress: Check Point Software Technologies Ltd.address: 5 Ha'Solelim Street, Tel Aviv 67897, Israele-mail: barasch@checkpoint.comphone: +972-3-753-4555nic-hdl: BB4445-RIPEsource: RIPE # Filtered% Information related to'194.29.32.0/20AS25046'route: 194.29.32.0/20descr: Check Point Software Technologies LTD.origin: AS25046mnt-by: NV-MNT-RIPEsource: RIPE # Filteredroot@bt:~#
Dari contoh di atas, kita juga bisa mengetahui IP block milik www.checkpoint.com adalah 194.29.32.0/20
- Reverse lookup bruteforce
Setelah kita mengetahui block IP dari www. checkpoint.com, kita dapat melakukan metode jenis kedua dalam pengumpulan informasi DNS, yaitu Reverse lookup bruteforce.
Bedanya forward DNS dengan reverse DNS apa sih? Kalau forward DNS, kita dapat mengetahui alamat IP dari sebuah domain, dan sebaliknya dengan reverse DNS kita dapat mengetahui nama domain dari sebuah alamat IP
Dengan menggunakan sintaks host, kita dapat menjalankan reverse / pointer (PTR) DNS query seperti contoh berikut:
123root@bt:~# host 194.29.32.129129.32.29.194.in-addr.arpa domain name pointer natasha-gw.checkpoint.com.root@bt:~#
Dari contoh di atas, bahwa IP 194.29.32.129 menghasilkan natasha-gw.checkpoint.com. Oke, sekarang mari kita buat script bash untuk melakukan scanning secara otomatis dan bruteforce menggunakan block IP checkpoint yang telah kita dapatkan sebelumnya :)
1234567#!/bin/bashecho"Please enter class C IP network range:"echo"eg: 194.29.32"read rangeforipin`seq 1 254`;dohost $range.$ip |grep"name pointer"|cut -d" "-f5done
Simpan dengan nama file "dodnsr.sh", lalu jalankan script tersebut.
1234567891011121314151617root@bt:~# ./dodnsr.shPlease enterclassC IP network range:eg: 194.29.32194.29.32dyn32-1.checkpoint.com.dyn32-2.checkpoint.com.dyn32-3.checkpoint.com.dyn32-4.checkpoint.com.dyn32-5.checkpoint.com.dyn32-6.checkpoint.com.........sofaware30.checkpoint.com.sofaware20.checkpoint.com.iphone.checkpoint.com.sofaware10.checkpoint.com.root@bt:~#
- Zone transfer
Zone transfer adalah sebuah metode untuk melakukan replikasi terhadap sebuah DNS server utama ke DNS server sekunder. Administrator memanfaatkan metode zone transfer untuk meringankan kinerja server utama dalam menangani request dari user, sehingga sebagian di tangani oleh DNS server sekunder.
Namun seringkali administrator melakukan kesalahan dalam konfigurasi DNS zone transfer sehingga akan muncul nama-nama domain yang berada di dalam zone transfer ketika hacker melakukan scanning zone transfer.
Jadi dapat diambil kesimpulan sebuah zone transfer yang sukses ketika tidak ada result baik domain maupun versi DNS server yang direquest oleh hacker.
So... mari kita coba praktekkan. Pertama-tama kita coba kumpulkan informasi DNS server yang digunakan oleh sebuah domain
1234root@bt:~# host -t ns detik.comdetik.com name server ns.detik.net.id.detik.com name server ns1.detik.net.id.root@bt:~#
lalu mari kita coba praktekkan automating lookup dengan metode zone transfer dengan sitaks host atau dig:
12345678910111213141516171819202122root@bt:~# host -l detik.com ns1.detik.net.id; Transfer failed.Using domain server:Name: ns1.detik.net.idAddress: 203.190.240.131#53Aliases:Host detik.com.localdomain not found: 9(NOTAUTH); Transfer failed.root@bt:~# host -l detik.com ns.detik.net.id; Transfer failed.Using domain server:Name: ns.detik.net.idAddress: 203.190.242.2#53Aliases:Host detik.com.localdomain not found: 9(NOTAUTH); Transfer failed.root@bt:~#
Dari contoh di atas terlihat kita gagal melakukan query zone transfer, dan dapat dikatakan bahwa si empunya detik.com melakukan konfigurasi DNS server mereka dengan baik. Lalu bagaiman contoh sebuah scanning zone transfer yang sukses? lets see:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566root@bt:~# host -t ns goal.comgoal.com name server ns4.performgroup.com.goal.com name server ns1.performgroup.com.goal.com name server ns2.performgroup.com.goal.com name server ns3.performgroup.com.root@bt:~# host -l goal.com ns4.performgroup.comUsing domain server:Name: ns4.performgroup.comAddress: 87.83.27.124#53Aliases:goal.com name server ns1.performgroup.com.goal.com name server ns2.performgroup.com.goal.com name server ns3.performgroup.com.goal.com name server ns4.performgroup.com.goal.com has address 87.83.27.659886.goal.com has address 212.64.156.9k3.admin.goal.com has address 87.83.27.66adv.goal.com has address 184.73.160.71batch.goal.com has address 87.83.27.67qa.bluesteel1.goal.com has address 87.83.27.69cms.goal.com has address 87.83.27.68qa.cms.goal.com has address 87.83.27.64community.goal.com has address 208.74.204.211editor.goal.com has address 87.83.27.66forums1.goal.com has address 67.192.144.175inbox.ftp.goal.com has address 87.83.27.64gd.goal.com has address 212.64.156.10kr.goal.com has address 87.83.27.65livescore.goal.com has address 87.83.27.65preview.m.goal.com has address 87.83.27.68i.preview.m.goal.com has address 87.83.27.68qa.m.goal.com has address 87.83.27.69i.qa.m.goal.com has address 87.83.27.69www.m.goal.com has address 87.83.27.65qa.merged.goal.com has address 87.83.27.69mobile.goal.com has address 87.83.27.65newsletter.goal.com has address 62.216.253.136perform.goal.com has address 87.83.27.65preview.goal.com has address 87.83.27.68qa.goal.com has address 87.83.27.69qa-images.goal.com has address 87.83.27.69adv.rs.goal.com has address 184.73.160.71i.rs.goal.com has address 87.83.27.65i1.rs.goal.com has address 87.83.27.65i2.rs.goal.com has address 87.83.27.65m.rs.goal.com has address 87.83.27.65u.rs.goal.com has address 87.83.27.65u1.rs.goal.com has address 87.83.27.65u2.rs.goal.com has address 87.83.27.65www.rs.goal.com has address 87.83.27.65qa.section1.goal.com has address 87.83.27.69secure.goal.com has address 87.83.27.65preview.secure.goal.com has address 87.83.27.68qa.secure.goal.com has address 87.83.27.69translate.goal.com has address 87.83.27.67vas.goal.com has address 212.64.156.9vas-india.goal.com has address 202.65.157.33w.goal.com has address 87.83.27.65wap.goal.com has address 87.83.27.65ww.goal.com has address 87.83.27.65wwww.goal.com has address 87.83.27.65root@bt:~#
1 | root@bt:~# cd /pentest/enumeration/dns/dnsenum |
lalu jalankan sintaks dengan formula sebagai berikut:
1 | ./dnsenum.pl <domain/host> <dns.txt> |
Tidak ada komentar:
Posting Komentar