Nmap掃描教程之DNS服務類

大學霸發表於2015-06-25

Nmap掃描教程之DNS服務類

Nmap DNS服務類

DNSDomain Name System,域名系統)的作用就是將主機名解析為對應IP地址的過程。通常主機域名的一般結構為:主機名.三級域名.二級域名.頂級域名。所以,DNS伺服器在解析一個主機名時,需要一級一級的進行解析,即遞迴查詢。為了方便使用者下次訪問,DNS伺服器會將解析過的主機名臨時快取。透過對DNS伺服器進行掃描,可以獲取到一些基本資訊。如版本、伺服器地址及快取的域名等。本節將介紹DNS服務掃描方法。

Nmap獲取DNS資訊

透過請求DNS伺服器的ID,並且訪問ID,可以獲取DNS名稱服務的相關資訊。在Nmap中,dns-nsid指令碼可以用來傳送ID請求,並且獲取DNS的詳細資訊。其中,包括NSIDID的服務及版本。dns-nsid指令碼的語法格式如下所示:


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


以上語法中的“-sSU”選項表示進行UDPTCP SYN掃描。

【示例1-4】獲取目標主機RHEL 6.4DNS資訊。執行命令如下所示:


  • root@localhost:~# nmap -sSU -p 53 --script dns-nsid 192.168.1.104
  • Starting Nmap 6.47 ( ) at 2015-05-28 16:04 CST
  • Nmap scan report for localhost (192.168.1.104)
  • Host is up (0.00033s latency).
  • PORT   STATE SERVICE
  • 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 ( ) 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 ( ) 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 ( ) 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 ( ) 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.          #探測結果
  • |_
  • MAC Address: 00:0C:29:2A:69:34 (VMware)
  • Nmap done: 1 IP address (1 host up) scanned in 0.52 seconds


從以上輸出資訊中,可以看到探測了100個域名,其中有一個被快取。從輸出資訊中,可以看到快取的主機名為

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 ( ) 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人!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1711999/,如需轉載,請註明出處,否則將追究法律責任。

相關文章