這篇文章將為大家詳細(xì)講解有關(guān)Web漏洞掃描器的設(shè)計(jì)與實(shí)現(xiàn)是怎么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元宜春做網(wǎng)站,已為上家服務(wù),為宜春各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
畢業(yè)設(shè)計(jì)給自己挖了個(gè)巨坑,雖然這個(gè)設(shè)想從我大二開始就已經(jīng)有了一個(gè)大概的模型,但是實(shí)際實(shí)現(xiàn)起來(lái)與想象之中還是有很大的區(qū)別,特別是在漏洞報(bào)告準(zhǔn)確度,與及速度方面有一些比較難的取舍,所以就開了一個(gè)新系列,記錄一下自己玩死自己的過程。
目前主流的漏洞掃描器大概分為以下三類。
主動(dòng)型:直接主動(dòng)發(fā)起掃描請(qǐng)求。(ps:圖自己畫的,丑別怪我hhhh)
被動(dòng)型:利用中間代理或者別的方式進(jìn)行發(fā)現(xiàn)漏洞。
云掃描:部署在云端的掃描器,用戶通過瀏覽器就可進(jìn)行掃描。
這里我打算做的是主動(dòng)型與云端型,主體是主動(dòng)型,主動(dòng)型做好了,改成云端的不難。
03掃描器的工作流程
首先作為一個(gè)自動(dòng)化的測(cè)試工具,得先弄清楚掃描器與手工測(cè)試的區(qū)別
手工滲透測(cè)試的流程如下
- 信息收集
- 漏洞發(fā)現(xiàn)
- 驗(yàn)證漏洞
- 利用方法(EXP或者POC)
- 編寫測(cè)試報(bào)告
掃描器的流程
- 信息收集
- 發(fā)現(xiàn)漏洞(漏洞驗(yàn)證)
- 生成報(bào)告
人為的滲透測(cè)試需要簽寫各類合約,在不破化業(yè)務(wù)的功能性下,盡可能的獲得更多的數(shù)據(jù)與及權(quán)限。但是掃描器不一樣。只需要點(diǎn)到即可,驗(yàn)證漏洞,不需要后續(xù)的漏洞利用環(huán)節(jié)。
其中信息收集不管是在人為的滲透測(cè)試,還是掃描器中都是至關(guān)重要的一步,沒有信息收集,那就不會(huì)為下一步的發(fā)現(xiàn)漏洞做鋪墊,越多的信息對(duì)整個(gè)滲透測(cè)試或者掃描過程來(lái)說都是愈好的。
在WEB掃描中,我們大概所需要的信息如下
IP信息:其中這里的ip包括端口開放信息,c段信息等等。
子域名: 企業(yè)一般會(huì)把各種業(yè)務(wù)放在二級(jí)域名下,比如說百度的網(wǎng)盤業(yè)務(wù)地址為:pan.baidu.com
指紋信息:知曉目標(biāo)的指紋信息可以去找相應(yīng)的nday實(shí)現(xiàn)攻擊
敏感信息:敏感目錄,備份文件,未授權(quán)訪問的后臺(tái),郵箱,數(shù)據(jù)庫(kù)等等
超鏈接: 在爬蟲對(duì)目標(biāo)站點(diǎn)進(jìn)行爬取時(shí),都應(yīng)該進(jìn)行入庫(kù)處理,方便后續(xù)處理
在信息收集完畢之后,就需要對(duì)所收集到的內(nèi)容進(jìn)行漏洞發(fā)現(xiàn),在漏洞發(fā)現(xiàn)之后還需要進(jìn)行漏洞驗(yàn)證,避免出現(xiàn)大量誤報(bào),提高準(zhǔn)確率
以下是主要進(jìn)行的方式
端口:識(shí)別端口服務(wù),進(jìn)行相應(yīng)的爆破,0day測(cè)試
URL:識(shí)別參數(shù),進(jìn)行類似sql注入等測(cè)試
cms:指紋識(shí)別。進(jìn)行入庫(kù)匹配相應(yīng)poc
http協(xié)議 :改變各類參數(shù),進(jìn)行fuzz
生成html或者execl格式報(bào)告
04如何設(shè)計(jì)
掃描器的設(shè)計(jì)我們得遵循一些原則,不然做出來(lái)的東西,難以維護(hù),難以增減模塊,那不是我們想要的。
1,足夠的獨(dú)立性。
如果模塊之間相互影響太大,牽一發(fā)而動(dòng)全身那明顯不是我們所需要的。
2,單一職責(zé)原則
如果某一個(gè)模塊擔(dān)任了太多的功能,那么很可能某個(gè)掛了然后剩下的也會(huì)掛的,所以一個(gè)模塊一個(gè)功能是非常必要的。
3,高并發(fā)的設(shè)計(jì)思想
掃描器如果做不到高并發(fā),我想沒人愿意等到漫長(zhǎng)的掃描時(shí)間。
所以根據(jù)以上信息,我們可以確定一下我們漏洞掃描器的功能模塊。
一 爬蟲模塊:
負(fù)責(zé)爬取目標(biāo)站點(diǎn)可見的url,進(jìn)行相應(yīng)的入庫(kù)處理,然后分級(jí)處理,比如說可以遞交到敏感信息模塊去匹配信息,又或者遞交給漏洞檢測(cè)模塊進(jìn)行檢測(cè)。爬蟲模塊作為漏掃的主要眼睛,必須非常壯碩,所以在未來(lái)的實(shí)現(xiàn)爬蟲模塊篇中,將會(huì)是個(gè)問題。
二 域名探測(cè)模塊:
進(jìn)行子域名的查詢,包括二級(jí),三級(jí),多級(jí)。這里實(shí)現(xiàn)的方式主要有爆破,DNS,搜索引擎。
三 端口掃描模塊:
通過各種方法獲取真實(shí)ip 爆破服務(wù)器端口,將結(jié)果遞交給指紋識(shí)別模塊進(jìn)行識(shí)別與爆破模塊進(jìn)行相應(yīng)服務(wù)的爆破。
四 指紋識(shí)別模塊:
內(nèi)置大量指紋信息,居然可拓展的性質(zhì),進(jìn)行相應(yīng)的指紋識(shí)別,并將識(shí)別結(jié)果提交漏洞檢測(cè)模塊進(jìn)行相應(yīng)的nday查詢。
五 敏感信息模塊:
具有大量敏感信息目錄,進(jìn)行爆破操作,或者從爬蟲獲取相應(yīng)數(shù)據(jù)進(jìn)行匹配。
六 爆破模塊:
內(nèi)置各類服務(wù)爆破操作。
七 漏洞檢測(cè)模塊:
分為常規(guī)漏洞檢測(cè),與0day/nday檢測(cè),如何做到高效率的檢測(cè),又是一個(gè)問題了。
八 生成報(bào)告模塊:
將結(jié)果輸出成掃描報(bào)告。
九 “主控模塊”:
進(jìn)行各模塊安全可控的調(diào)度,以高效率的運(yùn)轉(zhuǎn)。
關(guān)于Web漏洞掃描器的設(shè)計(jì)與實(shí)現(xiàn)是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。