Langsung ke konten utama

DNS reconnaissance

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


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.

  1. 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.


  2. 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:
  1. 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

  2. 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:~#


  3. 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:~# 
    



Sebenarnya, BackTrack sudah menyediakan tool yang dapat melakukan ketiga metode DNS reconnaissance yang telah dijelaskan di atas. Yaitu menggunakan tool "dnsenum", silahkan lakukan cd ke:

root@bt:~# cd /pentest/enumeration/dns/dnsenum

lalu jalankan sintaks dengan formula sebagai berikut:

./dnsenum.pl <domain/host> <dns.txt>

Komentar

Postingan populer dari blog ini

DNS Spoofing

DNS Spoofing adalah salah satu metode hacking Man In The Middle Attack (MITM). Hampir sama konsepnya dengan ARP Spoofing, tapi yang membedakan adalah Attacker akan memalsukan alamat IP dari sebuah domain. DNS adalah Domain Name Server, yaitu server yang digunakan untuk mengetahui IP Address suatu host lewat host name-nya. Dalam dunia internet, komputer berkomunikasi satu sama lain dengan mengenali IP Address-nya. Namun bagi manusia tidak mungkin menghafalkan IP address tersebut, manusia lebih mudah menghapalkan kata-kata seperti www.yahoo.com, www.google.com, atau www.facebook.com. DNS berfungsi untuk mengkonversi nama yang bisa terbaca oleh manusia ke dalam IP addresshost yang bersangkutan untuk dihubungi. Jadi ketika target melakukan request terhadap sebuah alamat domain dengan alamat IP A, dengan DNS Spoofing, oleh gateway request user tersebut akan di forward ke alamat IP palsu dari attacker. Oke, saatnya kita kita mencoba melakukan DNS Spoofing dengan menggunakan aplikasi

ARP Spoofing (Soft Way)

Jika artikel saya sebelumnya mencoba menjelaskan langkah-langkah melakukan ARP Spoofing dengan cara konvensional tanpa bantuan tools khusus (istilah lebay nya hard way ), kali ini saya akan mencoba lagi berbagi cara melakukan ARP Spoofing dengan menggunakan tool ARP Spoofing yaitu Ettercap. ARP Spoofing adalah sebuah teknik penyadapan oleh pihak ketiga yang dilakukan dalam sebuah jaringan LAN. Dengan metode tersebut,  attacker  dapat menyadap transmisi, modifikasi trafik, hingga menghentikan trafik komunikasi antar dua mesin yang terhubung dalam satu jaringan lokal (LAN).

Remote Shell Memanfaatkan Buffer Overflow Exploitation

Pada artikel Belajar Metode Fuzzing dengan SPIKE - Automasi Fuzzing , kita telah mengetahui bug  pada aplikasi vulnserver dengan mentode fuzzing. Salah satu bug pada aplikasi tersebut adalah ketika kita mengirimkan perintah TRUN dan diikuti karakter-karakter tertentu yang pada akhirnya mengakibatkan vulnserver mengalami crash atau access violation. Menurut Mati Aharoni (founder Backtrack), sebelum melakukan exploit terhadap bugs dari buffer overflow exploitation kita harus mempelajari bagaimana aplikasi tersebut mengalami crash dan memahaminya dengan lebih baik. Ada beberapa pertanyaan yang perlu dijawab: