Rabu, 27 Juni 2012

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



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.

  1. MX Queries
    MX queries adalah perintah untuk mengidentifikasi mail server sebuah domain. Silahkan perhatikan contoh berikut:


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    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:

    1
    2
    3
    4
    5
    6
    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"

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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

    1
    2
    3
    4
    #!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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #!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:

    1
    2
    3
    4
    #!bin.bash
    for name in $(cat dns-names.txt);do
    host $name.checkpoint.com | grep "has address"
    done

    sehingga hasilnya menjadi seperti ini:

    1
    2
    3
    4
    5
    6
    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:


    1
    2
    3
    4
    #!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:

    1
    2
    3
    4
    5
    6
    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.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    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:

    1
    2
    3
    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 :)

    1
    2
    3
    4
    5
    6
    7
    #!/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.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    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
    1
    2
    3
    4
    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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    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:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    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:

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