0x00 前言mysql
你們都知道在平時的漏掃中,AWVS、APPSCAN、Netspark、webspectort等漏掃工具掃描出來的漏洞問題每每存在誤報,這時咱們就須要進行人工手動驗證漏洞,這裏咱們有兩種思路:web
一是在漏洞工具中,進行屢次的重複測試,AWVS、APPSCAN、Netspark、webspectort中都有重複測試漏洞問題的功能),將得出的屢次結果進行分析和統計,確認漏洞是否存在。算法
二是對於特定的漏洞,例如Java反序列漏 洞、struts2 各類漏洞、openssl、httpd遠程拒絕服務、IIS短文件名、各類應用軟件版本低等等,咱們只能使用特定的工具或者結合多種方式進行驗證。本文基 於第二種方式,主要使用了nmap 的腳本功能進行漏洞驗證sql
0x01 nmap 的介紹數據庫
Nmap是一個網絡鏈接端掃描軟件,用來掃描網上電腦開放的網絡鏈接端。肯定哪些服務運行在哪些鏈接端,而且推斷計算機運行哪一個操做系統(這 是亦稱 fingerprinting)。它是網絡管理員必用的軟件之一,以及用以評估網絡系統安全。安全
在長達3.5年以後,Fyodor終於發佈了著名開源網絡檢索工具的最新版本Nmap7。Nmap是最受歡迎的開源網絡映射器之一此外,Nmap7這款自動化的掃描器能 夠輕易檢測到Heartbleed、POODLE、FREAK等嚴重漏洞。Nmap7中對ssl-enum-ciphers(SSL枚舉密碼)腳本替換了 新的實現算法,使得它可以經過枚舉SSL/TLS協議版本和密碼套件來快速分析TLS鏈接,它還可以迅速識別部署問題。另外,使用Nmap7可以輕易發現 包含漏洞的服務器,Nmap7中包含了對提速和掃描實現的改進。這個工具的新版本包括一個更新、更快的Nmap腳本引擎(Nmap Scripting Engine,NSE),同時它還容許用戶編寫Lua腳本。服務器
0x02 使用nmap 檢測多種漏洞網絡
因爲常見的漏洞問題很是多,本文主要介紹漏洞掃描和滲透測試中會常常遇到的一些漏洞,而且嘗試使用namp 對這些被掃描工具掃描出來的漏洞進行人工手動驗證,這些僅是命令,至於如何根據出現的結果進行判斷是否有漏洞,這個在結果中很容易看出,例如出現 vulnerable-有漏洞; not vulnerable-無漏洞。 有結果出來-有漏洞;無結果出來-無漏洞,日後在其餘測試中,只須要將scanme.nmap.org 替換成帶驗證的目標IP 或者網站。ssh
1 http 拒絕服務wordpress
nmap --max-parallelism 800--script http-slowloris scanme.nmap.org
2 IIS 短文件泄露
nmap -p 8080 --script http-iis-short-name-brute 61.142.64.176
3 ftp弱口令暴力破解
nmap --script ftp-brute --script-args brute.emptypass=true,ftp-brute.timeout=30,userdb=/root/dirtionary/usernames.txt,brute.useraspass=true,passdb=/root/dirtionary/passwords.txt,brute.threads=3,brute.delay=6 203.195.139.153
4 檢測CVE-2011-2523中的ftp-vsftpd-backdoor
nmap -T2 --script ftp-vsftpd-backdoor 211.139.201.240
5 驗證http中開啓的-methods 方法
nmap -T3 --script http-methods --script-args http.test-all=true,http.url-path=/ www.haoshangjia.com
6 驗證HTTP.sys 遠程代碼執行
nmap -sV --script http-vuln-cve2015-1635 203.195.139.153
7驗證 SSL POODLE information leak
nmap -sV -p 443 --version-light --script ssl-poodle 218.19.141.16
8 驗證http 中開啓了put 方法
nmap --script http-put --script-args http-put.url=/uploads/testput.txt,http-put.file=/root/put.txt 218.19.141.16
9 驗證mysql 匿名訪問
nmap --script mysql-empty-password 203.195.139.153
10 驗證cve2015-1427 漏洞
nmap --script http-vuln-cve2015-1427 --script-args command=ls 203.195.139.153
11 驗證cve2014-8877漏洞
nmap -Pn --script http-vuln-cve2014-8877 --script-args http-vuln-cve2014-8877.cmd=dir,http-vuln-cve2014-8877.uri=/wordpress 42.96.170.128
12 驗證Cisco ASA中的CVE-2014-2126,CVE-2014-2127,CVE-2014-21,CVE-2014-2129漏洞
nmap -p 443 --script http-vuln-cve2014-2126,http-vuln-cve2014-2127,http-vuln-cve2014-2128,http-vuln-cve2014-2129 203.195.139.153
13驗證低安全的 SSHv1,sslv2協議
nmap --script sshv1,sslv2 www.haoshangjia.com
14 驗證CVE-2014-0224 ssl-ccs-injection
nmap -Pn --script ssl-ccs-injection 203.195.139.153
15 驗證ssl-cert證書問題
nmap -v -v --script ssl-cert 203.195.139.153
16驗證SSL證書的有限期
nmap -Pn --script ssl-date www.haoshangjia.com
17 驗證CVE-2014-0160 OpenSSL Heartbleed bug
nmap -p 443 --script ssl-heartbleed,ssl-known-key 203.195.139.153
18 驗證 Debian OpenSSL keys
nmap -p 443 --script ssl-known-key 203.195.139.153
19 驗證弱加密SSL套件
nmap --script ssl-enum-ciphers 203.195.139.153
20 驗證CVE 2015-4000
nmap --script ssl-dh-params www.haoshangjia.com
21 驗證多種SSL漏洞問題
nmap 203.195.139.153 --vv --script sshv1,ssl-ccs-injection,ssl-cert,ssl-date,ssl-dh-params,ssl-enum-ciphers,ssl-google-cert-catalog,ssl-heartbleed,ssl-known-key,sslv2
22 在網絡中檢測某主機是否存在竊聽他人流量
nmap --script sniffer-detect 10.10.167.5
23 暴力破解telnet
nmap -p 23 --script telnet-brute --script-args userdb=myusers.lst,passdb=mypwds.lst --script-args telnet-brute.timeout=8s 203.195.139.153
24 驗證telnet是否支持加密
nmap --script telnet-encryption 203.195.139.153
25 精準地確認端口上運行的服務
nmap -sV --script unusual-port 42.96.170.128
26 收集VNC信息
nmap --script vnc-info 203.195.139.153
27 暴力破解VNC
nmap --script vnc-brute --script-args brute.guesses=6,brute.emptypass=true,userdb=/root/dictionary/user.txt,brute.useraspass=true,passdb=/root/dictionary/pass.txt,brute.retries=3,brute.threads=2,brute.delay=3 42.96.170.128
#這個腳本挺長的,不少詳細的參數,請參閱腳本的具體參數。
0x03 使用系列的nmap NSE 進行檢查
#nmap腳本主要分爲如下幾類,在掃描時可根據須要設置--script=類別這種方式進行比較籠統的掃描:
auth: 負責處理鑑權證書(繞開鑑權)的腳本
broadcast: 在局域網內探查更多服務開啓情況,如dhcp/dns/sqlserver等服務
brute: 提供暴力破解方式,針對常見的應用如http/snmp等
default: 使用-sC或-A選項掃描時候默認的腳本,提供基本腳本掃描能力
discovery: 對網絡進行更多的信息,如SMB枚舉、SNMP查詢等
dos: 用於進行拒絕服務攻擊
exploit: 利用已知的漏洞入侵系統
external: 利用第三方的數據庫或資源,例如進行whois解析
fuzzer: 模糊測試的腳本,發送異常的包到目標機,探測出潛在漏洞
intrusive: 入侵性的腳本,此類腳本可能引起對方的IDS/IPS的記錄或屏蔽
malware: 探測目標機是否感染了病毒、開啓了後門等信息
safe: 此類與intrusive相反,屬於安全性腳本
version: 負責加強服務與版本掃描(Version Detection)功能的腳本
vuln: 負責檢查目標機是否有常見的漏洞(Vulnerability)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Nmap提供的腳本命令行參數以下:
-sC: 等價於--script=default,使用默認類別的腳本進行掃描。
--script=<Lua scripts>: <Lua scripts>使用某個或某類腳本進行掃描,支持通配符描述
--script-args=<n1=v1,[n2=v2,...]>: 爲腳本提供默認參數
--script-args-file=filename: 使用文件來爲腳本提供參數
--script-trace: 顯示腳本執行過程當中發送與接收的數據
--script-updatedb: 更新腳本數據庫
--script-help=<Lua scripts>: 顯示腳本的幫助信息,其中<Lua scripts>部分能夠逗號分隔的文件或腳本類別。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 使用nmap對某主機進行一系列的證書鑑權檢查
nmap --script auth 203.195.139.153
2 使用nmap在局域網內探查更多服務開啓狀況
nmap --script broadcast 10.10.167.6
3 使用nmap 對常見的服務進行暴力破解
nmap --script brute 203.195.139.153
4 使用nmap 進行基本的掃描
nmap --script default 203.195.139.153
#nmap --sC 203.195.139.153
5 使用nmap 進行信息挖掘
nmap --script discovery 203.195.139.153
6 使用nmap 進行拒絕服務攻擊
nmap --script dos 203.195.139.153
7 使用nmap 利用已知的漏洞入侵系統
nmap --script exploit 203.195.139.153
8 使用nmap 進行利用第三方的數據庫或資源進行信息收集或者攻擊
nmap --script external 203.195.139.153
9 使用nmap 進行模糊測試,發送異常的包到目標機,探測出潛在漏洞
nmap --script fuzzer 203.195.139.153
10 使用nmap 進行入侵,此類腳本可能引起對方的IDS/IPS的記錄或屏蔽
nmap --script intrusive 203.195.139.153
11 使用nmap 探測目標機是否感染了病毒、開啓了後門等信息
nmap --script malware 203.195.139.153
12 使用nmap 對系統進行安全檢查
nmap --script safe 203.195.139.153
13 使用nmap 對目標機進行檢查是否存在常見的漏洞
nmap --script vuln 203.195.139.153
14 使用nmap 負責加強服務與版本掃描(Version Detection)功能的腳本
nmap --script version 203.195.139.153
0x04 如何新建一個nmap 腳本掃描
至於如何使用nmap中腳本,本文建議,在nmap的圖形化界面zenmap 中進行:
1 在zenmap 界面中,依次點擊「profile」---"New Profile or Command" (快捷鍵:Ctrl + P)
2 完成步驟1後,便會彈出了「 Profile Editor" 界面:
3 而後點擊」 Scripting「 ,將會顯示下面的界面:
左側---腳本的名稱,點擊勾選該腳本名稱前面的小方框,便可使用該腳本;下拉選擇其餘腳本。
中上方框---腳本的名稱、使用情景、使用格式、參考結果;中下框---設置腳本的各類參數。
右側的大方框------每當點擊中下框的某個參數時,此處便會顯示那個腳本參數的說明。
4 當選定了XXX腳本後,必定要點擊右框下的」 Save Changes" .
5 完成上面的步驟後,咱們回到zenmap的主界面,
0x05 結論
本文首先介紹使用nmap的基本背景和知識,對它有個基本全面的瞭解;而後詳細說明了在使用nmap 進行驗證多種常見漏洞,這些漏洞驗證都是咱們在漏掃和滲透測試中常常見到的;接着咱們介紹使用一組nmap腳本進行基線檢查,簡單批量地使用一系列的腳本 對系統進行信息收集和漏洞檢測;最後咱們詳細介紹瞭如何使用新建和使用一個nmap 的腳本,幫助讀者本身獨立使用NSE。
咱們在使用nmap的時候每每忽視它最強大的NSE腳本掃描功能,其實這個龐大的腳本集合可以幫助咱們進行網絡鏈接故障診斷、網絡流量路徑分析、服務器的開放狀況和運行狀況,甚至還能用來進行端口滲透。在滲透測試中,好好利用nmap及其NSE腳本,每每有意想不到的收穫。