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.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:
1234567891011root@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.
123456789101112131415root@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:
123456root@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"
123456789101112www
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
1234#!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:
123456789101112131415161718#!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:
1234#!bin.bash
for
name
in
$(cat dns-names.txt);
do
host $name.checkpoint.com | grep
"has address"
done
sehingga hasilnya menjadi seperti ini:
123456root@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:
1234#!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:
123456root@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.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970root@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:
123root@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 :)
1234567#!/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.
1234567891011121314151617root@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
1234root@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:
12345678910111213141516171819202122root@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:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566root@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:~#
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