
摘要:Nmap是一個掃描工具,對于該工具的教學設計主要涉及使用Nmap掃描的功能,包括常規掃描、探測以及使用腳本方式進行掃描,根據功能來搭建合理的教學環境,讓學生通過該環境通過實驗達到良好的學習效果。關鍵詞:Nmap;掃描;腳本;環境搭建;教學環節設計
中圖分類號:TP391
文獻標識碼:A
文章編號:1009-3044(2019)36-0117-02
Nmap這個內容的教學,以前往往講解的多,實驗較少,主要是缺乏實驗環境的配置,所以在以往的教學中,大家都遵循一般的方法,只講解一般性理論和Nmap簡單的應用命令,然后在局域網隨便找幾臺機器進行掃描,這樣的教學過程,學生沒法了解和掌握Nmap這個強大的掃描工具的使用精髓,本文將就Nmap的一般和高級使用方法做詳細分析并給出實現的環境,讓學生在學完理論知識后,通過實驗環境能夠實現各種命令的使用。
1掃描技術理論教學環節的設計
Nmap首先是一種掃描技術,所以首先還是得介紹掃描原理。學習掃描技術首先需要了解端口的定義和分類,端口與服務的關系,服務的啟動與否代表端口是否開放,讓學生把端口和服務建立關聯。其次,掃描技術還得分析TCP/IP協議,需要分析IP和TCP協議的各個字段的作用和含義,尤其是幾個關鍵的TCP字段,例如TCP首部中的各個標志位的含義,因為這些標志位的含義和掃描技術直接相關,掃描技術需要發送帶標志位的TCP報文到目標主機,然后根據收到的反饋報文情況判斷對方端口狀態或者服務狀態。另外還需要分析TCP三次握手連接以及四次握手的取消連接,需要分析到每次握手過程中的TCP報文內的標志位和重要字段的變化。如果條件允許,可以講授TCP的全狀態變遷分析,讓學生對整個TCP的狀態變化有所了解,這樣更容易了解掃描原理。當然,除了TCP和IP協議外,UDP協議也需要進行分析,因為有些掃描是使用的UDP報文。
2 Nmap技術教學環節設計
Nmap是個功能很強大的掃描工具,其功能主要分為常規掃描和使用腳本方式進行掃描。 使用常規方式掃描主要是靠發送帶上特定標志位的TCP和UDP報文來進行掃描,而且NmapK可以使用的參數非常多,這個時候的教學可以選擇幾個最重要的參數進行抓包分析,可以安裝簡單的抓包工具WIRESHARK,例如對SYN掃描可以通過抓到如圖l所示探測報文與應答報文,從圖l可以看到只發生了兩次握手情況,它是一種半開掃描,這樣可以使掃描原理的教學一目了然。使用Nmap掃描,在掃描結果中會出現端口的六種狀態,簡單的open、close狀態很好理解,但其中Filtered狀態需要使用實驗來演示,筆者使用WINDOWS SERVER 2003本地網卡上的Internet連接防火墻,通過服務選項來模擬端口是否使用防火墻,這樣就可以很簡單的實現看到Filtered狀態。實際教學中筆者使用kali的Nmap對另外一臺WINDOWSSERVER 2003虛擬機進行掃描,分別開啟服務和不開啟的掃描命令和結果如下:
root@kaliverl:~/Desktop# nmap -sU 192.168.1.64 -p 80#對80端口掃描
Starting Nmap 6.47( http://nmap.org) at 2019-03-23 15:47CST
Nmap sean report for 192.168.1.64
Host is up (0.00023s latency).
PORT STATE
SERVICE
80/udp openlf/ltered http
MAC Address: OO:OC:29:50:2D:7E (VMware)
Nmap done:1 lP address(1 host up) scanned in 0.61 seconds
root@kaliverl:~/Desktop# nmap -sT 192.168.1.64 -p 80#對80端口掃描
Starting Nmap 6.47( http://nmap.org) at 2019-03-23 15:48CST
Nmap scan report for 192.168.1.64
Host is up (0.00025s latency).
PORT STATE SERVICE
80/tcpopen http
MAC Address: OO:OC:29:50:2D:7E (VMware)
Nmap done:1 lP address(1 host up) scanned in 0.21 seconds
本實驗還可以測試在禁用PING后獲得掃描結果。在使用Nmap進行掃描的時候,還需要注意的是單獨一種掃描方式并不是很準確的,需要多種參數掃描后綜合判斷,例如對操作系統的探測,某一個參數肯能只能探測出大致的系統類型,并不能準確到時哪一個操作系統,這個時候就需要再使用另外的參數進行探測。第二個重要內容是使用腳本方式的掃描,這是一個Nmap擴展功能,使用該功能可以探測系統漏洞甚至還可以實現暴力破解。對于這個環節的教學,筆者使用—script參數后面引用了一些腳本來進行掃描,例如使用—script=vuln來掃描系統漏洞,使用—script ftp-brute -script-args破解FTP服務器的賬號信息,也可以使用對應版本破解mysql或者mssql數據庫,使用命令如下:
nmap —script=mysql-brute -p 3306 192.168.1.64#暴力破解mysql數據庫
Nmap-p1433 —script ms-sql-brute —script-args userdb=/usemames.txt,passdb=/passwords.txt 192.168.1.64#暴力破解ms-sql數據庫root@kal1222:/# nmap -p 1433 -script ms-sql-xp-cmdshell —script-args=ms-sql-xp-cmdshell.cmd=7net users,mssql.username=sa,mssql.password=123 192.168.1.64#破解成功后還可以使用nmap進行利用去使用對方的shell運行命令。
以上的環境可以把mysq5和mssq12000安裝到虛擬機WIN-DOWS SERVER 2003中,使用kali系統作為攻擊機,實驗的時候可以簡單配置數據庫管理員口令。除了對主機進行掃描外,還可以使用nmap腳本去獲得網站信息或者掃描網站漏洞,例如如下密令掃描網站的sql注人情況:
root@kal1222:/#nmap—s,cript http-sql-inj ection 192.168.1.1 34
該實驗環境使用了Metasploitable2-Linux虛擬機作為靶機,該系統是一個特別制作的ubuntu操作系統,本身設計作為安全工具測試和演示常見漏洞攻擊。
此外還可以使用增強Nmap的版本檢測nmap-vulners和vulscan,這兩個腳本可以從GITHUB.COM下載得到,常用直接從網站克隆的方式,使用這些腳本可以掃描檢測CVE漏洞。
3結束語
Nmap是網絡安全教學中一個很重要的教學知識點,對于系統的掃描和探測是學好滲透測試的前提,所以對于Nmap的教學內容設計非常重要。通過以上內容的設計,可以讓學生學到Nmap的主要內容,同時,配置好對應的實驗環境,讓學生能夠在虛擬環境當中進行模擬的掃描和Nmap實驗也是一個重要的教學前提。
參考文獻:
[1] LEE ALLEN.kali Linux滲透測試的藝術[M].北京:人民郵電出版社.2015.
[2]賈鐵軍.網絡安全實用技術[M].北京:清華大學出版社,2016.
【通聯編輯:朱寶貴】
收稿日期:2019-10-25
作者簡介:嚴學軍,講師,碩士,主要研究方向為網絡安全方向,從事網絡安全和LINUX等課程的教學。