Nmap掃描教程之DNS服務類

Nmap掃描教程之DNS服務類

Nmap DNS服務類

DNSDomain Name System,域名系統)的做用就是將主機名解析爲對應IP地址的過程。一般主機域名的通常結構爲:主機名.三級域名.二級域名.頂級域名。因此,DNS服務器在解析一個主機名時,須要一級一級的進行解析,即遞歸查詢。爲了方便用戶下次訪問,DNS服務器會將解析過的主機名臨時緩存。經過對DNS服務器進行掃描,能夠獲取到一些基本信息。如版本、服務器地址及緩存的域名等。本節將介紹DNS服務掃描方法。sql

Nmap獲取DNS信息

經過請求DNS服務器的ID,而且訪問ID,能夠獲取DNS名稱服務的相關信息。在Nmap中,dns-nsid腳本能夠用來發送ID請求,而且獲取DNS的詳細信息。其中,包括NSIDID的服務及版本。dns-nsid腳本的語法格式以下所示:緩存

  • nmap -sSU -p 53 --script dns-nsid [目標]服務器

以上語法中的「-sSU」選項表示進行UDPTCP SYN掃描。app

【示例1-4】獲取目標主機RHEL 6.4DNS信息。執行命令以下所示:dom

  • root@localhost :~# nmap -sSU -p 53 --script dns-nsid 192.168.1.104tcp

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-28 16:04 CSToop

  • Nmap scan report for localhost (192.168.1.104)spa

  • Host is up (0.00033s latency).操作系統

  • PORT   STATE SERVICE.net

  • 53/tcp open  domain

  • 53/udp open  domain

  • | dns-nsid:

  • |_  bind.version: 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6                                    #版本

  • MAC Address: 00:0C:29:2A:69:34 (VMware)

  • Nmap done: 1 IP address (1 host up) scanned in 0.54 seconds

從以上輸出信息中,能夠看到獲取到目標主機上DNS服務的版本信息爲9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6

Nmap DNS服務發現協議

DNS服務發現協議容許客戶端發現一個服務器列表。經過發送DNS-SD查詢廣播包,能夠從響應包中獲取到一個服務列表。在Nmap中,broadcast-dns-service-discovery腳本能夠發送DNS-SD廣播包,而且獲取一個服務列表。其中,語法格式以下所示:

  • nmap --script=broadcast-dns-service-discovery

【示例1-5】使用broadcast-dns-service-discovery腳本發送DNS-SD廣播包。執行命令以下所示:

  • root@localhost :~# nmap --script=broadcast-dns-service-discovery

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-21 13:56 CST

  • Pre-scan script results:

  • | broadcast-dns-service-discovery:

  • |   192.168.1.101

  • |     47989/tcp nvstream                                                                                    #nvstream服務信息

  • |_      Address=192.168.1.101 fe80:0:0:0:744c:a0ee:dbfd:769     #nvstream服務地址

  • WARNING: No targets were specified, so 0 hosts scanned.

  • Nmap done: 0 IP addresses (0 hosts up) scanned in 7.06 seconds

從以上輸出信息中,能夠看到收到一個地址爲192.168.1.101主機的響應包。從該響應包中,能夠看到目標主機192.168.1.101上有一個使用DNS服務發現協議的服務。其中,服務名稱爲nvstream、端口號爲47989、協議爲TCP、服務的地址爲192.168.1.101

Nmap 探測主機是否容許DNS遞歸查詢

DNS服務器的主要做用就是進行域名解析。DNS進行域名解析時,一般會使用遞歸查詢和迭代查詢。其中,遞歸查詢是最多見的查詢方式。在Nmap中,dns-recursion腳本能夠用來探測一臺主機是否容許DNS遞歸查詢。其中,語法格式以下所示:

  • nmap -sU -p 53 --script=dns-recursion [目標]

【示例1-6】探測目標主機RHEL 6.4是否容許DNS遞歸查詢。執行命令以下所示:

  • root@localhost :~# nmap -sU -p 53 --script=dns-recursion 192.168.1.104

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-05-28 16:10 CST

  • Nmap scan report for localhost (192.168.1.104)

  • Host is up (0.00030s latency).

  • PORT   STATE SERVICE

  • 53/udp open  domain

  • |_dns-recursion: Recursion appears to be enabled                                        #遞歸查詢已啓用

  • MAC Address: 00:0C:29:2A:69:34 (VMware)

  • Nmap done: 1 IP address (1 host up) scanned in 2.58 seconds

從輸出的信息,能夠看到目標主機上的DNS遞歸查詢已開啓。

Nmap枚舉DNS服務器的主機名

主機名就是計算機的名字,網上鄰居就是根據主機名來識別的,該名字能夠隨時更改。經過暴力破解通用的子域,能夠枚舉DNS服務器的主機名。在Nmap中,dns-brute腳本能夠枚舉DNS服務器的主機名。其中,語法格式以下所示:

  • nmap --script dns-brute --script-args dns-brute.domain=[域名],dns-brute.threads=[number],dns-brute.hostlist=[主機名列表],newtargets -sS -p 80 [域名]

以上語法中「dns-brute.domain 參數是用來指定破解的域名,如baidu.com;「dns-brute.threads」參數是用來指定破解的線程數,默認是5;「dns-brute.hostlist」參數是用來指定一個主機名列表文件的,用於dns-brute腳本進行破解。默認,破解使用的主機名列表文件是/usr/share/nmap/nselib/data/vhosts-default.lst文件。固然,以上參數也能夠不指定。

【示例1-7】枚舉DNS服務器benet.com的主機名。執行命令以下所示:

  • root@localhost :~# nmap --script dns-brute mail.benet.com

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-01 16:47 CST

  • Nmap scan report for mail.benet.com (69.172.201.208)

  • Host is up (0.26s latency).

  • Not shown: 998 filtered ports

  • PORT    STATE SERVICE

  • 80/tcp  open  http

  • 443/tcp open  https

  • Host script results:                                                                      #腳本掃描結果

  • | dns-brute:

  • |   DNS Brute-force hostnames:                                          #暴力破解出的主機名

  • |     admin.benet.com - 69.172.201.208

  • |     stats.benet.com - 69.172.201.208

  • |     devel.benet.com - 69.172.201.208

  • |     host.benet.com - 69.172.201.208

  • |     mx.benet.com - 69.172.201.208

  • |     development.benet.com - 69.172.201.208

  • |     administration.benet.com - 69.172.201.208

  • |     http.benet.com - 69.172.201.208

  • |     mx0.benet.com - 69.172.201.208

  • |     devsql.benet.com - 69.172.201.208

  • |     ads.benet.com - 69.172.201.208

  • |     mx1.benet.com - 69.172.201.208

  • |     devtest.benet.com - 69.172.201.208

  • ......

  • |     mobile.benet.com - 69.172.201.208

  • |     helpdesk.benet.com - 69.172.201.208

  • |     monitor.benet.com - 69.172.201.208

  • |     home.benet.com - 69.172.201.208

  • |     mssql.benet.com - 69.172.201.208

  • |_    mta.benet.com - 69.172.201.208

  • Nmap done: 1 IP address (1 host up) scanned in 60.25 seconds

從以上輸出信息中,能夠看到枚舉出的DNS服務器benet.com全部域名及域名對應的IP地址。例如,主機名爲admin.benet.comIP地址是69.172.201.208

NmapDNS緩存探測

DNS緩存就是當用戶訪問某個網址後,操做系統將會把該地址記錄到緩存中,方便用戶下次訪問。這樣,就能夠節省用戶每次訪問時,屢次解析時間了。可是,這個緩存只是臨時緩存,超過設定的時間將會被清除。在Nmap中,dns-cache-snoop腳本能夠探測一個主機中的DNS緩存條目。其語法格式以下所示:

  • nmap -sU -p 53 --script dns-cache-snoop.nse --script-args 'dns-cache-snoop.mode=timed,dns-cache-snoop.domains={host1,host2,host3}'

以上語法中「-sU」選項表示掃描UDP端口;「-p」選項指定的是DNS協議默認的端口53;「dns-cache-snoop.mode」參數是用來指定運行模式的,可設置的模式有兩種,分別是nonrecursivetimed。其中,nonrecursive是默認模式。「dns-cache-snoop.domains」選項表示能夠指定探測緩存的主機名。若是同時指定多個主機名時,中間使用逗號分割。

【示例1-8】探測目標主機RHEL 6.4上的DNS緩存條目。執行命令以下所示:

  • root@localhost :~# nmap -sU -p 53 --script dns-cache-snoop.nse 192.168.1.104

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-03 16:42 CST

  • Nmap scan report for localhost (192.168.1.104)

  • Host is up (0.00036s latency).

  • PORT   STATE SERVICE

  • 53/udp open  domain

  • | dns-cache-snoop: 1 of 100 tested domains are cached.          #探測結果

  • |_www.baidu.com

  • MAC Address: 00:0C:29:2A:69:34 (VMware)

  • Nmap done: 1 IP address (1 host up) scanned in 0.52 seconds

從以上輸出信息中,能夠看到探測了100個域名,其中有一個被緩存。從輸出信息中,能夠看到緩存的主機名爲www.baidu.com

Nmap探測主機是否支持黑名單列表

這裏所說的黑名單就是指支持防止DNS反垃圾和打開proxy黑名單。在Nmap中,dns-blacklist腳本能夠探測目標主機是否支持防止DNS反垃圾和打開proxy黑名單。其中,語法格式以下所示:

  • nmap -sn --script dns-blacklist [目標]

以上語法中「-sn」選項表示不進行Ping掃描。

【示例1-9】探測目標主機RHEL 6.4是否支持黑名單列表。執行命令以下所示:

  • root@localhost:~# nmap -sn --script dns-blacklist 192.168.1.104

  • Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-05 16:00 CST

  • Nmap scan report for localhost (192.168.1.104)

  • Host is up (0.00028s latency).

  • MAC Address: 00:0C:29:2A:69:34 (VMware)

  • Host script results:

  • | dns-blacklist:

  • |   PROXY                                                                         #PROXY協議

  • |     dnsbl.tornevall.org - PROXY

  • |       IP marked as "abusive host"

  • |       ?

  • |     dnsbl.ahbl.org - PROXY

  • |   SPAM                                                                                    #SPAM協議

  • |     dnsbl.ahbl.org - SPAM

  • |     l2.apews.org - FAIL

  • |_    list.quorum.to - SPAM

  • Nmap done: 1 IP address (1 host up) scanned in 12.58 seconds

從以上輸出信息中,能夠看到目標主機支持防止DNS反垃圾和打開proxy黑名單。

本文選自:Nmap掃描實戰教程大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!

相關文章
相關標籤/搜索