一種自動(dòng)化漏洞驗(yàn)證的方法
【專利摘要】本發(fā)明提供了一種自動(dòng)化漏洞驗(yàn)證方法,首先進(jìn)行驗(yàn)證信息收集,采用主動(dòng)探測(cè)方式對(duì)目標(biāo)進(jìn)行信息探測(cè)、拓?fù)涮綔y(cè)、脆弱性探測(cè)及網(wǎng)站目錄結(jié)構(gòu)探測(cè);第二步實(shí)施驗(yàn)證信息封裝,提取脆弱性探測(cè)結(jié)果中可疑漏洞的關(guān)鍵信息,將數(shù)據(jù)進(jìn)行統(tǒng)一接口的模塊化封裝;第三,尋找驗(yàn)證策略,依據(jù)可疑的漏洞標(biāo)識(shí)和種類信息,選取合適的攻擊腳本模板和漏洞利用工具;接著進(jìn)行漏洞驗(yàn)證,調(diào)用腳本填充進(jìn)封裝過的漏洞信息進(jìn)行驗(yàn)證性攻擊,獲得利用憑證并進(jìn)行保存;第五步清除驗(yàn)證痕跡,清除驗(yàn)證性攻擊痕跡以及回收會(huì)話;最后生成掃描報(bào)告。本發(fā)明解決了目前漏洞掃描系統(tǒng)誤報(bào)率高,無法有效驗(yàn)證的問題。本發(fā)明提出了一種自動(dòng)化、流程化的漏洞驗(yàn)證方法,能自動(dòng)識(shí)別并驗(yàn)證漏洞,減少對(duì)非專業(yè)化人員的能力要求,提高漏洞驗(yàn)證效率。
【專利說明】一種自動(dòng)化漏洞驗(yàn)證的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,具體涉及一種自動(dòng)化漏洞驗(yàn)證的方法。
【背景技術(shù)】
[0002]每年都會(huì)存在數(shù)以千計(jì)的網(wǎng)絡(luò)安全漏洞被發(fā)現(xiàn)和公布,外加攻擊者手段的不斷變化與更新,網(wǎng)絡(luò)安全狀況也在隨著安全漏洞的增加變得日益嚴(yán)峻;事實(shí)證明,99%的攻擊事件都利用了未修補(bǔ)的漏洞,使得許多已經(jīng)部署了防火墻、入侵檢測(cè)系統(tǒng)和防病毒軟件的企業(yè)仍然飽受漏洞攻擊之苦,蒙受巨大的經(jīng)濟(jì)損失。
[0003]尋根溯源,絕大多數(shù)用戶缺乏一套完整、有效的漏洞發(fā)現(xiàn)、驗(yàn)證工作流程,未能落實(shí)定期評(píng)估與漏洞修補(bǔ)工作;只有比攻擊者更早掌握自己網(wǎng)絡(luò)安全漏洞并且做好預(yù)防工作,才能夠有效地避免由于攻擊所造成的損失;雖然利用漏動(dòng)掃描工具能夠發(fā)現(xiàn)網(wǎng)絡(luò)中存在的安全隱患,但從實(shí)踐的角度看,目前這種漏洞掃描結(jié)果中存在相當(dāng)?shù)恼`報(bào),要驗(yàn)證漏洞的存在性需要測(cè)試人員具有較高的專業(yè)素質(zhì),對(duì)各類漏洞原理和利用工具有一定的了解,對(duì)測(cè)試人員的能力提出了要求較高,且花費(fèi)大量的時(shí)間逐個(gè)驗(yàn)證,難于實(shí)現(xiàn)大規(guī)模的漏洞發(fā)現(xiàn)與驗(yàn)證;因此,迫切需要提出一種自動(dòng)化、流程化的漏洞驗(yàn)證方法,能自動(dòng)識(shí)別并驗(yàn)證漏洞,減少對(duì)非專業(yè)化人員的能力要求,提高漏洞檢測(cè)效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提出了一種自動(dòng)化漏洞驗(yàn)證的方法,實(shí)現(xiàn)了網(wǎng)絡(luò)安全漏洞自動(dòng)化驗(yàn)證,解決了現(xiàn)有漏洞掃描系統(tǒng)無法提供漏洞存在證據(jù),不能進(jìn)行驗(yàn)證性漏洞利用的問題。
[0005]本發(fā)明的技術(shù)實(shí)現(xiàn)方案如下:一種自動(dòng)化漏洞驗(yàn)證方法,其特征在于包括以下步驟。
[0006]I)信息收集:對(duì)目標(biāo)進(jìn)行信息探測(cè)、拓?fù)涮綔y(cè)、脆弱性探測(cè)及網(wǎng)站目錄結(jié)構(gòu)探測(cè)。
[0007]2)數(shù)據(jù)封裝:提取脆弱性探測(cè)結(jié)果中可疑漏洞的關(guān)鍵信息,將數(shù)據(jù)進(jìn)行統(tǒng)一接口的模塊化封裝。
[0008]3)漏洞分析:查找策略庫,對(duì)可疑漏洞進(jìn)行分析。
[0009]4)漏洞驗(yàn)證:獲得漏洞利用憑證并進(jìn)行保存,主要檢測(cè)是否能夠成功建立相關(guān)會(huì)話、獲取機(jī)密信息或者提升入侵者權(quán)限等。
[0010]5)驗(yàn)證結(jié)果保存:保存驗(yàn)證結(jié)果證明。
[0011]6)驗(yàn)證痕跡清除:清除驗(yàn)證性攻擊痕跡以及回收會(huì)話。
[0012]7)驗(yàn)證報(bào)告生成:生成驗(yàn)證報(bào)告,包括網(wǎng)絡(luò)系統(tǒng)或主機(jī)的操作系統(tǒng)類型、打開的端口、服務(wù)、網(wǎng)絡(luò)拓?fù)?、存在的安全漏洞、漏洞證明等信息。
[0013]上述步驟I)中的目標(biāo)是為了明確掃描對(duì)象的IP或者域名等信息,可以是一個(gè)單獨(dú)的主機(jī),也可以是一個(gè)IP段或者是一個(gè)網(wǎng)站。
[0014]上述步驟I)的具體實(shí)現(xiàn)方式是。
[0015]11)信息探測(cè):采用主動(dòng)探測(cè)方式根據(jù)操作系統(tǒng)指紋識(shí)別對(duì)方操作系統(tǒng),獲取目標(biāo)機(jī)的機(jī)器名稱;利用口令字典猜測(cè)對(duì)方的用戶名和弱口令,通常的口令安全掃描包括FTP 口令、POP3 口令、SQL 口令;進(jìn)行端口掃描,采用TCP端口掃描和UDP端口掃描。
[0016]12)拓?fù)涮綔y(cè):通過SNMP、ICMP協(xié)議進(jìn)行目標(biāo)網(wǎng)絡(luò)的拓?fù)浒l(fā)現(xiàn)。
[0017]13)脆弱性探測(cè):根據(jù)信息探測(cè)獲取的端口開放情況和運(yùn)行的服務(wù)類型等信息,與漏洞庫進(jìn)行匹配,確定是否存在這樣的脆弱性隱患;向目標(biāo)發(fā)送數(shù)據(jù)包,對(duì)目標(biāo)系統(tǒng)進(jìn)行脆弱性模擬測(cè)試,若返回報(bào)文中含有特征信息,則說明目標(biāo)系統(tǒng)可能存在著相關(guān)的脆弱性漏洞,保存該漏洞的信息,用于之后的漏洞驗(yàn)證。
[0018]14)網(wǎng)站目錄爬取:通過爬蟲程序爬取網(wǎng)站目錄結(jié)構(gòu),該步驟只在目標(biāo)為網(wǎng)站或著探測(cè)到目標(biāo)開啟WEB服務(wù)時(shí)啟用。
[0019]上述步驟2)中所述可疑漏洞的關(guān)鍵信息包括:目標(biāo)地址、操作系統(tǒng)信息、漏洞端口、漏洞類型、漏洞位置、漏洞參數(shù)、漏洞標(biāo)識(shí)、應(yīng)用版本信息、授權(quán)賬戶或者cookies等。
[0020]上述步驟3)中所述對(duì)可疑漏洞進(jìn)行分析包括對(duì)系統(tǒng)漏洞和WEB漏洞的分析;對(duì)于系統(tǒng)漏洞,依據(jù)可疑的漏洞標(biāo)識(shí)和種類信息,選取合適的攻擊腳本模板和漏洞利用工具;對(duì)于WEB漏洞,則分析爬取地址中可以提交的動(dòng)態(tài)參數(shù),建立動(dòng)態(tài)參數(shù)與頁面地址的映射關(guān)系O
[0021]上述步驟4)中所述漏洞驗(yàn)證分系統(tǒng)漏洞驗(yàn)證與WEB漏洞驗(yàn)證兩種,可以同時(shí)工作。
[0022]上述步驟5)中所述驗(yàn)證結(jié)果保存是:保存的結(jié)果根據(jù)漏洞的分類來選??;弱口令漏洞將會(huì)保存破解后的用戶名和密碼信息;注入型漏洞會(huì)保存返回漏洞頁面緩存等。
[0023]上述步驟11)中的操作系統(tǒng)指紋識(shí)別是指:發(fā)送相同的協(xié)議棧(TCP/IP),不同的操作系統(tǒng)對(duì)特定格式的數(shù)據(jù)包有不同的響應(yīng);這種響應(yīng)差異,成為操作系統(tǒng)棧指紋。
[0024]上述步驟11)中的端口掃描主要是使用TCP SYN掃描;掃描程序不必要打開一個(gè)完全的TCP連接,其發(fā)送的是一個(gè)SYN數(shù)據(jù)包。
[0025]所述系統(tǒng)漏洞驗(yàn)證的具體實(shí)現(xiàn)方式是。
[0026]41)讀取封裝結(jié)構(gòu)中數(shù)據(jù),配置成運(yùn)行參數(shù),傳參調(diào)用漏洞利用工具。
[0027]42)讀取封裝結(jié)構(gòu)中數(shù)據(jù),填充至攻擊腳本模板。
[0028]43)選取填充漏洞利用代碼至攻擊腳本模板,調(diào)用載荷運(yùn)行腳本。
[0029]44)不斷變化攻擊填充代碼的類型,嘗試攻擊直到攻擊成功或超出規(guī)定的嘗試次數(shù)或遍歷完所有攻擊代碼后停止,并在驗(yàn)證過程中監(jiān)視目標(biāo)內(nèi)存、緩沖區(qū)狀態(tài)的變化以及反饋的結(jié)果。
[0030]所述WEB漏洞驗(yàn)證的具體實(shí)現(xiàn)方式是。
[0031]401)在爬取的頁面中選擇允許提交參數(shù)的動(dòng)態(tài)頁面,讀取動(dòng)態(tài)參數(shù)的映射表,選擇對(duì)應(yīng)的參數(shù)然后用攻擊代碼填充進(jìn)URL中。
[0032]402)提交填充后的URL,監(jiān)聽返回信息。
[0033]403)分析響應(yīng)頁面代碼,若出現(xiàn)攻擊代碼提交的關(guān)鍵字或者泄露數(shù)據(jù)庫信息則說明具有該漏洞。
[0034]404)不斷變化攻擊填充代碼的類型,嘗試攻擊直到攻擊成功或超出規(guī)定的嘗試次數(shù)或遍歷完所有攻擊代碼后停止。
[0035]所述攻擊代碼是指并不構(gòu)造具體的威脅性代碼或功能性代碼,只在保證驗(yàn)證效果的前提下進(jìn)行最小程度的入侵或攻擊。
[0036]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是。
[0037]1、直觀的展示漏洞,使用者可以觀察到漏洞利用的結(jié)果,能更深刻的理解漏洞危害性。
[0038]2、本發(fā)明對(duì)初步探測(cè)的結(jié)果數(shù)據(jù)進(jìn)行統(tǒng)一封裝處理,這么做的優(yōu)點(diǎn)有兩個(gè):第一、可以有效的實(shí)現(xiàn)不同模塊之間的數(shù)據(jù)交換利用,提高了自動(dòng)化的程度;第二、可以有效兼容第三方的漏洞掃描器,因?yàn)榉庋b處理提取的是漏洞的編號(hào)、地址、位置、版本等基本信息,這些基本信息所有漏掃設(shè)備都會(huì)提供;只需添加一個(gè)腳本程序就能獲取第三方掃描結(jié)果中的這些關(guān)鍵信息,之后生成的封裝結(jié)果同樣能被驗(yàn)證模塊使用。
[0039]3、漏洞驗(yàn)證過程全自動(dòng)化完成,減少了測(cè)試人員手動(dòng)調(diào)用執(zhí)行工具、人工分析結(jié)果的時(shí)間花費(fèi)和勞動(dòng)力消耗,提高了漏洞確認(rèn)的效率和自動(dòng)化程度。
【專利附圖】
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)【具體實(shí)施方式】描述中所需要使用的附圖作簡(jiǎn)單地介紹。
[0041]圖1是本發(fā)明提供的一種自動(dòng)化漏洞驗(yàn)證方法示意圖。
[0042]圖2是本發(fā)明實(shí)施例提供的一種自動(dòng)化漏洞驗(yàn)證系統(tǒng)的模塊關(guān)系示意圖。
[0043]圖3是本發(fā)明實(shí)施例提供的一種自動(dòng)化漏洞驗(yàn)證系統(tǒng)的流程示意圖。
【具體實(shí)施方式】
[0044]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述;基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045]參見圖1,是本發(fā)明提供的一種自動(dòng)化漏洞驗(yàn)證方法示意圖,具體執(zhí)行方法如下。
[0046]SlOO:對(duì)目標(biāo)進(jìn)行信息收集,若目標(biāo)是主機(jī)系統(tǒng),則采用主動(dòng)探測(cè)方式,根據(jù)操作系統(tǒng)指紋識(shí)別目標(biāo)操作系統(tǒng),獲取目標(biāo)機(jī)的機(jī)器名稱,獲取網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);接著進(jìn)行端口掃描,采用TCP端口掃描和UDP端口掃描兩種模式;若目標(biāo)是web系統(tǒng),則探測(cè)目標(biāo)web服務(wù)器種類、服務(wù)版本號(hào)、網(wǎng)頁使用語言、網(wǎng)站目錄等基本信息;信息探測(cè)結(jié)束后,會(huì)收集結(jié)果數(shù)據(jù)。
[0047]SlOl:根據(jù)信息探測(cè)獲取的端口開放情況和運(yùn)行的服務(wù)類型等信息,開始脆弱性探測(cè),確定是否存在這樣的脆弱性隱患;向目標(biāo)發(fā)送數(shù)據(jù)包,對(duì)目標(biāo)系統(tǒng)進(jìn)行脆弱性模擬測(cè)試,若返回報(bào)文中含有特征信息,則說明目標(biāo)系統(tǒng)可能存在著相關(guān)的脆弱性漏洞,保存該漏洞的信息,用于之后的漏洞驗(yàn)證。
[0048]探測(cè)的采用智能識(shí)別的方式,例如一次主機(jī)掃描中檢測(cè)到主機(jī)開啟web服務(wù),則會(huì)自動(dòng)開啟web探測(cè)模式;脆弱性探測(cè)完成后,將對(duì)漏洞信息進(jìn)行統(tǒng)一歸類收集。
[0049]S102:漏洞關(guān)鍵信息提取和封裝;提取脆弱性探測(cè)結(jié)果中可疑漏洞的關(guān)鍵信息,將數(shù)據(jù)進(jìn)行統(tǒng)一接口的模塊化封裝,用于漏洞驗(yàn)證調(diào)用;漏洞的關(guān)鍵信息包括。
[0050]目標(biāo)地址:掃描目標(biāo)的IP地址。
[0051]操作系統(tǒng)信息:目標(biāo)運(yùn)行的操作系統(tǒng),用于篩選漏洞驗(yàn)證腳本對(duì)應(yīng)版本。
[0052]漏洞端口:利用漏洞所需要連接的端口。
[0053]漏洞類型:標(biāo)識(shí)漏洞的類型。
[0054]漏洞位置:這里指網(wǎng)頁漏洞的頁面地址。
[0055]漏洞參數(shù):這里指網(wǎng)頁漏洞的脆弱性參數(shù)。
[0056]漏洞標(biāo)識(shí):漏洞的唯一編號(hào),與標(biāo)準(zhǔn)漏洞庫中的一致。
[0057]應(yīng)用版本信息:包括WEB組件和其他具有漏洞的應(yīng)用程序版本號(hào)。
[0058]授權(quán)用戶或者cookies:在驗(yàn)證網(wǎng)頁漏洞時(shí),某些可能會(huì)有登陸限制,在封裝中會(huì)把用戶之前登陸的賬戶密碼或cookies —起封裝,在需要登陸認(rèn)證時(shí)會(huì)自動(dòng)調(diào)用。
[0059]上述所有數(shù)據(jù)都將被封裝成模板,便于數(shù)據(jù)調(diào)用和傳遞。
[0060]S103:分析可疑的漏洞標(biāo)識(shí)、漏洞類型、應(yīng)用版本信息、操作系統(tǒng)信息,選取合適的攻擊腳本模板和漏洞利用工具。
[0061]S104:通過填充攻擊腳本程序或?qū)?shù)傳遞到漏洞驗(yàn)證工具上,實(shí)現(xiàn)對(duì)漏洞的存在性驗(yàn)證;該步驟中的漏洞驗(yàn)證并不構(gòu)造破壞性的攻擊代碼或功能性代碼,只在保證驗(yàn)證效果的前提下進(jìn)行最小程度的入侵或攻擊。
[0062]S105:當(dāng)驗(yàn)證成功后,取證保存相關(guān)信息。保存的結(jié)果根據(jù)漏洞的分類來選取,例如遠(yuǎn)程控制類漏洞會(huì)保存會(huì)話進(jìn)程、系統(tǒng)截圖等信息;弱口令漏洞將會(huì)保存破解后的用戶名,密碼信息;注入型漏洞會(huì)保存返回漏洞頁面緩存等。
[0063]S106:完成所有驗(yàn)證任務(wù)后,將通過在目標(biāo)系統(tǒng)上運(yùn)行腳本清除驗(yàn)證性攻擊痕跡以及回收會(huì)話,整個(gè)漏洞驗(yàn)證的過程不會(huì)在目標(biāo)系統(tǒng)上留下任何痕跡。
[0064]S107:生成報(bào)告,應(yīng)該包括網(wǎng)絡(luò)系統(tǒng)或主機(jī)的操作系統(tǒng)類型,打開的端口、服務(wù)、網(wǎng)絡(luò)拓?fù)?、存在的安全漏洞、漏洞證明等信息。
[0065]參見圖2,本發(fā)明提供了一種自動(dòng)化漏洞驗(yàn)證方法的實(shí)現(xiàn)方式,該實(shí)現(xiàn)系統(tǒng)的模塊關(guān)系如下。
[0066]S200:用戶交互模塊,提供用戶訪問與控制系統(tǒng)的接口,可以與信息探測(cè)模塊進(jìn)行通信;提供三種用戶交互的方式,控制臺(tái)訪問、WEB訪問與圖形化界面訪問。
[0067]S201:漏洞庫,同步CNNVD、CVE等漏洞庫數(shù)據(jù),提供漏洞特征供漏洞掃描模塊使用。
[0068]S202:信息探測(cè)模塊,其本身是一個(gè)具有多種功能的動(dòng)態(tài)探測(cè)進(jìn)程,并且可以在運(yùn)行時(shí)動(dòng)態(tài)擴(kuò)展;整個(gè)探測(cè)過程會(huì)運(yùn)行在內(nèi)存當(dāng)中,并且使用了加密的通信方法,能有效避免防火墻、IDS、WAF等安全設(shè)備的檢測(cè);依據(jù)執(zhí)行方式不同,探測(cè)主要分為三類:基本信息探測(cè)、拓?fù)浣Y(jié)構(gòu)探測(cè)和脆弱性探測(cè)。
[0069]S203:數(shù)據(jù)封裝模塊,用于提取探測(cè)結(jié)果中可疑漏洞的關(guān)鍵信息,將數(shù)據(jù)進(jìn)行統(tǒng)一接口的模塊化封裝,便于調(diào)度模塊的調(diào)用。
[0070]S204:插件模塊,提供了一些擴(kuò)展的、易用的腳本程序以供調(diào)用,允許更改;腳本插件可以直接調(diào)用,封裝過的漏洞信息數(shù)據(jù)可以填充進(jìn)腳本執(zhí)行;插件類型包括:數(shù)據(jù)庫插件、會(huì)話插件、線程插件、socket插件等;還有一些語言類插件,比如ruby插件等,其作用是為腳本的執(zhí)行提供運(yùn)行環(huán)境;漏洞利用腳本提供了了大量的實(shí)用類型,例如溢出型漏洞利用、遠(yuǎn)程代碼執(zhí)行漏洞利用、數(shù)據(jù)庫注入漏洞利用、跨站腳本漏洞利用等;運(yùn)行環(huán)境腳本主要是一些運(yùn)行需要的執(zhí)行環(huán)境,例如java API, c++ AP1、php API,ruby AP1、網(wǎng)絡(luò)API等,主要供調(diào)度模塊下的相關(guān)程序進(jìn)行調(diào)用。
[0071]S205:工具模塊,主要是集成一些綠色漏洞驗(yàn)證工具注入工具,添加了一個(gè)數(shù)據(jù)傳遞的接口,通過輸入運(yùn)行參數(shù)可以被調(diào)用執(zhí)行漏洞驗(yàn)證;工具類別主要包括注入工具、上傳工具、□令破解、嗅探監(jiān)聽、提權(quán)工具、溢出工具、遠(yuǎn)程控制、拒絕服務(wù)、無線人侵、數(shù)據(jù)庫工具等。
[0072]S206:調(diào)度模塊,調(diào)度模塊充當(dāng)漏洞驗(yàn)證模塊與各模塊之間的中間件,主要負(fù)責(zé)取出數(shù)據(jù)和填充數(shù)據(jù)。
[0073]S207:漏洞驗(yàn)證模塊,是本系統(tǒng)的核心模塊;主要由匯編和C語言來實(shí)現(xiàn),一般情況下不允許直接調(diào)用;匯編部分主要完成的是與相應(yīng)的操作系統(tǒng)(如windows、Iinux等)有關(guān)的功能,主要是shellcode的實(shí)現(xiàn)等;C語言完成的功能比較多,主要插件模塊和工具豐吳塊的調(diào)用,包括ruby相關(guān)、內(nèi)存相關(guān)、網(wǎng)絡(luò)相關(guān)、反檢測(cè)相關(guān)等;其工具性的應(yīng)用多是直接來自于其它工具軟件;漏洞驗(yàn)證模塊功能包括。
[0074]1.有效負(fù)荷:是由一些可動(dòng)態(tài)運(yùn)行在遠(yuǎn)程主機(jī)上的代碼組成的滲透代碼,用于遠(yuǎn)程代碼執(zhí)行漏洞的驗(yàn)證。
[0075]2.溢出攻擊:溢出是程序設(shè)計(jì)者設(shè)計(jì)時(shí)的不足所帶來的錯(cuò)誤,主要利用操作系統(tǒng)的漏洞,通過調(diào)用S204插件模塊和S205工具模塊,加相應(yīng)的參數(shù)運(yùn)行后,就可以得到目標(biāo)具有管理員資格的控制權(quán)。
[0076]3.shellcode編碼:重攻擊代碼(shellcode)進(jìn)行編碼,用以實(shí)現(xiàn)反檢測(cè)功能等。
[0077]4.WEB漏洞驗(yàn)證:用于驗(yàn)證WEB目標(biāo)漏洞的真實(shí)性,支持驗(yàn)證的種類有。
[0078]I)用戶憑證管理漏洞:沒有正確的對(duì)用戶憑證進(jìn)行創(chuàng)建、保存、傳輸和保護(hù)等。
[0079]2)權(quán)限、特權(quán)以及訪問控制漏洞:關(guān)鍵頁面沒有對(duì)用戶的權(quán)限做驗(yàn)證。
[0080]3)緩存漏洞:是指攻擊者欺騙DNS服務(wù)器使之相信偽造的DNS響應(yīng)的真實(shí)性;這種類型攻擊的目的是將依賴于此DNS服務(wù)器的受害者重定向到其他的地址。
[0081]4)跨站腳本漏洞:由于程序員在編寫程序時(shí)對(duì)一些變量沒有做充分的過濾,直接把用戶提交的數(shù)據(jù)送到SQL語句里執(zhí)行,這樣導(dǎo)致用戶可以提交一些特意構(gòu)造的語句,一般都是帶有像JavaScript等這類腳本代碼。
[0082]5)加密漏洞:某些網(wǎng)站密文加密算法遭到破解,可以逆向恢復(fù)明文。
[0083]6)路徑切換漏洞:輸入可以包含”等字符來對(duì)應(yīng)用路徑進(jìn)行切換和讀取。
[0084]7)代碼注入漏洞:由于程序員在編寫網(wǎng)頁時(shí)對(duì)一些變量沒有做充分的過濾,直接把用戶提交的代碼插入頁面當(dāng)中。
[0085]8)配置漏洞;由于網(wǎng)站的配置文件未做隱藏處理等,可以直接被讀取或修改。
[0086]9)數(shù)據(jù)和信息泄露漏洞。
[0087]10) SQL注入漏洞:由于程序員在編寫代碼的時(shí)候,沒有對(duì)用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷;用戶可以提交一段數(shù)據(jù)庫查詢代碼,根據(jù)程序返回的結(jié)果,獲得某些敏感數(shù)據(jù)。
[0088]11)連接跟蹤漏洞:允許用戶直接或用鏈接訪問或下載用戶無權(quán)訪問的文件。
[0089]12)組件漏洞:一些用于網(wǎng)站支撐的組件或模板類網(wǎng)站自身的缺陷漏洞,例如常見的 dicuz、apache 漏洞等。
[0090]5.弱口令破解:可以破解數(shù)據(jù)庫、FTP用戶、遠(yuǎn)程用戶和網(wǎng)站后臺(tái)等需登錄驗(yàn)證程序的弱口令賬戶。
[0091]6.輔助驗(yàn)證:一些輔助模塊,用以實(shí)現(xiàn)輔助攻擊,通過調(diào)用S205工具模塊的工具來實(shí)現(xiàn)。
[0092]參見見圖3,是本發(fā)明實(shí)施例提供的一種自動(dòng)化漏洞驗(yàn)證系統(tǒng)的流程示意圖。具體流程如下。
[0093]S300:初始化系統(tǒng),主要完成各模塊自檢、數(shù)據(jù)庫連接測(cè)試等操作。
[0094]S301:進(jìn)行工程設(shè)置,由使用者輸入基本信息;若要進(jìn)行主機(jī)漏洞探測(cè),則應(yīng)設(shè)置工程名稱、目標(biāo)IP、工程參數(shù);若要進(jìn)行網(wǎng)站域名探測(cè),則應(yīng)設(shè)置工程名稱、域名地址、工程參數(shù)相關(guān)信息。
[0095]S302:選擇主機(jī)探測(cè),此步驟和S310網(wǎng)站探測(cè)為并列關(guān)系,兩者使用不同的引擎,可以同時(shí)進(jìn)行而互不影響。
[0096]S303:主機(jī)探測(cè)開始,進(jìn)入端口探測(cè)循環(huán)。端口探測(cè)分為自定義范圍和常用端口兩類,其中常用端口是系統(tǒng)默認(rèn)的常見服務(wù)所使用的端口,也可以自定義設(shè)置端口掃描的范圍。
[0097]S304:當(dāng)探測(cè)到一個(gè)端口開放時(shí),系統(tǒng)會(huì)判斷該端口運(yùn)行服務(wù)的類型,然后記錄。
[0098]S305:判斷該端口是否開啟web服務(wù),若結(jié)果為否,則返回步驟S303繼續(xù)進(jìn)行端口探測(cè);若結(jié)果為是,則開啟一個(gè)網(wǎng)站探測(cè)的任務(wù),同步進(jìn)行步驟S311,再返回步驟S303繼續(xù)端口探測(cè)。
[0099]S306:當(dāng)全部端口探測(cè)完畢后,開始OS (操作系統(tǒng))探測(cè)。用ICMP協(xié)議Ping不同主機(jī),屏幕上回顯的TTL值會(huì)因不同主機(jī)操作系統(tǒng)的不同而不同。將返回結(jié)果與協(xié)議棧指紋庫進(jìn)行匹配,以此來判斷遠(yuǎn)程操作系統(tǒng)。
[0100]S307:端口和OS識(shí)別都是基本的探測(cè),當(dāng)這些進(jìn)程結(jié)束后,開啟脆弱性探測(cè)進(jìn)程;向目標(biāo)發(fā)送數(shù)據(jù)包,對(duì)目標(biāo)系統(tǒng)進(jìn)行脆弱性模擬測(cè)試,將返回?cái)?shù)據(jù)中的特征信息與漏洞庫中的漏洞特征進(jìn)行比對(duì),若返回報(bào)文中含有特征信息,則說明目標(biāo)系統(tǒng)可能存在著相關(guān)的脆弱性漏洞。
[0101]S308:探測(cè)階段完成后,將結(jié)果信息結(jié)合基本信息進(jìn)行封裝。
[0102]S309:讀取封裝后的數(shù)據(jù)結(jié)構(gòu),調(diào)用腳本或工具驗(yàn)證漏洞;若驗(yàn)證成功,則保存會(huì)話或者截圖用于漏洞證明。
[0103]S310:此步驟為網(wǎng)站漏洞驗(yàn)證的開始環(huán)節(jié)。
[0104]S311:信息收集,主要通過探測(cè)進(jìn)程獲取web服務(wù)器類型、域名解析地址、數(shù)據(jù)庫類型等信息。
[0105]S312:通過腳本探測(cè)技術(shù)自動(dòng)獲取網(wǎng)頁使用的編程語言,自動(dòng)選測(cè)對(duì)應(yīng)的檢測(cè)模塊。
[0106]S313:開啟爬蟲多線程,爬取整個(gè)網(wǎng)站的目錄結(jié)構(gòu)和頁面信息。
[0107]S314:分別對(duì)爬取的每一個(gè)頁面進(jìn)行分析,篩選出可以主動(dòng)提交的動(dòng)態(tài)參數(shù);將提取的動(dòng)態(tài)參數(shù)與URL建立映射關(guān)系,用與漏洞驗(yàn)證時(shí)自動(dòng)填充攻擊代碼。
[0108]S315:將探測(cè)階段獲得的信息及動(dòng)參映射關(guān)系進(jìn)行封裝。
[0109]S316:調(diào)用腳本或工具驗(yàn)證漏洞;若驗(yàn)證成功,則保存頁面緩存或者加入測(cè)試代碼的URL地址用于漏洞證明。
[0110]S317:生成報(bào)告;至此,整個(gè)系統(tǒng)運(yùn)行流程到此結(jié)束,使用者可以通過用戶界面,掃描目標(biāo)的基本信息,漏洞結(jié)果和漏洞證明進(jìn)行查看。
[0111]本發(fā)明實(shí)例只是用來舉例說明,以解釋本發(fā)明,并不用于限定本發(fā)明。
[0112]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述程序可以存儲(chǔ)于一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。
[0113]以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi);因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種自動(dòng)化漏洞驗(yàn)證方法,其特征在于,包括以下步驟: 1)信息收集:對(duì)目標(biāo)進(jìn)行信息探測(cè)、拓?fù)涮綔y(cè)、脆弱性探測(cè)及網(wǎng)站目錄結(jié)構(gòu)探測(cè); 2)數(shù)據(jù)封裝:提取脆弱性探測(cè)結(jié)果中可疑漏洞的關(guān)鍵信息,將數(shù)據(jù)進(jìn)行統(tǒng)一接口的模塊化封裝; 3)漏洞分析:查找策略庫,對(duì)可疑漏洞進(jìn)行分析; 4)漏洞驗(yàn)證:獲得漏洞利用憑證并進(jìn)行保存,主要檢測(cè)是否能夠成功建立相關(guān)會(huì)話、獲取機(jī)密信息或者提升入侵者權(quán)限等; 5)驗(yàn)證結(jié)果保存:保存驗(yàn)證結(jié)果證明; 6)驗(yàn)證痕跡清除:清除驗(yàn)證性攻擊痕跡以及回收會(huì)話; 7)驗(yàn)證報(bào)告生成:生成驗(yàn)證報(bào)告,包括網(wǎng)絡(luò)系統(tǒng)或主機(jī)的操作系統(tǒng)類型、打開的端口、服務(wù)、網(wǎng)絡(luò)拓?fù)洹⒋嬖诘陌踩┒?、漏洞證明等信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述步驟I)中的目標(biāo)是為了明確掃描對(duì)象的IP或者域名等信息,可以是一個(gè)單獨(dú)的主機(jī),也可以是一個(gè)IP段或者是一個(gè)網(wǎng)站; 所述步驟I)的具體實(shí)現(xiàn)方式是: 信息探測(cè):采用主動(dòng)探測(cè)方式根據(jù)操作系統(tǒng)指紋識(shí)別對(duì)方操作系統(tǒng),獲取目標(biāo)機(jī)的機(jī)器名稱;利用口令字典猜測(cè)對(duì)方的用戶名和弱口令,通常的口令安全掃描包括FTP 口令、POP3 口令、SQL 口令;進(jìn)行端口掃描,采用TCP端口掃描和UDP端口掃描; 拓?fù)涮綔y(cè):通過SNMP、ICMP協(xié)議進(jìn)行目標(biāo)網(wǎng)絡(luò)的拓?fù)浒l(fā)現(xiàn); 脆弱性探測(cè):根據(jù)信息探測(cè)獲取的端口開放情況和運(yùn)行的服務(wù)類型等信息,與漏洞庫進(jìn)行匹配,確定是否存在這樣的脆弱性隱患;向目標(biāo)發(fā)送數(shù)據(jù)包,對(duì)目標(biāo)系統(tǒng)進(jìn)行脆弱性模擬測(cè)試,若返回報(bào)文中含有特征信息,則說明目標(biāo)系統(tǒng)可能存在著相關(guān)的脆弱性漏洞,保存該漏洞的信息,用于之后的漏洞驗(yàn)證; 網(wǎng)站目錄爬取:通過爬蟲程序爬取網(wǎng)站目錄結(jié)構(gòu),該步驟只在目標(biāo)為網(wǎng)站或著探測(cè)到目標(biāo)開啟WEB服務(wù)時(shí)啟用。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述步驟2)中所述可疑漏洞的關(guān)鍵信息包括:目標(biāo)地址、操作系統(tǒng)信息、漏洞端口、漏洞類型、漏洞位置、漏洞參數(shù)、漏洞標(biāo)識(shí)、應(yīng)用版本信息、授權(quán)賬戶或者cookies等。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述步驟3)中所述對(duì)可疑漏洞進(jìn)行分析包括對(duì)系統(tǒng)漏洞和WEB漏洞的分析;對(duì)于系統(tǒng)漏洞,依據(jù)可疑的漏洞標(biāo)識(shí)和種類信息,選取合適的攻擊腳本模板和漏洞利用工具;對(duì)于WEB漏洞,則分析爬取地址中可以提交的動(dòng)態(tài)參數(shù),建立動(dòng)態(tài)參數(shù)與頁面地址的映射關(guān)系。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述步驟4)中所述漏洞驗(yàn)證分系統(tǒng)漏洞驗(yàn)證與WEB漏洞驗(yàn)證兩種,可以同時(shí)工作。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述步驟5)中所述驗(yàn)證結(jié)果保存是:保存的結(jié)果根據(jù)漏洞的分類來選?。蝗蹩诹盥┒磳?huì)保存破解后的用戶名和密碼信息;注入型漏洞會(huì)保存返回漏洞頁面緩存等。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于:所述步驟11)中的操作系統(tǒng)指紋識(shí)別是指:發(fā)送相同的協(xié)議棧(TCP/IP),不同的操作系統(tǒng)對(duì)特定格式的數(shù)據(jù)包有不同的響應(yīng);這種響應(yīng)差異,成為操作系統(tǒng)棧指紋;所述步驟11)中的端口掃描主要是使用TCP SYN掃描;掃描程序不必要打開一個(gè)完全的TCP連接,其發(fā)送的是一個(gè)SYN數(shù)據(jù)包。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于:所述系統(tǒng)漏洞驗(yàn)證的具體實(shí)現(xiàn)方式是: 41)讀取封裝結(jié)構(gòu)中數(shù)據(jù),配置成運(yùn)行參數(shù),傳參調(diào)用漏洞利用工具; 42)讀取封裝結(jié)構(gòu)中數(shù)據(jù),填充至攻擊腳本模板; 43)選取填充漏洞利用代碼至攻擊腳本模板,調(diào)用載荷運(yùn)行腳本; 44)不斷變化攻擊填充代碼的類型,嘗試攻擊直到攻擊成功或超出規(guī)定的嘗試次數(shù)或遍歷完所有攻擊代碼后停止,并在驗(yàn)證過程中監(jiān)視目標(biāo)內(nèi)存、緩沖區(qū)狀態(tài)的變化以及反饋的結(jié)果。
9.根據(jù)權(quán)利要求5所述的方法,其特征在于:所述WEB漏洞驗(yàn)證的具體實(shí)現(xiàn)方式是: 401)在爬取的頁面中選擇允許提交參數(shù)的動(dòng)態(tài)頁面,讀取動(dòng)態(tài)參數(shù)的映射表,選擇對(duì)應(yīng)的參數(shù)然后用攻擊代碼填充進(jìn)URL中; 402)提交填充后的URL,監(jiān)聽返回信息; 403)分析響應(yīng)頁面代碼,若出現(xiàn)攻擊代碼提交的關(guān)鍵字或者泄露數(shù)據(jù)庫信息則說明具有該漏洞; 404)不斷變化攻擊填充代碼的類型,嘗試攻擊直到攻擊成功或超出規(guī)定的嘗試次數(shù)或遍歷完所有攻擊代碼后停止。
10.根據(jù)權(quán)利要求8和9所述的方法,其特征在于:所述攻擊代碼是指并不構(gòu)造具體的威脅性代碼或功能性代碼,只在保證驗(yàn)證效果的前提下進(jìn)行最小程度的入侵或攻擊。
【文檔編號(hào)】G06F21/57GK104363236SQ201410673547
【公開日】2015年2月18日 申請(qǐng)日期:2014年11月21日 優(yōu)先權(quán)日:2014年11月21日
【發(fā)明者】朱志祥, 張勇, 吳晨, 劉盛輝 申請(qǐng)人:西安郵電大學(xué), 陜西省信息化工程研究院