NSE中的腳本采用Lua語言編寫。NSE設(shè)計出來是為了提供Nmap的靈活性,式版的NSE包含14個大類的腳本,總數(shù)達(dá)500多個,這些腳本的功能包括對各種網(wǎng)絡(luò)口令強度的審計,對各種服務(wù)器安全性配置的審計,對各種服務(wù)器漏洞的審計等。
公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出志丹免費做網(wǎng)站回饋大家。
我們使用NSE腳本測試一臺主機(jī),我們來看一下這條指令使用的參數(shù),-O進(jìn)行操作系統(tǒng)檢測,-sV對目標(biāo)系統(tǒng)的服務(wù)進(jìn)行檢測,這里我們沒有使用腳本的參數(shù)所有使用的是默認(rèn)腳本,默認(rèn)腳本會使用-sC參數(shù)。默認(rèn)腳本一般不會對目標(biāo)系統(tǒng)造成危害,但是其他的一些腳本可能會引起安全防御設(shè)備的報警。
nmap -sV -sC -O 192.168.126.139
默認(rèn)分類中的腳本:
我們可以在命令行中輸入 --script 選項來進(jìn)行對腳本的選擇,--script 后跟腳本的名字、腳本的種類或腳本存放的路徑,或一個包含多個腳本的目錄...
我這里是隨便用了一個,檢測主機(jī)是否有常見漏洞(直接用腳本的分類名稱作為參數(shù)的話,掃描的時候是調(diào)用該分類下所有腳本去掃描)
nmap -script vuln 192.168.126.139
可以使用http-methods方法來枚舉目標(biāo)web服務(wù)器上所運行的服務(wù)
nmap -p 80,443 --script http-methods www.*****.com
從檢測的結(jié)果中可以看到,目標(biāo)服務(wù)器支持的方法有GET、HEAD、POST、OPTIONS 、TRACE。
另外也可以同時使用多個分類中的腳本去掃描
nmap --script exploit,malware 192.168.126.139
使用指定路徑來執(zhí)行NSE腳本,腳本在nmap目錄下,/nmap/scripts/xxx.nse
nmap --script D:/Nmap/scripts/banner.nse 192.168.126.139
如果你會編寫掃描腳本的話,可以在創(chuàng)建完成后放到文件夾里,如果這個文件夾有多個腳本,你可以將路徑只寫到目錄,這樣會使用這個目錄下所有腳本進(jìn)行掃描,也可以將路徑指定到文件里的腳本,這樣是使用單個腳本進(jìn)行掃描。
使用運算符來選擇使用的腳本:
使用除 exploit分類以外的腳本進(jìn)行掃描
nmap --script "not exploit" 192.168.126.139
使用除intrusive、dos、exploit分類以外的腳本進(jìn)行掃描
nmap --script "not (intrusive or dos or exploit)" 192.168.126.139
只使用safe和vuln進(jìn)行掃描
nmap --script "safe and vuln" 192.168.126.139
此外,NSE中也支持通配符 * ,對一臺運行SNMP服務(wù)的計算機(jī)進(jìn)行檢測,使用所有與SNMP相關(guān)的腳本
nmap --script "snmp-*" 192.168.126.139
這些分類和運算符可以結(jié)合操作
nmap --script "ftp-* and not(intrusive)" 192.168.126.139
Nmap中使用 --script-args 來指定NSE腳本運行時的參數(shù)
nmap -p80 --script http-methods www.***.com
當(dāng)執(zhí)行這個腳本的時候,Nmap會向目標(biāo)服務(wù)器發(fā)送數(shù)據(jù)包,Nmap的數(shù)據(jù)包中包含的默認(rèn)客戶端信息。
這種客戶端一般會被安全機(jī)制攔截,我們可以使用 --script-args 修改客戶端信息為Mozilla 50
nmap -p 80 --script http-methods --script-args http.useragent="Mozilla 50" www.***.com
如果想看nmap掃描時候的具體操作,這樣可能會使操作過程更加清晰,在之前我們也講過可以使用 --script-trace來查看
nmap -p 80 --script-trace --script http-methods --script-args "http.useragent=Mozilla 50" www.***.com
也可以使用 -d [ 1-9 ] 切換調(diào)試模式,使用-d參數(shù)1-9,數(shù)字越大輸出信息越詳細(xì)
nmap -d3 --script-trace --script http-methods www.***.com
Nmap的基本功能只包括主機(jī)發(fā)現(xiàn),端口掃描,操作系統(tǒng)和服務(wù)檢測功能,而NSE進(jìn)一步實現(xiàn)了大量高級功能。
信息搜集類腳本
NSE中大量腳本實現(xiàn)了這個功能,這些腳本使用不同的技術(shù)完成了對目標(biāo)的各種信息的搜集。利用腳本 http-methods查看目標(biāo)服務(wù)器所支持的HTTP方法。
基于腳本http-methods的審計目的,web服務(wù)器需要支持HTTP方法,才能正確提供HTTP服務(wù),常見的有以下幾種:
TRACE:回顯服務(wù)器收到的請求
目前HTTP的TRACE、CONNECT、PUT、DELETE方法可能是web服務(wù)器潛在的安全風(fēng)險,尤其是服務(wù)器支持TRACE方法,有可能會遭到XSTGJ。將惡意代碼嵌入一臺已經(jīng)被控制的主機(jī)的web文件中,當(dāng)訪問者瀏覽時惡意代碼在瀏覽器執(zhí)行,然后訪問者的cookie、HTTP基本驗證等信息會被傳到已被控制的主機(jī),同時傳送Trace請求給目標(biāo)服務(wù)器,導(dǎo)致cookie欺騙或中間人GJ。
高級主機(jī)發(fā)現(xiàn)類腳本
腳本broadcast-ping.NSE
審計目的:發(fā)現(xiàn)本地網(wǎng)絡(luò)中的活躍主機(jī)
審計方法:這個腳本向整個本地網(wǎng)絡(luò)中所有IP地址發(fā)送廣播包,以自己所在網(wǎng)絡(luò)為目標(biāo)
審計命令:
nmap --script broadcast-ping
審計結(jié)果:
腳本 targets-sniffer
審計目的:發(fā)現(xiàn)本地網(wǎng)絡(luò)中的活躍主機(jī)
審計方法:這個腳本會對你的本地網(wǎng)絡(luò)進(jìn)行嗅探,然后發(fā)現(xiàn)網(wǎng)絡(luò)中的所有主機(jī),以自己所在網(wǎng)絡(luò)為目標(biāo)
審計命令:
nmap -sL --script=target-sniffer -e xxx
審計結(jié)果:
可以使用-e監(jiān)聽網(wǎng)卡設(shè)備
網(wǎng)絡(luò)上提供的服務(wù)一般都具有一定的認(rèn)證措施,目前應(yīng)用最為廣泛的認(rèn)證措施還是用戶名和密碼。這種認(rèn)證措施的優(yōu)勢在于簡單易行,而缺點在于很多用戶意識不到密碼強度的重要性,一般會選擇一些比較簡單容易記住的密碼,而這些密碼很容易被猜出來,因此網(wǎng)絡(luò)的管理者需要一個有效的工具來對自己網(wǎng)絡(luò)中各種服務(wù)的密碼強度進(jìn)行審計。
腳本MySQL-brute.NSE
審計目的:發(fā)現(xiàn)網(wǎng)絡(luò)中弱口令的MySQL數(shù)據(jù)庫
審計方法:腳本mysql-brute.NSE的審計方法很簡單,在Nmap中有兩個數(shù)據(jù)文件,是一些常見的用戶名和密碼,這個腳本將這兩個文件進(jìn)行組合然后嘗試登陸。
審計命令:
nmap -p 3306 -packet-trace --script mysql-brute 192.168.126.141
這里是沒有破解出密碼,破解的成功率取決于字典的大小哈,自己感興趣的可以試試,github上也有爆破字典可以使用的。
2.腳本smtp-brute.NSE
smtp-brute.NSE腳本用來檢測目標(biāo)郵件服務(wù)器SMTP服務(wù)的密碼是否合規(guī)。
審計目的:郵件服務(wù)器中經(jīng)常會存儲一些非常重要的信息,而對用戶進(jìn)行認(rèn)證的方式就是用戶和密碼,這里存在一些簡單的賬戶名和密碼,他們很容易成為被GJ的對象,因此需要先對服務(wù)器進(jìn)行弱口令檢查。.
審計方法:對密碼審計的方法采用窮解的方式。這個腳本可以對SMTP密碼的窮解,它支持LOGIN、PLAIN、CRAM-MD5、DIGEST-MD5、NTLM四種登錄方式。默認(rèn)情況下,smtp-brute.NSE會使用/NSElib/data/username.lst文件中的內(nèi)容作為用戶名,/NSElib/data/passwords.lst 文件中的內(nèi)容作為密碼。
審計命令:
nmap -p 25 --script smtp-brute 192.168.0.1
審計結(jié)果:我這里沒有搭建smtp就不做演示了,有條件的可以自己試試
NSE腳本擴(kuò)充漏洞掃描的功能,利用這些腳本,就可以使用Nmap對目標(biāo)進(jìn)行掃描。
1.腳本 http-slowloris.NSE
slowloris是一種GJ方法,原理是以極低的速度向服務(wù)器發(fā)送http請求。由于web server對于并發(fā)的連接數(shù)都有一個上限值,如果惡意連接不釋放,那么web server的所有連接都會被惡意連接占用,導(dǎo)致拒絕服務(wù)。
審計方法:使用http-slowloris腳本,向目標(biāo)發(fā)送連接,并保持這個連接,構(gòu)造了一個畸形的http請求,是一個不完整的http請求。
審計命令:
nmap -p 80 --script http-slowloris --max-parallelism 300 www.xxx.com
審計結(jié)果:這里不做實驗,不要隨意對網(wǎng)站進(jìn)行測試
審計拓展:我們可以通過調(diào)整http-slowloris.send_interval參數(shù)來改變掃描的過程。這個參數(shù)可以指定發(fā)送http header datas的間隔,默認(rèn)為100,我們來修改一下
nmap -p 80 --script http-slowloris --script-args http-slowloris.send_interval=200 --max-parallelism 300
http-slowloris.timeklimit參數(shù)指定Dos持續(xù)運行時間,默認(rèn)為30分鐘,我們修改為10分鐘
nmap -p 80 --script http-slowloris --script-args http-slowloris.timelimit=10m www.***.com
http-slowloris.runforever參數(shù)對指定目標(biāo)一直發(fā)動DoSGJ。默認(rèn)值為false
nmap -p 80 --script http-slowloris --script-args http-slowloris.runforever www.***.com
Nmap中還有一個http-slowloris-check.NSE的腳本,這個腳本不會發(fā)起DoS GJ,而是檢測目標(biāo)是否具備抵抗DOS GJ的能力。
nmap -p 80 --script http-slowloris-check www.***.com