DNS, merupakan kepanjangan dari Domain Name System, adalah sebuah sistem yang menyimpan informasi tentang nama host maupun nama domain dalam bentuk basis data tersebar (distributed database) di dalam jaringan komputer, misalkan: Internet. DNS menyediakan alamat IP untuk setiap nama host dan mendata setiap server transmisi surat (mail exchange server) yang menerima surel (email) untuk setiap domain.
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
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.
2. Automating Lookup
Dalam proses pengumpulan informasi DNS, dapat digolongkan dalam 3 teknik, yaitu:
lalu jalankan sintaks dengan formula sebagai berikut:
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
root@bt:~# nslookup > bactrack-linux.org Server: 192.168.136.2 Address: 192.168.136.2#53 Non-authoritative answer: Name: bactrack-linux.org Address: 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:
root@bt:~# nslookup > set type=mx > backtrack-linux.org Server: 192.168.136.2 Address: 192.168.136.2#53 Non-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.
root@bt:~# nslookup > set type=ns > backtrack-linux.org Server: 192.168.136.2 Address: 192.168.136.2#53 Non-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.100 alex.ns.cloudflare.com has AAAA address 2400:cb00:2049:1::adf5:3b64 nina.ns.cloudflare.com internet address = 173.245.58.136 nina.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:
root@bt:~# host www.checkpoint.com www.checkpoint.com has address 216.200.241.66 www.checkpoint.com has IPv6 address 2620:0:2a01:2::1a10 root@bt:~# host idontexist.checkpoint.com Host 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"
www www1 www2 firewall cisco checkpoint smtp pop3 proxy dns dns1 ns
Lalu kita buat lagi sebuah file execute untuk menjalankan tebak-tebak jenggo DNS secara bruteforce :p
#!bin.bash for name in $(cat dns-names.txt);do host $name.checkpoint.com done
Kemudian kita simpan dengan nama file "dodnsa.sh" jalankan file tersebut (oya jangan lupa ganti permission file tersebut ye....), dan hasilnya adalah sebagai berikut:
#!bin.bash root@bt:~# ./dodnsa.sh www.checkpoint.com has address 216.200.241.66 www.checkpoint.com has IPv6 address 2620:0:2a01:2::1a10 Host www1.checkpoint.com not found: 3(NXDOMAIN) www2.checkpoint.com is an alias for www.checkpoint.com. www.checkpoint.com has address 216.200.241.66 www.checkpoint.com has IPv6 address 2620:0:2a01:2::1a10 Host 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.68 pop3.checkpoint.com is an alias for michael.checkpoint.com. michael.checkpoint.com is an alias for smtp.checkpoint.com. smtp.checkpoint.com has address 194.29.34.68 Host 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:
#!bin.bash for name in $(cat dns-names.txt);do host $name.checkpoint.com | grep "has address" done
sehingga hasilnya menjadi seperti ini:
root@bt:~# ./dodnsa.sh www.checkpoint.com has address 216.200.241.66 www.checkpoint.com has address 216.200.241.66 smtp.checkpoint.com has address 194.29.34.68 smtp.checkpoint.com has address 194.29.34.68 ns.checkpoint.com has address 194.29.32.199
Klo pengen cuma nampilin alamat IP nya aja, file "dodnsa.sh" dimodif lagi jadi kayak gini:
#!bin.bash for name in $(cat dns-names.txt);do host $name.checkpoint.com | grep "has address" |cut -d" " -f4 done
sehingga bila dijalankan kembali, hasilnya adalah sebagai berikut:
root@bt:~# ./dodnsa.sh 216.200.241.66 216.200.241.66 194.29.34.68 194.29.34.68 194.29.32.199
Setelah didapat range IP dari domain chekcpoint.com, kita dapat mengetahui whois dari IP tersebut dengan menggunakan tool whois.
root@bt:~# whois 194.29.47.199 % This is the RIPE Database query service. % The objects are in RPSL format. % % The RIPE Database is subject to Terms and Conditions. % See http://www.ripe.net/db/support/db-terms-conditions.pdf % Note: this output has been filtered. % To receive output for a 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.255 netname: CHECKPOINT descr: Check Point Software Technologies LTD org: ORG-CA790-RIPE country: IL admin-c: BB4445-RIPE tech-c: NN105-RIPE status: ASSIGNED PI mnt-by: RIPE-NCC-END-MNT mnt-lower: RIPE-NCC-END-MNT mnt-by: NV-MNT-RIPE mnt-routes: NV-MNT-RIPE source: RIPE # Filtered organisation: ORG-CA790-RIPE org-name: Check Point Software Technologies LTD admin-c: BB4445-RIPE org-type: OTHER address: 5 Ha'Solelim Street, Tel Aviv 67897, Israel e-mail: noc-team@netvision.net.il mnt-ref: NV-MNT-RIPE mnt-by: NV-MNT-RIPE source: RIPE # Filtered role: Netvision NOC team address: Omega Building address: MATAM industrial park address: Haifa 31905 address: Israel phone: +972 4 8560 600 fax-no: +972 4 8551 132 e-mail: abuse@013netvision.co.il remarks: trouble: Send Spam and Abuse complains ONLY to the above address! e-mail: ripetech@013netvision.co.il admin-c: NVAC-RIPE tech-c: NVTC-RIPE nic-hdl: NN105-RIPE mnt-by: NV-MNT-RIPE source: RIPE # Filtered person: Bill Barasch address: Check Point Software Technologies Ltd. address: 5 Ha'Solelim Street, Tel Aviv 67897, Israel e-mail: barasch@checkpoint.com phone: +972-3-753-4555 nic-hdl: BB4445-RIPE source: RIPE # Filtered % Information related to '194.29.32.0/20AS25046' route: 194.29.32.0/20 descr: Check Point Software Technologies LTD. origin: AS25046 mnt-by: NV-MNT-RIPE source: RIPE # Filtered root@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:
root@bt:~# host 194.29.32.129 129.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 :)
#!/bin/bash echo "Please enter class C IP network range:" echo "eg: 194.29.32" read range for ip in `seq 1 254`;do host $range.$ip |grep "name pointer" |cut -d" " -f5 done
Simpan dengan nama file "dodnsr.sh", lalu jalankan script tersebut.
root@bt:~# ./dodnsr.sh Please enter class C IP network range: eg: 194.29.32 194.29.32 dyn32-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
root@bt:~# host -t ns detik.com detik.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:
root@bt:~# host -l detik.com ns1.detik.net.id ; Transfer failed. Using domain server: Name: ns1.detik.net.id Address: 203.190.240.131#53 Aliases: 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.id Address: 203.190.242.2#53 Aliases: 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:
root@bt:~# host -t ns goal.com goal.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.com Using domain server: Name: ns4.performgroup.com Address: 87.83.27.124#53 Aliases: 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.65 9886.goal.com has address 212.64.156.9 k3.admin.goal.com has address 87.83.27.66 adv.goal.com has address 184.73.160.71 batch.goal.com has address 87.83.27.67 qa.bluesteel1.goal.com has address 87.83.27.69 cms.goal.com has address 87.83.27.68 qa.cms.goal.com has address 87.83.27.64 community.goal.com has address 208.74.204.211 editor.goal.com has address 87.83.27.66 forums1.goal.com has address 67.192.144.175 inbox.ftp.goal.com has address 87.83.27.64 gd.goal.com has address 212.64.156.10 kr.goal.com has address 87.83.27.65 livescore.goal.com has address 87.83.27.65 preview.m.goal.com has address 87.83.27.68 i.preview.m.goal.com has address 87.83.27.68 qa.m.goal.com has address 87.83.27.69 i.qa.m.goal.com has address 87.83.27.69 www.m.goal.com has address 87.83.27.65 qa.merged.goal.com has address 87.83.27.69 mobile.goal.com has address 87.83.27.65 newsletter.goal.com has address 62.216.253.136 perform.goal.com has address 87.83.27.65 preview.goal.com has address 87.83.27.68 qa.goal.com has address 87.83.27.69 qa-images.goal.com has address 87.83.27.69 adv.rs.goal.com has address 184.73.160.71 i.rs.goal.com has address 87.83.27.65 i1.rs.goal.com has address 87.83.27.65 i2.rs.goal.com has address 87.83.27.65 m.rs.goal.com has address 87.83.27.65 u.rs.goal.com has address 87.83.27.65 u1.rs.goal.com has address 87.83.27.65 u2.rs.goal.com has address 87.83.27.65 www.rs.goal.com has address 87.83.27.65 qa.section1.goal.com has address 87.83.27.69 secure.goal.com has address 87.83.27.65 preview.secure.goal.com has address 87.83.27.68 qa.secure.goal.com has address 87.83.27.69 translate.goal.com has address 87.83.27.67 vas.goal.com has address 212.64.156.9 vas-india.goal.com has address 202.65.157.33 w.goal.com has address 87.83.27.65 wap.goal.com has address 87.83.27.65 ww.goal.com has address 87.83.27.65 wwww.goal.com has address 87.83.27.65 root@bt:~#
root@bt:~# cd /pentest/enumeration/dns/dnsenum
lalu jalankan sintaks dengan formula sebagai berikut:
./dnsenum.pl <domain/host> <dns.txt>
Komentar