版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
百度文庫(kù)-讓每個(gè)人平等地提升自我百度文庫(kù)-讓每個(gè)人平等地提升自我PAGEPAGE40百度文庫(kù)-讓每個(gè)人平等地提升自我PAGE
本科畢業(yè)論文基于網(wǎng)絡(luò)的漏洞掃描系統(tǒng)VulnerabilityScanSystemBasedonNetwork姓名:學(xué)號(hào):學(xué)院:軟件學(xué)院系:軟件工程專業(yè):軟件工程年級(jí):指導(dǎo)教師:年月摘要隨著互聯(lián)網(wǎng)的日益普及,網(wǎng)絡(luò)的安全問題越來越成為人們關(guān)注的焦點(diǎn)之一。而在所有安全事件中,99%的網(wǎng)絡(luò)入侵都是基于已知的漏洞而產(chǎn)生的,因此檢測(cè)并修補(bǔ)已知的安全漏洞對(duì)保證網(wǎng)絡(luò)的安全起著非常重要的意義。基于網(wǎng)絡(luò)的漏洞掃描系統(tǒng)是一種主動(dòng)式的安全檢測(cè)系統(tǒng)。它能夠根據(jù)漏洞庫(kù)中不同漏洞的特征,模擬黑客攻擊的方式,向本地或遠(yuǎn)程主機(jī)發(fā)送一個(gè)或多個(gè)經(jīng)過特殊構(gòu)造的數(shù)據(jù)包,捕獲并記錄目標(biāo)主機(jī)發(fā)回的應(yīng)答數(shù)據(jù)包。通過這種方法,收集到目標(biāo)主機(jī)的各種信息,并將這些信息與已有漏洞的特征進(jìn)行匹配,從而發(fā)現(xiàn)目標(biāo)主機(jī)上的各種安全漏洞。本文首先介紹了課題研究的背景和意義,以及安全漏洞的概念、產(chǎn)生的原因,并對(duì)幾種常見的漏洞進(jìn)行了分析。接下來研究了安全漏洞掃描中使用的一些關(guān)鍵技術(shù),例如協(xié)議棧指紋識(shí)別技術(shù)、ICMP掃描技術(shù)、TCP掃描技術(shù)等,并在此基礎(chǔ)上設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)基于網(wǎng)絡(luò)的漏洞掃描系統(tǒng)。該系統(tǒng)首先檢測(cè)目標(biāo)主機(jī)的存活狀況,然后對(duì)遠(yuǎn)程主機(jī)操作系統(tǒng)版本進(jìn)行識(shí)別,緊接著掃描該主機(jī)所開放的服務(wù)端口,在得到這些信息的基礎(chǔ)上對(duì)目標(biāo)可能存在的已知安全漏洞進(jìn)行逐項(xiàng)檢測(cè),發(fā)現(xiàn)目標(biāo)系統(tǒng)中存在的漏洞。在掃描結(jié)束時(shí),給出掃描報(bào)告,從而讓管理員及時(shí)發(fā)現(xiàn)當(dāng)前網(wǎng)絡(luò)中的安全隱患,修補(bǔ)系統(tǒng)中的漏洞,提高網(wǎng)絡(luò)的安全性與抵御攻擊的能力。關(guān)鍵詞:漏洞;網(wǎng)絡(luò)安全;漏洞掃描AbstractWiththeincreasingpopularityoftheInternet,networksecurityisdrawingmoreandmorepeople'sattention.Forallthesecurityincidents,99%ofthenetworkinstrusionsarebasedontheknownvulnerabilities,soitissignificantfornetworksecuritythattheknownvulnerabilitiesshouldbedetectedandrepaired.VulnerabilityScanSystemBasedonNetworkisatypeofactivesecuritydetectionsystem.Itcanimmatatethewayofhackers'attackingtosendoneormorespeciallyconstructeddatapacketsaccourdingtothefeauresofdifferentvulnerability,andthencaptureandrecordtheechoingpacketsfromtargethost.Bythisway,theinformationoftargethostiscollected,thensystemcomparesthemwiththefeaturesofexistingvulnerabilities,thusvulnerabilitiesofthetargethostwillbefoundout.Thisarticlefirstlyintroducesthebackgroundandsignificanceoftheresearch,andthedefinitionofvulnerability,thecauseofthevulnerabilityaswellastheanalysisofseveralcommontypeofvulnerabilities.Thensomekeytechnologiesarestudiedysuchasidentificationofprotocolstack,ICMPscaningtechnology,TCPscaningtechnology,etc,basedonwhichasystemcalled"VulnerabilityScanSystemBasedonNetwork"isdesignedandimplemented.Thesystemfirstlydetectthelivenessofthetargethost,thenitsoperationsystemversionisdetected,andnext,theopeningserviceportsisscaned,afterthecollectionoftheseinformation,thesystemwillcheckthehost'svulnerabilitiesonebyone,finditsexistingvulnerabilities.Afterthescaning,areportisgivenwhichallowstheadministratortofindnetworksercurityvulnerabilitiesintimeandfixthem,whichwillrisethesecuritylevelandtheabilitytodefensenetworkattacking.Keywords:vulnerability;networksecurity;vulnerabilitiesscan.目錄研究背景 2漏洞掃描技術(shù)的現(xiàn)狀 2本文的內(nèi)容及安排 3相關(guān)理論介紹 52.1.1漏洞概念 52.1.2漏洞成因 62.1.3常見漏洞類型 7相關(guān)技術(shù)介紹 92.2.1Winsock與原始套接字 92.2.2操作系統(tǒng)嗅探技術(shù) 112.2.3ICMP掃描技術(shù) 122.2.4TCP掃描技術(shù) 14開發(fā)環(huán)境簡(jiǎn)介 18本章小結(jié) 18第三章系統(tǒng)分析與設(shè)計(jì) 19整體設(shè)計(jì) 193.1.1設(shè)計(jì)目標(biāo) 193.1.2系統(tǒng)結(jié)構(gòu) 193.1.3數(shù)據(jù)庫(kù)設(shè)計(jì) 21功能模塊設(shè)計(jì) 223.2.1存活主機(jī)檢測(cè) 223.2.2操作系統(tǒng)嗅探 233.2.3端口掃描 243.2.4漏洞掃描 24本章小結(jié) 26第四章系統(tǒng)實(shí)現(xiàn) 27存活主機(jī)檢測(cè)模塊的實(shí)現(xiàn) 27端口掃描模塊實(shí)現(xiàn) 28本章小結(jié) 32演示環(huán)境 33演示結(jié)果 335.2.1主機(jī)檢測(cè) 345.2.2操作系統(tǒng)嗅探 345.2.3端口探測(cè) 345.2.4漏洞掃描 36本章小結(jié) 36第六章總結(jié)與展望 37總結(jié) 37展望 37Content研究背景 2漏洞掃描技術(shù)的現(xiàn)狀 2本文的內(nèi)容及安排 3相關(guān)理論介紹 52.1.1漏洞概念 52.1.2漏洞成因 62.1.3常見漏洞類型 7相關(guān)技術(shù)介紹 92.2.1Winsock與原始套接字 92.2.2操作系統(tǒng)嗅探技術(shù) 112.2.3ICMP掃描技術(shù) 122.2.4TCP掃描技術(shù) 14開發(fā)環(huán)境簡(jiǎn)介 18本章小結(jié) 18第三章系統(tǒng)分析與設(shè)計(jì) 19整體設(shè)計(jì) 193.1.1設(shè)計(jì)目標(biāo) 193.1.2系統(tǒng)結(jié)構(gòu) 193.1.3數(shù)據(jù)庫(kù)設(shè)計(jì) 21功能模塊設(shè)計(jì) 223.2.1存活主機(jī)檢測(cè) 223.2.2操作系統(tǒng)嗅探 233.2.3端口掃描 243.2.4漏洞掃描 24本章小結(jié) 26第四章系統(tǒng)實(shí)現(xiàn) 27存活主機(jī)檢測(cè)模塊的實(shí)現(xiàn) 27端口掃描模塊實(shí)現(xiàn) 28本章小結(jié) 32演示環(huán)境 33演示結(jié)果 335.2.1主機(jī)檢測(cè) 345.2.2操作系統(tǒng)嗅探 345.2.3端口探測(cè) 345.2.4漏洞掃描 36本章小結(jié) 36第六章總結(jié)與展望 37總結(jié) 37展望 37第一章引言研究背景現(xiàn)代社會(huì)中,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為人們生活中不可缺少的組成部分,但是網(wǎng)絡(luò)技術(shù)在給我們帶來方便的同時(shí)也帶來了巨大的安全隱患。特別是近些年來,計(jì)算機(jī)網(wǎng)絡(luò)犯罪日益猖獗,從上世紀(jì)的蠕蟲、CHI到最近幾年的灰鴿子、熊貓燒香以及最近出來的鬼影,安全問題給人們帶來一次又一次沉重的教訓(xùn)。據(jù)美國(guó)聯(lián)邦調(diào)查局調(diào)查顯示,全美大約有280萬(wàn)個(gè)公司和組織都至少遇到過一次計(jì)算機(jī)安全問題,平均每一家遭受到了萬(wàn)美元的損失,如此,一年內(nèi)的損失總額可能會(huì)達(dá)到672億美元。[1]我們網(wǎng)絡(luò)環(huán)境之所以不安全,是因?yàn)樗嬖谥┒矗恳粋€(gè)網(wǎng)絡(luò)系統(tǒng)都有已被發(fā)掘的或潛在的尚未被發(fā)掘的各種安全漏洞,漏洞是無(wú)法避免的,不存在絕對(duì)安全的網(wǎng)絡(luò)系統(tǒng)。對(duì)于安全漏洞引起的問題,采用事先檢測(cè)系統(tǒng)的脆弱點(diǎn)防患于未然,是減少損失的有效辦法。通常黑客進(jìn)行攻擊前,會(huì)首先收集目標(biāo)網(wǎng)絡(luò)系統(tǒng)的信息,確定目標(biāo)網(wǎng)絡(luò)的狀態(tài),如操作系統(tǒng)版本類型、開放端口、運(yùn)行服務(wù)等,然后再實(shí)施具有針對(duì)性的攻擊。對(duì)目標(biāo)網(wǎng)絡(luò)系統(tǒng)信息的獲取,主要是通過漏洞掃描完成的。我們可以通過同樣的方式來評(píng)估網(wǎng)絡(luò)的安全性能。漏洞掃描器是一種自動(dòng)檢測(cè)遠(yuǎn)程或本地主機(jī)安全性弱點(diǎn)的程序。通過使用漏洞掃描器,系統(tǒng)管理員能夠發(fā)現(xiàn)所維護(hù)的服務(wù)器的各種TCP端口的分配、提供的服務(wù)、Web服務(wù)軟件版本和這些服務(wù)及軟件呈現(xiàn)在Internet上的安全漏洞。從而在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)安全防護(hù)中做到有的放矢,及時(shí)修補(bǔ)漏洞,構(gòu)筑安全的網(wǎng)絡(luò)體系。[2]漏洞掃描是一把雙刃劍,它作為網(wǎng)絡(luò)安全評(píng)測(cè)的重要工具,可以幫助系統(tǒng)管理員評(píng)估主機(jī)和網(wǎng)絡(luò)的安全性能,發(fā)現(xiàn)網(wǎng)絡(luò)中潛在的安全漏洞,提高網(wǎng)絡(luò)的抗攻擊能力;但是也可能被網(wǎng)絡(luò)入侵者所利用,作為收集網(wǎng)絡(luò)主機(jī)信息的重要手段。[2]漏洞掃描技術(shù)的現(xiàn)狀目前,在網(wǎng)絡(luò)安全領(lǐng)域,安全掃描技術(shù)、入侵檢測(cè)技術(shù)、防火墻技術(shù)和病毒檢測(cè)技術(shù)構(gòu)成網(wǎng)絡(luò)安全4種主要技術(shù)。后3種技術(shù)都是在攻擊進(jìn)行中或者進(jìn)行后的被動(dòng)檢側(cè),而安全掃描技術(shù)則是在攻擊進(jìn)行前的主動(dòng)檢測(cè)。[3]安全掃描通常采用兩種策略,第一種是被動(dòng)式策略,第二種是主動(dòng)式策略。所謂被動(dòng)式策略就是基于主機(jī)之上,對(duì)系統(tǒng)中不合適的設(shè)置,脆弱的口令以及其他同安全規(guī)則抵觸的對(duì)象進(jìn)行檢查;而主動(dòng)式策略是基于網(wǎng)絡(luò)的,它通過執(zhí)行一些腳本文件模擬對(duì)系統(tǒng)進(jìn)行攻擊的行為并記錄系統(tǒng)的反應(yīng),從而發(fā)現(xiàn)其中的漏洞。利用被動(dòng)式策略掃描稱為系統(tǒng)安全掃描,利用主動(dòng)式策略掃描稱為網(wǎng)絡(luò)安全掃描。目前安全漏洞掃描主要使用的檢測(cè)方案[4]:(1)基于應(yīng)用的檢測(cè)技術(shù)它采用被動(dòng)的、非破壞性的辦法檢查應(yīng)用軟件包的設(shè)置,發(fā)現(xiàn)安全漏洞。(2)基于主機(jī)的檢測(cè)技術(shù)它采用被動(dòng)的、非破壞性的辦法對(duì)系統(tǒng)進(jìn)行檢測(cè)。通常,它涉及到系統(tǒng)的內(nèi)核,文件的屬性,操作系統(tǒng)的補(bǔ)丁等問題。這種技術(shù)還包括口令解密,把一些簡(jiǎn)單的口令剔除。因此,這種技術(shù)可以非常準(zhǔn)確地定位系統(tǒng)的問題,發(fā)現(xiàn)系統(tǒng)的漏洞。它的缺點(diǎn)是與平臺(tái)相關(guān),升級(jí)復(fù)雜。(3)基于目標(biāo)的漏洞檢測(cè)技術(shù)它采用被動(dòng)的、非破壞性的辦法檢查系統(tǒng)屬性和文件屬性,如數(shù)據(jù)庫(kù),注冊(cè)號(hào)等。通過消息文摘算法,對(duì)文件的加密數(shù)進(jìn)行檢驗(yàn)。這種技術(shù)的實(shí)現(xiàn)是運(yùn)行在一個(gè)閉環(huán)上,不斷地處理文件,系統(tǒng)目標(biāo),系統(tǒng)目標(biāo)屬性,然后產(chǎn)生檢驗(yàn)數(shù),把這些檢驗(yàn)數(shù)同原來的檢驗(yàn)數(shù)相比較。一旦發(fā)現(xiàn)改變就通知管理員。(4)基于網(wǎng)絡(luò)的檢測(cè)技術(shù)它采用積極的、非破壞性的辦法來檢驗(yàn)系統(tǒng)是否有可能被攻擊崩潰。它利用了一系列的腳本模擬對(duì)系統(tǒng)進(jìn)行攻擊的行為,然后對(duì)結(jié)果進(jìn)行分析。它還針對(duì)已知的網(wǎng)絡(luò)漏洞進(jìn)行檢驗(yàn)。網(wǎng)絡(luò)檢測(cè)技術(shù)常被用來進(jìn)行穿透實(shí)驗(yàn)和安全審記。這種技術(shù)可以發(fā)現(xiàn)一系列平臺(tái)的漏洞,也容易安裝。但是,它可能會(huì)影響網(wǎng)絡(luò)的性能。本文的內(nèi)容及安排本文詳細(xì)介紹了安全漏洞的基本知識(shí),漏洞掃描的核心技術(shù)與方法,如存活主機(jī)檢測(cè)、基于協(xié)議棧指紋識(shí)別技術(shù)的操作系統(tǒng)嗅探,端口掃描及一些常見漏洞的掃描。在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的漏洞掃描系統(tǒng)。 全文共六章,章節(jié)安排如下:第一章:引言。介紹課題背景,漏洞掃描技術(shù)的現(xiàn)狀以及本文的研究?jī)?nèi)容和組織結(jié)構(gòu)。第二章:相關(guān)理論及技術(shù)概述。介紹了安全漏洞的概念、成因及一些常見漏洞分析。闡述了Winsock與原始數(shù)據(jù)包、存活主機(jī)檢測(cè)、操作系統(tǒng)嗅探、ICPM掃描、TCP掃描等相關(guān)技術(shù)。另外還介紹了本系統(tǒng)的開發(fā)環(huán)境。第三章:系統(tǒng)分析與設(shè)計(jì)。闡述系統(tǒng)的整體結(jié)構(gòu),工作原理、各模塊的設(shè)計(jì)及模塊之間的聯(lián)系,數(shù)據(jù)庫(kù)的設(shè)計(jì)等。第四章:系統(tǒng)的實(shí)現(xiàn)。根據(jù)第三章的設(shè)計(jì),將本系統(tǒng)各個(gè)功能模塊的實(shí)現(xiàn)作了詳細(xì)的介紹。第五章:系統(tǒng)演示。簡(jiǎn)單演示了各個(gè)模塊的功能。第六章:總結(jié)與展望。總結(jié)了本文的工作與本系統(tǒng)的特點(diǎn),并提出了一些改進(jìn)措施。第二章相關(guān)理論及技術(shù)概述這一章將介紹相關(guān)理論及技術(shù),包括漏洞的概念、成因及常見漏洞的分析,Winsock與原屬數(shù)據(jù)包的相關(guān)知識(shí),基于協(xié)議棧指紋識(shí)別技術(shù)的操作系統(tǒng)嗅探原理和TCP、ICMP掃描等技術(shù)。最后簡(jiǎn)要介紹了一下系統(tǒng)的開發(fā)環(huán)境。相關(guān)理論介紹2.1.1漏洞概念漏洞(Vulnerability):也稱脆弱性,是在硬件、軟件、協(xié)議的具體實(shí)現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的情況下訪問或破壞系統(tǒng)。[5]具體舉例來說,比如在IntelPentium芯片中存在的邏輯錯(cuò)誤,在Sendmail早期版本中的編程錯(cuò)誤,在NFS協(xié)議中認(rèn)證方式上的弱點(diǎn),在Unix系統(tǒng)管理員設(shè)置匿名Ftp服務(wù)時(shí)配置不當(dāng)?shù)膯栴}都可能被攻擊者使用,威脅到系統(tǒng)的安全。因而這些都可以認(rèn)為是系統(tǒng)中存在的安全漏洞。[6]系統(tǒng)安全漏洞是在系統(tǒng)具體實(shí)現(xiàn)和具體使用中產(chǎn)生的錯(cuò)誤,但并不是系統(tǒng)中存在的錯(cuò)誤都是安全漏洞。只有能威脅到系統(tǒng)安全的錯(cuò)誤才是漏洞。許多錯(cuò)誤在通常情況下并不會(huì)對(duì)系統(tǒng)安全造成危害,只有被人在某些條件下故意使用時(shí)才會(huì)影響系統(tǒng)安全。漏洞會(huì)影響到很大范圍的軟硬件設(shè)備,包括作系統(tǒng)本身及其支撐軟件,網(wǎng)絡(luò)客戶和服務(wù)器軟件,網(wǎng)絡(luò)路由器和安全防火墻等。換而言之,在這些不同的軟硬件設(shè)備中都可能存在不同的安全漏洞問題。在不同種類的軟、硬件設(shè)備,同種設(shè)備的不同版本之間,由不同設(shè)備構(gòu)成的不同系統(tǒng)之間,以及同種系統(tǒng)在不同的設(shè)置條件下,都會(huì)存在各自不同的安全漏洞問題。[6]漏洞問題是與時(shí)間緊密相關(guān)的。一個(gè)系統(tǒng)從發(fā)布的那一天起,隨著用戶的深入使用,系統(tǒng)中存在的漏洞會(huì)被不斷暴露出來,這些早先被發(fā)現(xiàn)的漏洞也會(huì)不斷被系統(tǒng)供應(yīng)商發(fā)布的補(bǔ)丁軟件修補(bǔ),或在以后發(fā)布的新版系統(tǒng)中得以糾正。而在新版系統(tǒng)糾正了舊版本中具有漏洞的同時(shí),也會(huì)引入一些新的漏洞和錯(cuò)誤。因而隨著時(shí)間的推移,舊的漏洞會(huì)不斷消失,新的漏洞會(huì)不斷出現(xiàn)。漏洞問題也會(huì)長(zhǎng)期存在。因而脫離具體的時(shí)間和具體的系統(tǒng)環(huán)境來討論漏洞問題是毫無(wú)意義的。只能針對(duì)目標(biāo)系統(tǒng)的作系統(tǒng)版本、其上運(yùn)行的軟件版本以及服務(wù)運(yùn)行設(shè)置等實(shí)際環(huán)境來具體談?wù)撈渲锌赡艽嬖诘穆┒醇捌淇尚械慕鉀Q辦法。2.1.2漏洞成因網(wǎng)絡(luò)的安全符合木桶原理,入侵者只要找到復(fù)雜計(jì)算機(jī)網(wǎng)絡(luò)中的一個(gè)縫隙,就能輕而易舉地闖入系統(tǒng)。所以,了解這些縫隙可能存在的地方以及產(chǎn)生的原因,對(duì)檢測(cè)及修補(bǔ)他們起著至關(guān)重要的意義。通常產(chǎn)生這些缺陷的方面主要表現(xiàn)在系統(tǒng)設(shè)計(jì)、口令設(shè)置、數(shù)據(jù)未加密、軟件bug等。[6]設(shè)計(jì)上的缺陷:TCP/IP協(xié)議在設(shè)計(jì)之初首先考慮的是網(wǎng)絡(luò)互連而不是網(wǎng)絡(luò)安全,它是假定工作在可信環(huán)境下的,而且由于TCP/IP協(xié)議是完全公開的,入侵者可以隨意地偽造或修改數(shù)據(jù)包而不被發(fā)現(xiàn),從而達(dá)到一些不正當(dāng)?shù)哪康?。這使得我們的網(wǎng)絡(luò)環(huán)境變得很不安全、很不可靠。口令設(shè)置過于簡(jiǎn)單:(1)口令被猜測(cè):很多人經(jīng)常使用自己的電話號(hào)碼,生日等作為登陸口令,有的人甚至采用像“abc”、“111111”、“123456(2)字典攻擊:入侵者使用一個(gè)程序,該程序借助一個(gè)包含用戶名和口令的字典數(shù)據(jù)庫(kù),不斷地嘗試登錄系統(tǒng),直到成功進(jìn)入。毋庸置疑,這種方式的關(guān)鍵在于有一個(gè)好的字典。 (3)暴力破解:與字典攻擊類似,不同的是暴力破解會(huì)把所有的字符串組合都試一遍。例如包含6個(gè)數(shù)字的口令有一百萬(wàn)種組合,1個(gè)包含大小寫且標(biāo)點(diǎn)符號(hào)的7字符口令大約有10萬(wàn)億種組合。對(duì)于后者,一般的計(jì)算機(jī)要花費(fèi)大約幾個(gè)月的時(shí)間才能試驗(yàn)一遍。可見,長(zhǎng)口令是保證系統(tǒng)安全的有效措施。數(shù)據(jù)未加密:抓包程序輕而易舉的就能夠抓到所有經(jīng)過該節(jié)點(diǎn)的數(shù)據(jù)流,若我們的數(shù)據(jù)未加密,那么它就會(huì)完全暴露在入侵者面前,系統(tǒng)就毫無(wú)安全性可言。(1)共享介質(zhì):傳統(tǒng)的以太網(wǎng)結(jié)構(gòu)很便于入侵者在網(wǎng)絡(luò)上放置一個(gè)嗅探器就可以查看該網(wǎng)段上的通訊數(shù)據(jù),但是如果采用交換型以太網(wǎng)結(jié)構(gòu),嗅探行為將變得非常困難。(2)服務(wù)器嗅探:交換型網(wǎng)絡(luò)也有一個(gè)明顯的不足,入侵者可以在服務(wù)器上特別是充當(dāng)路由功能的服務(wù)器上安裝一個(gè)嗅探器軟件,然后就可以通過它收集到的信息闖進(jìn)客戶端機(jī)器以及新任的機(jī)器。例如,雖然不知道用戶的口令,但當(dāng)用戶使用Telnet軟件登錄時(shí)就可以嗅探到他輸入的口令了。(3)遠(yuǎn)程嗅探:許多設(shè)備都具有RMON(Remotemonitor,遠(yuǎn)程監(jiān)控)功能以便管理者使用公共體字符串(publiccommunitystrings)進(jìn)行遠(yuǎn)程調(diào)試。隨著寬帶的不斷普及,入侵者對(duì)這個(gè)后門越來越感興趣了。編寫軟件存在bug:無(wú)論是服務(wù)器程序、客戶端軟件還是操作系統(tǒng),只要是用代碼編寫的東西,都會(huì)存在不同程度的bug,常見的主要有以下幾類:(1)緩沖區(qū)溢出:指入侵者在程序的有關(guān)輸入項(xiàng)目中了輸入了超過規(guī)定長(zhǎng)度的字符串,超過的部分通常就是入侵者想要執(zhí)行的攻擊代碼,而程序編寫者又沒有進(jìn)行輸入長(zhǎng)度的檢查,最終導(dǎo)致多出的攻擊代碼占據(jù)了輸入緩沖區(qū)后的內(nèi)存而執(zhí)行。(2)意料外的聯(lián)合使用問題:一個(gè)程序經(jīng)常由功能不同的多層代碼組成,甚至?xí)婕暗阶畹讓拥牟僮飨到y(tǒng)級(jí)別。入侵者通常會(huì)利用這個(gè)特點(diǎn)為不同的層輸入不同的內(nèi)容,以達(dá)到竊取信息的目的。例如:對(duì)于由Perl編寫的程序,入侵者可以在程序的輸入項(xiàng)目中輸入類似“mail</etc/password”的字符串,從而使Perl讓操作系統(tǒng)調(diào)用郵件程序,并發(fā)送出重要的密碼文件給入侵者。(3)不對(duì)輸入內(nèi)容進(jìn)行預(yù)期檢查:有些編程人員怕麻煩,對(duì)輸入內(nèi)容不進(jìn)行預(yù)期的匹配檢查,使入侵者輸送炸彈的工作輕松簡(jiǎn)單。(4)Raceconditions:多任務(wù)多線程的程序越來越多,在提高運(yùn)行效率的同時(shí),也要注意Raceconditions的問題。比如說:程序A和程序B都按照“讀/改/寫”的順序操作一個(gè)文件,當(dāng)A進(jìn)行完讀和改的工作時(shí),B啟動(dòng)立即執(zhí)行完“讀/改/寫”的全部工作,這時(shí)A繼續(xù)執(zhí)行寫工作,結(jié)果是A的操作沒有了表現(xiàn)!入侵者就可能利用這個(gè)處理順序上的漏洞改寫某些重要文件從而達(dá)到闖入系統(tǒng)的目的。2.1.3常見漏洞類型漏洞的種類很多,據(jù)CVE(通用漏洞披露)的統(tǒng)計(jì)資料現(xiàn)在已經(jīng)有幾千種,其中以CGI漏洞最多,而SMTP漏洞以及緩沖區(qū)溢出漏洞的出現(xiàn)頻率最高,以下針對(duì)幾種比較常見的漏洞加以介紹。 CGI漏洞:CGI(CommonGatewayInterface)即公共網(wǎng)關(guān)接口,它是一種與Web服務(wù)器通信的標(biāo)準(zhǔn)接口。CGI主要有兩項(xiàng)功能:1.用于收集從瀏覽器發(fā)送給Web服務(wù)器的信息,并使這些信息能供其他程序使用;2.對(duì)提出請(qǐng)求的瀏覽器回送服務(wù)器處理的結(jié)果。[7]由于CGI程序開發(fā)者的疏忽,許多CGI程序存在各種危險(xiǎn)程度的漏洞。例如有的CGI程序允許遠(yuǎn)程攻擊者在WEB服務(wù)器上執(zhí)行任意的命令,可能對(duì)服務(wù)器造成破壞;有些CGI程序本身、或者被其調(diào)用的函數(shù)缺乏對(duì)用戶輸入數(shù)據(jù)的合法性檢查,未能濾除一些特殊字符,使得入侵者可以通過構(gòu)造請(qǐng)求來達(dá)到入侵的目的。比如,缺乏對(duì)“../”的過濾,可能導(dǎo)致入侵者讀取系統(tǒng)的任意文件;有些CGI程序會(huì)向客戶端瀏覽器返回某些敏感信息,比如腳本所在路徑、HTTP根目錄所在路徑、Perl版本、server_admin、server_name、PATH環(huán)境變量等,這些都為黑客的攻擊提供了便利。[7] 目前,大多數(shù)網(wǎng)站都使用免費(fèi)的公共CGI腳本程序去驅(qū)動(dòng)各自的Web服務(wù),從而導(dǎo)致有缺陷的CGI腳本在Internet上泛濫開來。因此,對(duì)CGI腳本的安全性應(yīng)高度重視。SMTP漏洞:SMTP(SimpleMailTransferProtocol)是簡(jiǎn)單郵件傳輸協(xié)議的簡(jiǎn)稱。SMTP協(xié)議出于TCP/IP協(xié)議的應(yīng)用層包,但事實(shí)上它與傳輸系統(tǒng)和機(jī)制無(wú)關(guān),僅要求一個(gè)可靠的數(shù)據(jù)流通道。盡管SMTP服務(wù)已經(jīng)在RFC中被詳細(xì)的定義,但在具體實(shí)現(xiàn)中各個(gè)軟件開發(fā)商并沒有很好的遵循RFC的規(guī)定,因此我們可以通過實(shí)現(xiàn)上的細(xì)小差異來進(jìn)行探測(cè)活動(dòng)。通過發(fā)送特定的、非標(biāo)準(zhǔn)的數(shù)據(jù)包來獲得指紋信息,可以進(jìn)而判斷出目標(biāo)主機(jī)使用的軟件版本信息。FTP漏洞:FTP是FileTransferProtocol(文件傳輸協(xié)議)的英文簡(jiǎn)稱,用于Internet上的控制文件的雙向傳輸。用戶可以通過它把自己的PC機(jī)與世界各地所有運(yùn)行FTP協(xié)議的服務(wù)器相連,訪問服務(wù)器上的大量程序和信息。FTP服務(wù)也存在多種漏洞,包括拒絕服務(wù)攻擊漏洞、緩沖區(qū)溢出漏洞等等,以FTP弱口令為例,因?yàn)閒tp服務(wù)器上可能存在匿名用戶或者弱勢(shì)密碼用戶,所以黑客常利用該缺陷進(jìn)行攻擊。例如發(fā)現(xiàn)ftp匿名用戶后,可以再借助系統(tǒng)的其他漏洞通過匿名用戶提升權(quán)限。開放匿名用戶經(jīng)常會(huì)給系統(tǒng)帶來一些安全隱患。DOS漏洞:DOS是DenialofService的簡(jiǎn)稱,即拒絕服務(wù)。任何對(duì)服務(wù)的干涉如果使得其可用性降低或者失去可用性均成為拒絕服務(wù)。如果一個(gè)計(jì)算機(jī)系統(tǒng)崩潰或其帶寬耗盡或其硬盤被填滿,導(dǎo)致其不能提供正常的服務(wù),就構(gòu)成拒絕服務(wù)。造成DOS的攻擊行為被稱為DOS攻擊,其目的是使計(jì)算機(jī)或網(wǎng)絡(luò)無(wú)法提供正常的服務(wù)。最常見的DOS攻擊有計(jì)算機(jī)網(wǎng)絡(luò)帶寬攻擊和連通性攻擊。帶寬攻擊指以極大的通信量沖擊網(wǎng)絡(luò),使得所有可用網(wǎng)絡(luò)資源都被消耗殆盡,最后導(dǎo)致合法的用戶請(qǐng)求就無(wú)法通過。連通性攻擊指用大量的連接請(qǐng)求沖擊計(jì)算機(jī),使得所有可用的操作系統(tǒng)資源都被消耗殆盡,最終計(jì)算機(jī)無(wú)法再處理合法用戶的請(qǐng)求。Finger漏洞:Finger是UNIX系統(tǒng)中用于查詢用戶情況的實(shí)用程序。UNIX系統(tǒng)保存了每個(gè)用戶的詳細(xì)資料,包括E-mail地址、賬號(hào),在現(xiàn)實(shí)生活中的真實(shí)姓名、登錄時(shí)間、有沒有未閱讀的信件,最后一次閱讀E-mail的時(shí)間以及外出時(shí)的留言等資料。當(dāng)用Finger命令查詢時(shí),系統(tǒng)會(huì)將上述資料一一顯示在終端計(jì)算機(jī)上。使用Finger可以查詢Internet主機(jī)內(nèi)任意用戶的某些公開信息,因此,它為黑客提供了大量有用的信息:如用戶名列表、用戶登錄信息和一些能夠用來猜測(cè)密碼的信息等。特別要指出的是,79端口是專為Finger服務(wù)開放的,主要用于查詢遠(yuǎn)程主機(jī)在線用戶、操作系統(tǒng)類型以及是否緩沖區(qū)溢出等用戶的詳細(xì)信息.相關(guān)技術(shù)介紹2.2.1Winsock與原始套接字WindowsSockets簡(jiǎn)稱WinSock,是Windows下的網(wǎng)絡(luò)編程規(guī)范,為應(yīng)用程序提供了開放的、支持多種協(xié)議的網(wǎng)絡(luò)編程接口。它定義了如何通過API實(shí)現(xiàn)與internet協(xié)議族的連接。應(yīng)用程序通過調(diào)用WindowsSockets的API實(shí)現(xiàn)相互之間的通信,而實(shí)際的工作是通過下層的網(wǎng)絡(luò)通信協(xié)議和操作系統(tǒng)實(shí)現(xiàn)的。在七層網(wǎng)絡(luò)協(xié)議中,WinSock主要控制數(shù)據(jù)的輸入和輸出,也就是傳輸層和網(wǎng)絡(luò)層,屏蔽了數(shù)據(jù)鏈路層和物理層。WinsockAPI函數(shù)有版本和版本。經(jīng)過不斷完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,已成為Windows網(wǎng)絡(luò)編程的事實(shí)上的標(biāo)準(zhǔn)。[8]Winsock為上層應(yīng)用程序提供的一種標(biāo)準(zhǔn)網(wǎng)絡(luò)接口,而不是協(xié)議,所以它可以用于發(fā)現(xiàn)和使用任意數(shù)量的底層傳輸協(xié)議所提供的通信能力。上層應(yīng)用程序不用關(guān)心Winsock實(shí)現(xiàn)的細(xì)節(jié),它為上層應(yīng)用程序提供透明的服務(wù)最開始的Winsock是圍繞著TCP/IP協(xié)議運(yùn)行的,但是在Winsock2.0中卻增加了對(duì)更多傳輸協(xié)議的支持.不僅提供了一個(gè)供應(yīng)用程序訪問網(wǎng)絡(luò)服務(wù)的Windowsocket應(yīng)用程序編程接口(API:ApplicationProgrammingInterface),還包含了由傳輸服務(wù)提供者和名字解析服務(wù)提供者實(shí)現(xiàn)的Winsock服務(wù)提供者接口(SPI:ServiceProviderInterface)和ws2_32.d11。Winsock2.0引人的這個(gè)新功能(SPI技術(shù))打破了服務(wù)提供者的透明,讓開發(fā)者可以編寫自己的服務(wù)提供程序,SPI以動(dòng)態(tài)鏈接庫(kù)(DLL)的形式存在,它工作在應(yīng)用層,為上層API調(diào)用提供接口函數(shù)。在網(wǎng)絡(luò)安全掃描中要構(gòu)造各種不同的數(shù)據(jù)報(bào),如TCP數(shù)據(jù)包,UDP數(shù)據(jù)包及ICMP數(shù)據(jù)包,可以利用Winsock的原始套接字來實(shí)現(xiàn)。并且在分析返回?cái)?shù)據(jù)時(shí)要捕獲網(wǎng)絡(luò)數(shù)據(jù)包,此時(shí)也可以使用Winsock的原始套接字。原始套接字能夠根據(jù)需要生成用戶想要的數(shù)據(jù)報(bào)文,包括報(bào)頭和數(shù)據(jù)報(bào)本身的內(nèi)容,而且能夠?qū)W(wǎng)絡(luò)底層的傳輸制進(jìn)行控制。對(duì)于一般的流套接字或數(shù)據(jù)報(bào)套接字,開發(fā)人員只能處理封裝在TCP或UDP協(xié)議中的數(shù)據(jù)。而原始套接字則提供了一種直接訪問底層IP協(xié)議的方法。它主要提供了以下幾種TCP及UDP套接字所不能提供的功能:[8](1)使用原始套接字可以讀寫包含在IP包中的其它協(xié)議數(shù)據(jù)報(bào),如ICMP、IGMP、OSPF等。(2)利用原始套接字,使用IP_HDRINCL套接字選項(xiàng)可以構(gòu)造IP包頭部。(3)利用原始套接字,使用I/O控制命令SIO_RCVALL可以捕獲網(wǎng)上所有的IP在構(gòu)造數(shù)據(jù)包的時(shí)候,要按照協(xié)議規(guī)定封裝數(shù)據(jù),入棧的封裝過程如圖2-1所示。圖2-1:數(shù)據(jù)進(jìn)入?yún)f(xié)議棧時(shí)的封裝過程要注意的是由于TCP、UDP、ICMP、和IGMP都要向IP傳送數(shù)據(jù),因此IP必須在生成的IP首部中加入某種標(biāo)示,以表明數(shù)據(jù)屬于哪一層。為此,IP在首部存入一個(gè)長(zhǎng)度為8bit的數(shù)值,稱作協(xié)議域。1表示ICMP協(xié)議,2表示IGMP協(xié)議,6表示TCP協(xié)議,17表示UDP協(xié)議。[9]2.2.2操作系統(tǒng)嗅探技術(shù)在網(wǎng)絡(luò)信息安全系統(tǒng),尤其是安全評(píng)估系統(tǒng)中,信息的收集和分析至關(guān)重要,對(duì)操作系統(tǒng)進(jìn)行踩點(diǎn),識(shí)別目標(biāo)操作系統(tǒng)則是其中不可獲取的一個(gè)組成部分。因?yàn)楦鞣N各樣的漏洞依附于不同的操作系統(tǒng)之上,只有精確地識(shí)別出目標(biāo)主機(jī)操作系統(tǒng)的類型,才能更有目的性地發(fā)掘漏洞和弱點(diǎn)所在,準(zhǔn)確地對(duì)目標(biāo)主機(jī)進(jìn)行評(píng)估。當(dāng)前流行的主動(dòng)操作系統(tǒng)探測(cè)方法主要分為TCP/IP棧指紋識(shí)別和ICMP棧指紋識(shí)別。在TCP/IP棧指紋識(shí)別中,通過設(shè)置IP頭部和TCP頭部標(biāo)志位的不同值,觀察回復(fù)報(bào)文標(biāo)志位的設(shè)置等諸多情況,分析操作系統(tǒng)類型;ICMP棧指紋識(shí)別探測(cè)主要通過發(fā)送ICMPEchoRequest、TimestampRequest和InformationRequest等報(bào)文進(jìn)行探測(cè),通過分折回復(fù)報(bào)文的IP頭、ICMP頭部的相關(guān)標(biāo)志位的設(shè)置情況來區(qū)分操作系統(tǒng)類型。 以下舉例說明不同系統(tǒng)對(duì)ICMP響應(yīng)的差別[8]。IP總長(zhǎng)度:一些系統(tǒng)會(huì)正常響應(yīng)該域的值,而某些操作系統(tǒng)(如BSD家族系列)會(huì)在原始IP總長(zhǎng)度域上增加20字節(jié)(sizeof(ipheader)),這是因?yàn)槠鋬?nèi)部錯(cuò)誤處理數(shù)據(jù)包的結(jié)果。(注意:同樣的數(shù)據(jù)包如果從SOCK_RAW讀取的話,返回的數(shù)據(jù)包ip_len字段將會(huì)減掉20字節(jié)).IP/UPD頭校驗(yàn)和:一些操作系統(tǒng)會(huì)錯(cuò)誤計(jì)算這個(gè)域,某些系統(tǒng)會(huì)填充0值,而有些系統(tǒng)能正確響應(yīng)這個(gè)值。DF位響應(yīng):些TCP/IP堆棧會(huì)在ICMP錯(cuò)誤數(shù)據(jù)包中響應(yīng)DF位,其他的(如Linux)會(huì)拷貝全部八位位組,并部分位清零,再有的是會(huì)忽略這個(gè)位而設(shè)置其自身相關(guān)的值。IPID字段:基于Linux2.4.0-內(nèi)核的Linux機(jī)器會(huì)在ICMP查詢請(qǐng)求和應(yīng)答信息中設(shè)置IP標(biāo)識(shí)為零值。而在和以上版本中得到改正。ICMP回顯請(qǐng)求code字段:ICMP回顯請(qǐng)求信息(類型8)中ICMP代碼段的值不等于0時(shí),操作系統(tǒng)會(huì)使用ICMP回顯應(yīng)答對(duì)發(fā)送方的查詢進(jìn)行回答,基于Microsoft的操作系統(tǒng)會(huì)發(fā)回在ICMP回顯應(yīng)答中ICMP代碼類型設(shè)置為0的數(shù)據(jù)包,而其他操作系統(tǒng)和網(wǎng)絡(luò)設(shè)備則會(huì)使用ICMP回顯請(qǐng)求中相同的ICMP代碼段值。以上列舉了幾種不同系統(tǒng)對(duì)發(fā)送方區(qū)別響應(yīng)的情況。當(dāng)我們收集到足夠的信息之后,就可以判斷出目標(biāo)主機(jī)所使用的操作系統(tǒng)。信息越詳細(xì),探測(cè)的結(jié)果就越準(zhǔn)確,能夠辨別的操作系統(tǒng)也就越多。2.2.3ICMP掃描技術(shù) ICMP是(InternetControlMessageProtocol)Internet控制報(bào)文協(xié)議。它是TCP/IP協(xié)議族的子協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息。一般來說,ICMP報(bào)文提供針對(duì)網(wǎng)絡(luò)層的錯(cuò)誤診斷、擁塞控制、路徑控制和查詢服務(wù)四項(xiàng)功能。例如,當(dāng)一個(gè)分組無(wú)法到達(dá)目的站點(diǎn)或TTL超時(shí)后,路由器就會(huì)丟棄此分組,并向源站點(diǎn)返回一個(gè)目的不可達(dá)的ICMP報(bào)文。[11]ICMP報(bào)文大體上可以分為兩種類型,即:ICMP差錯(cuò)報(bào)文和ICMP查詢報(bào)文。常用的ICMP報(bào)文有ICMP回顯請(qǐng)求、ICMP地址掩碼請(qǐng)求、ICMP時(shí)間戳請(qǐng)求和ICMP端口不可達(dá)報(bào)文。格式如圖2-1所示。圖2-2:ICMP協(xié)議報(bào)文格式ICMP回顯請(qǐng)求/應(yīng)答報(bào)文是一種雙向信息查詢報(bào)文,用于獲取某些有用信息,以便進(jìn)行網(wǎng)路故障診斷和網(wǎng)絡(luò)控制。常用的ping程序就是基于ICMP回顯請(qǐng)求實(shí)現(xiàn)的。ICMP地址掩碼請(qǐng)求用于無(wú)盤系統(tǒng)在引導(dǎo)過程中獲取自己的子網(wǎng)掩碼,系統(tǒng)將廣播它的ICMP請(qǐng)求報(bào)文。ICMP端口不可達(dá)報(bào)文是ICMP目的不可達(dá)報(bào)文中的一種,可以從ICMP差錯(cuò)報(bào)文中所附加的數(shù)據(jù)中查看錯(cuò)誤信息。ICMP時(shí)間戳請(qǐng)求允許系統(tǒng)向另一個(gè)系統(tǒng)查詢當(dāng)前的時(shí)間。返回的建議值是自午夜開始計(jì)算的毫秒數(shù),是協(xié)調(diào)的統(tǒng)一時(shí)間(CoordinatedUniversalTime,UTC),它是世界各地通用標(biāo)準(zhǔn)時(shí)間,也叫世界時(shí)。這種ICMP報(bào)文的好處是它提供了毫秒級(jí)的分辨率,而利用其他方法從別的主機(jī)獲取的時(shí)間只能提供秒級(jí)的分辨率。最常用的ICMP掃描方法就是利用PING的原理,發(fā)送ICMP回顯請(qǐng)求報(bào)文,然后監(jiān)聽是否有ICMP回顯應(yīng)答報(bào)文返回,如果沒有就證明目標(biāo)主機(jī)不存在或者已經(jīng)停機(jī),如果能夠返回ICMP回顯應(yīng)答報(bào)文,就證明主機(jī)正在運(yùn)行[6]。其過程如圖2-3所示。圖2-3:ICMP回顯請(qǐng)求2.2.4TCP掃描技術(shù) 利用TCP協(xié)議來進(jìn)行端口掃描是常見的掃描方法,因?yàn)楝F(xiàn)在的很多網(wǎng)絡(luò)應(yīng)用程序都是基于TCP協(xié)議來實(shí)現(xiàn)的,例如Web服務(wù)器就是基于TCP的80號(hào)端口[6]。 TCP是一個(gè)面向連接的協(xié)議,格式如圖2-4所示:圖2-4:TCP協(xié)議格式端口號(hào)對(duì)應(yīng)服務(wù)類型,也是TCP通信與應(yīng)用程序的接口,每個(gè)TCP通信程序都有一個(gè)TCP端口,或者是臨時(shí)的端口或者是固定的端口。一個(gè)四元組(客戶機(jī)IP,客戶端口,服務(wù)器IP,服務(wù)器端口)對(duì)應(yīng)一個(gè)完整的TCP連接。TCP協(xié)議提供完全可靠的、面向連接的、全雙工的、流傳輸服務(wù)。它與IP協(xié)議同時(shí)使用,保證了網(wǎng)絡(luò)上不同主機(jī)在通信時(shí)數(shù)據(jù)傳輸?shù)目煽俊⒏咝?。TCP的可靠傳輸是通過三次握手過程實(shí)現(xiàn)的。TCP中有六個(gè)標(biāo)志位,其中URG表示緊急指針,ACK表示確認(rèn)號(hào),RSH置1時(shí)請(qǐng)求的數(shù)據(jù)段在接收方得到后就可直接送到應(yīng)用程序,而不必等到緩沖區(qū)滿時(shí)才傳送。RST置1時(shí)重建連接,如果接收到RST位,通常表明發(fā)生了某些錯(cuò)誤。SYN置1時(shí)用來發(fā)起一個(gè)連接。FIN置1時(shí)表示發(fā)送端完成發(fā)送任務(wù),用來釋放連接,表明發(fā)送方已經(jīng)沒有數(shù)據(jù)發(fā)送了。TCP正常連接也稱為三次握手過程,在這個(gè)過程中的第一個(gè)報(bào)文的代碼類型設(shè)置為SYN,序列號(hào)為m,表示開始一次握手。接收方接收后,向發(fā)送者發(fā)回一個(gè)報(bào)文。代碼類型設(shè)置為SYN和ACK,序列號(hào)設(shè)置為n,確認(rèn)序列號(hào)設(shè)置為m+1。發(fā)送者在收到這個(gè)報(bào)文后,就可以進(jìn)行TCP數(shù)據(jù)發(fā)送,于是,它又向接收者發(fā)送一個(gè)ACK段,表示雙方的連接已經(jīng)建立。在完成握手之后,就開始正式的數(shù)據(jù)傳輸。上面握手段中的序列號(hào)都是隨機(jī)產(chǎn)生的。一個(gè)正常的TCP連接過程如圖2-5所示。[9]圖2-5:TCP建立連接的三次握手 TCP用三個(gè)報(bào)文建立一個(gè)鏈接,而終止連接時(shí)需要四個(gè)報(bào)文。原因在于被動(dòng)關(guān)閉鏈接一方需要關(guān)閉處理時(shí)間,因此ACK和FIN不能同時(shí)發(fā)給主動(dòng)關(guān)閉一方[7]。如圖2-6所以。圖2-6:TCP終止連接的四次握手TCP掃描技術(shù)主要有TCPFIN掃描、TCPACK掃描、TCPSYN掃描。TCPFIN掃描:TCPFIN掃描使用的是FIN標(biāo)志,如果發(fā)送一個(gè)FIN標(biāo)志的TCP報(bào)文到一個(gè)關(guān)閉的端口,那么應(yīng)該返回一個(gè)RST報(bào)文,如果發(fā)送到一個(gè)開放的端口,那么端口可能沒有任何反應(yīng)。如果收到ICMP端口不可達(dá)錯(cuò)誤數(shù)據(jù)包,則不能確認(rèn)是否開放或者關(guān)閉,稱為狀態(tài)未知端口。[8]TCPFIN掃描的過程如圖2-7所示。圖2-7:TCPFIN掃描過程構(gòu)造含有FIN標(biāo)志的TCP數(shù)據(jù)包到目標(biāo)主機(jī)B的某一個(gè)端口,如果返回含有RST的TCP報(bào)文,那么表示端口關(guān)閉,如果沒有任何反應(yīng),則有可能表示端口打開,如果產(chǎn)生ICMP差錯(cuò)報(bào)文,則端口的狀態(tài)是未知。由于網(wǎng)絡(luò)環(huán)境的復(fù)雜性,或者由于有防火墻或存在其他網(wǎng)絡(luò)過濾設(shè)備,阻礙了正常的數(shù)據(jù)流程,TCPFIN掃描將無(wú)法明確判斷端口是否打開。另外,對(duì)Windows系統(tǒng)而言,TCPFIN掃描是無(wú)效的。TCPACK掃描:TCPACK掃描是利用標(biāo)志位ACK,而ACK標(biāo)志在TCP協(xié)議中表示確認(rèn)序號(hào)有效,它表示確認(rèn)一個(gè)正常的TCP連接。但是在TCPACK掃描中沒有進(jìn)行正常的TCP連接過程,實(shí)際上是沒有真正的TCP連接。使用TCPACK掃描不能夠確定端口的關(guān)閉或者開放,因?yàn)楫?dāng)發(fā)送給對(duì)方一個(gè)含有ACK表示的TCP報(bào)文的時(shí)候,都返回含有RST標(biāo)志的報(bào)文,無(wú)論端口是開放或者關(guān)閉。所以,不能使用TCPACK掃描來確定端口是否開放或者關(guān)閉。但是可以利用它來掃描防火墻的配置,用它來發(fā)現(xiàn)防火墻規(guī)則,確定它們是有狀態(tài)的還是無(wú)狀態(tài)的,哪些端口是被過濾的。[8]TCPSYN掃描:TCPSYN掃描是一個(gè)半開放掃描形式,它利用了TCP三次握手中的一個(gè)步驟,也就是傳送SYN標(biāo)志這個(gè)步驟,其他的后續(xù)步驟沒有發(fā)生。而SYN標(biāo)志在TCP協(xié)議中表示發(fā)起一個(gè)新的連接,但如果只是發(fā)送了一個(gè)SYN標(biāo)志,后續(xù)的三次握手過程沒有。[8]不同的端口狀態(tài)會(huì)返回不同的響應(yīng)數(shù)據(jù)包,如果是開放的端口,那么會(huì)返回一個(gè)含有SYN+ACK標(biāo)志的TCP報(bào)文,如果端口是關(guān)閉的,那么會(huì)反饋一個(gè)含有RST標(biāo)志的報(bào)文。其過程如圖2-8所示。圖2-8:TCPSYN掃描過程主機(jī)A掃描主機(jī)B,構(gòu)造一個(gè)帶有ACK標(biāo)志的TCP數(shù)據(jù)包發(fā)送給主機(jī)B的一個(gè)端口,如果對(duì)方返回一個(gè)帶有SYN和ACK的TCP數(shù)據(jù)包,那么就表示端口是開放的,如果返回一個(gè)帶有RST的TCP數(shù)據(jù)包,那么就表示端口關(guān)閉。開發(fā)環(huán)境簡(jiǎn)介操作系統(tǒng):Windows2000Professional開發(fā)工具:MicrosoftVisualC++;數(shù)據(jù)庫(kù):MySQL5.0.18本系統(tǒng)涉及到原始數(shù)據(jù)包的構(gòu)造和發(fā)送,Windows2000系統(tǒng)提供了對(duì)原始數(shù)據(jù)包的有效支持,因此本系統(tǒng)選擇了Windows2000Professional操作系統(tǒng)作為開發(fā)平臺(tái)。本系統(tǒng)后臺(tái)部分主要使用C語(yǔ)言開發(fā),在Windows平臺(tái)下,VC++是最強(qiáng)大的C語(yǔ)言開發(fā)工具,而前臺(tái)部分則是使用java開發(fā)的,因此選用了Eclipse。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由于其體積小、速度快、成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。作為試驗(yàn)性項(xiàng)目,為了降低開發(fā)成本,加快開發(fā)靈活性與開發(fā)速度,本系統(tǒng)采用MySQL最新版5.0.18版本。本章小結(jié)本章第一節(jié)介紹了有關(guān)漏洞的相關(guān)知識(shí),漏洞的概念、形成的原因等,并詳細(xì)介紹了CGI漏洞、SMTP漏洞、FTP漏洞、DOS漏洞及Finger漏洞。第二節(jié)分析了漏洞掃描的一系列相關(guān)技術(shù)。最后在第三節(jié)簡(jiǎn)要介紹了一下系統(tǒng)的開發(fā)環(huán)境。第三章系統(tǒng)分析與設(shè)計(jì)通過前面對(duì)漏洞相關(guān)概念及技術(shù)的討論,本章設(shè)計(jì)了一個(gè)基于網(wǎng)絡(luò)的漏洞掃描系統(tǒng),明確了設(shè)計(jì)目標(biāo),給出了整體架構(gòu)和系統(tǒng)流程,并簡(jiǎn)單介紹了各個(gè)模塊的設(shè)計(jì)及數(shù)據(jù)庫(kù)的設(shè)計(jì)。整體設(shè)計(jì)3.1.1設(shè)計(jì)目標(biāo)此系統(tǒng)作為一個(gè)網(wǎng)絡(luò)安全體系的評(píng)估工具,應(yīng)為網(wǎng)絡(luò)管理員、普通個(gè)人等不同用戶提供友好的操作界面,應(yīng)具備快速、準(zhǔn)確的掃描能力。具體如下:(1)針對(duì)普通非專業(yè)用戶,提供圖形化界面,友好的操作方式。(2)針對(duì)專業(yè)用戶,如網(wǎng)絡(luò)管理員,提供命令行操作方式,使之能夠方便地使用各個(gè)模塊的功能。(3)接受用戶的掃描任務(wù),允許用戶設(shè)置掃描參數(shù),如IP地址段,端口號(hào)等。(4)在一定時(shí)間內(nèi)完成掃描任務(wù)并將生成的報(bào)告整理成報(bào)告文檔提交給用戶。3.1.2系統(tǒng)結(jié)構(gòu)系統(tǒng)的功能性模塊主要有遠(yuǎn)程主機(jī)檢測(cè)模塊、端口掃描模塊、操作系統(tǒng)嗅探模塊、漏洞掃描模塊。功能性模塊將在下文中詳細(xì)介紹。用戶配置模塊是系統(tǒng)為用戶提供的操作界面;配置文件是系統(tǒng)運(yùn)行時(shí)需要讀取的一些參數(shù),比如默認(rèn)的端口列表等。多線程處理則應(yīng)用于各模塊當(dāng)中。掃描過程中得出的結(jié)果將會(huì)被存放在臨時(shí)文件中,待掃描結(jié)束后,系統(tǒng)將會(huì)整理這些結(jié)果并生成一份掃描報(bào)告提供給用戶。如圖3-1所示。遠(yuǎn)程主機(jī)探測(cè)模塊接收用戶設(shè)置的IP段參數(shù),該模塊將會(huì)對(duì)該IP段中的遠(yuǎn)程主機(jī)進(jìn)行逐一掃描,以確定主機(jī)是否處于活躍狀態(tài)。如果處于活躍狀態(tài),則調(diào)用端口掃描模塊對(duì)目標(biāo)主機(jī)進(jìn)行端口掃描,否則跳過該IP。端口掃描模塊在接到掃描任務(wù)后,立刻讀取默認(rèn)的或者是用戶設(shè)置的端口掃描參數(shù),然后開辟端口掃描線程對(duì)遠(yuǎn)程主機(jī)端口進(jìn)行一一掃描。在端口掃描過程中,如果發(fā)現(xiàn)開放的服務(wù)端口有對(duì)應(yīng)于該服務(wù)的漏洞掃描模塊,則調(diào)用相應(yīng)的漏洞掃描模塊進(jìn)行漏洞掃描。否則跳過該端口。漏洞掃描模塊在接到掃描任務(wù)后,則開辟漏洞掃描線程執(zhí)行漏洞掃描任務(wù)。至此,掃描任務(wù)完成。如圖3-2所示。圖3-1:系統(tǒng)整體模式圖 圖3-2:系統(tǒng)流程圖3.1.3數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)的數(shù)據(jù)庫(kù)用來存放掃描時(shí)所用到的數(shù)據(jù)信息,系統(tǒng)中各模塊獨(dú)立性較強(qiáng),因此本數(shù)據(jù)庫(kù)中的各表之間的獨(dú)立性也很高,表與表之間聯(lián)系很小。系統(tǒng)中主要使用表有存放操作系統(tǒng)版本特征信息的OSFeature表,存放CGI漏洞特征字符串信息的CGI表以及FTP弱口令探測(cè)用的賬戶密碼信息。 OSFeature表用來記錄操作系統(tǒng)版本特征信息,這些信息主要記錄了在使用棧指紋技術(shù)檢測(cè)目標(biāo)主機(jī)時(shí)的應(yīng)答數(shù)據(jù)特征。比如TTL是目標(biāo)主機(jī)數(shù)據(jù)包的生存時(shí)間值,IP_Len_Vary是目標(biāo)主機(jī)響應(yīng)數(shù)據(jù)包中IP頭部長(zhǎng)度的變化。見表。表:OSFeature屬性表字段含義字段名字段類型長(zhǎng)度備注IDIDINT主鍵生存時(shí)間TTLTINYINTIP長(zhǎng)度變化IP_Len_Vary;INT響應(yīng)類型Echo_TosTINYINTDF位IP_DFTINYINT響應(yīng)代碼Echo_Code;TINYINT子網(wǎng)掩碼Sub_MaskLONG校驗(yàn)值IP_ChecksumINT操作系統(tǒng)OSTypeVARCHAR128 CGI表記錄了CGI漏洞的特征信息,漏洞特征是掃描時(shí)所用到的特征字符串,漏洞描述是對(duì)該漏洞的解釋信息,漏洞等級(jí)是該漏洞的危險(xiǎn)指數(shù),分為1~9共9個(gè)級(jí)別,級(jí)別越高,危險(xiǎn)指數(shù)越高。見表。表:CGI屬性表字段含義字段名字段類型長(zhǎng)度備注漏洞IDIDINT主鍵漏洞名稱TITLEVARCHAR128漏洞特征FEATUREVARCHAR512漏洞描述DESCRIPTIONVARCHAR512漏洞等級(jí)DANGEROUSNESSTINYINT20解決方案SOLUTIONVARCHAR512 FTP弱口令賬戶密碼表相當(dāng)于暴力破解密碼時(shí)用的密碼字典,不同的是這里只收集了一些網(wǎng)絡(luò)上最常用的弱口令密碼賬戶。見表。表:FTP弱口令賬戶密碼屬性表字段含義字段名字段類型長(zhǎng)度備注用戶IDIDINT主鍵賬戶名USERNAMEVARCHAR20賬戶密碼PASSWORDVARCHAR20功能模塊設(shè)計(jì)3.2.1存活主機(jī)檢測(cè)在TCP/IP協(xié)議體系中,負(fù)責(zé)將數(shù)據(jù)包發(fā)送到指定目的地的是IP協(xié)議,網(wǎng)關(guān)必須自己處理數(shù)據(jù)報(bào)傳輸工作,如果目的IP無(wú)效,數(shù)據(jù)包將無(wú)法送達(dá)目的地,但是這并不代表遠(yuǎn)程主機(jī)不在線,因?yàn)閿?shù)據(jù)傳輸是不可靠的,很多因素都可以造成數(shù)據(jù)包的丟失或出現(xiàn)差錯(cuò)。IP協(xié)議自身沒有內(nèi)在的機(jī)制來獲取并處理這些差錯(cuò),為了處理錯(cuò)誤信息,ICP/IP設(shè)計(jì)了ICMP協(xié)議,它是一種差錯(cuò)和控制報(bào)文協(xié)議,這也正是我們要利用的地方。[11] 利用ICMP回顯請(qǐng)求掃描遠(yuǎn)程主機(jī)的過程如圖3-3所示。圖3-3:利用ICMP請(qǐng)求/應(yīng)答數(shù)據(jù)報(bào)檢測(cè)主機(jī)狀態(tài)本系統(tǒng)中存活主機(jī)檢測(cè)主要使用了ICMP回顯請(qǐng)求與應(yīng)答報(bào)文。在主機(jī)沒有被設(shè)置為過濾ICMP數(shù)據(jù)包的情況下,我們可以向目標(biāo)IP發(fā)送一個(gè)ICMP回顯請(qǐng)求數(shù)據(jù)包,如果目標(biāo)主機(jī)收到該信息,那么它就會(huì)發(fā)送一個(gè)ICMP相應(yīng)數(shù)據(jù)包給發(fā)送方主機(jī),發(fā)送方拆包并檢測(cè)接受到的數(shù)據(jù),有三個(gè)條件可以說明目標(biāo)主機(jī)是存活的:一是接收到的數(shù)據(jù)包IP地址是發(fā)送方所發(fā)送的目標(biāo)IP地址;二是type屬性為0,也就是說該數(shù)據(jù)包的確是回顯請(qǐng)求應(yīng)答數(shù)據(jù)包;三是標(biāo)識(shí)符與所發(fā)送數(shù)據(jù)包的標(biāo)識(shí)符一致。這樣我們就能夠確定目標(biāo)主機(jī)在線,其余所有情況都表明目標(biāo)主機(jī)不在線。3.2.2操作系統(tǒng)嗅探系統(tǒng)主要使用ICMP棧指紋識(shí)別的方式來探測(cè)目標(biāo)主機(jī)操作系統(tǒng)類型及版本號(hào)。其方法是向目標(biāo)主機(jī)發(fā)送一組ICMP數(shù)據(jù)包,根據(jù)目標(biāo)主機(jī)對(duì)數(shù)據(jù)包響應(yīng)的差異來區(qū)分不同的操作系統(tǒng)。利用ICMP探測(cè)一個(gè)系統(tǒng)的操作系統(tǒng)版本類型最多需要發(fā)送四個(gè)ICMP數(shù)據(jù)包,即:ICMP回顯請(qǐng)求數(shù)據(jù)包、ICMP時(shí)間戳請(qǐng)求數(shù)據(jù)包、ICMP端口不可達(dá)數(shù)據(jù)包和ICMP地址掩碼請(qǐng)求數(shù)據(jù)包。圖3-4:利用ICMP數(shù)據(jù)報(bào)收集目標(biāo)主機(jī)信息 如圖3-4所示,掃描引擎向目標(biāo)主機(jī)發(fā)送一系列ICMP數(shù)據(jù)包進(jìn)行探測(cè),在完成響應(yīng)數(shù)據(jù)包信息的手機(jī)后,將所得到的特征存入一個(gè)數(shù)據(jù)結(jié)構(gòu)中。掃描引擎會(huì)讀取數(shù)據(jù)庫(kù)中記錄的操作系統(tǒng)特征信息與數(shù)據(jù)庫(kù)中所記錄的各種操作系統(tǒng)的版本特征信息相匹配,如果匹配成功,則認(rèn)為該條記錄所描述的的操作系統(tǒng)版本是目標(biāo)系統(tǒng)所使用的操作系統(tǒng)版本。3.2.3端口掃描端口掃描可以有多種方法,本系統(tǒng)主要采用半開放掃描,即TCPSYN掃描。TCPSYN掃描應(yīng)用非常廣泛,是最好的TCP掃描形式,其速度快,效率高,而且比較安全隱蔽。該掃描方法的步驟如下:(1)建立套接字(2)構(gòu)造TCP數(shù)據(jù)報(bào),將TCP首部中的標(biāo)志位設(shè)為SYN,端口設(shè)置為想要探測(cè)的端口。(3)發(fā)送步驟2種構(gòu)造的數(shù)據(jù)報(bào)(4)接收目標(biāo)主機(jī)響應(yīng)的數(shù)據(jù)報(bào),對(duì)其拆包,并進(jìn)行過濾,找到針對(duì)所發(fā)送數(shù)據(jù)報(bào)而響應(yīng)的數(shù)據(jù)報(bào)。(5)檢查并分析該數(shù)據(jù),如果返回值是SYN/ACK,則說明目標(biāo)端口是打開的,否則該端口關(guān)閉。這樣,我們就完成了對(duì)目標(biāo)主機(jī)特定端口狀態(tài)的掃描。3.2.4漏洞掃描在收集到目標(biāo)主機(jī)的操作系統(tǒng)、開放端口等信息之后,我們就可以針對(duì)端口服務(wù)進(jìn)行相關(guān)的漏洞掃描了。不同的服務(wù)所對(duì)應(yīng)的漏洞種類也不盡相同,但無(wú)論何種漏洞,都可以采用模擬攻擊的方法進(jìn)行探測(cè),即向目標(biāo)主機(jī)的目標(biāo)端口發(fā)送一組精心構(gòu)造的數(shù)據(jù)報(bào),檢測(cè)目標(biāo)主機(jī)的反應(yīng)情況并分析結(jié)果。漏洞掃描的流程如圖3-5所示。圖3-5:漏洞掃描示意圖以下簡(jiǎn)要分析幾種常見的漏洞掃描設(shè)計(jì)。CGI漏洞掃描的流程:[12](1)建立套接字,并連接到遠(yuǎn)程主機(jī)。(2)從數(shù)據(jù)庫(kù)中讀取CGI字符串并構(gòu)造數(shù)據(jù)包發(fā)送至遠(yuǎn)程主機(jī)(3)捕獲遠(yuǎn)程主機(jī)的響應(yīng)數(shù)據(jù)包(4)對(duì)捕獲到的數(shù)據(jù)包拆包并檢查是否和關(guān)鍵字匹配,如果匹配,則說明存在漏洞,否則不存在(5)返回步驟2,繼續(xù)掃描下一個(gè)CGI漏洞。FTP弱口令漏洞掃描:[12][13]FTP弱口令是指FTP服務(wù)器是否存在匿名用戶或過于簡(jiǎn)單的用戶名和密碼。其掃描策略是首先探測(cè)是否存在匿名用戶,其次是用常見的用戶名和密碼嘗試登陸,如果登陸成功,則存在弱口令漏洞。毫無(wú)疑問,探測(cè)的準(zhǔn)確率取決于探測(cè)所用的用戶名和密碼庫(kù),也稱為密碼字典。本系統(tǒng)收集了網(wǎng)絡(luò)上使用概率最高的一部分用戶名和密碼,并存儲(chǔ)到數(shù)據(jù)庫(kù)中供掃描程序讀取。系統(tǒng)首先驗(yàn)證是否有匿名賬戶,具體做法是向服務(wù)器發(fā)送“USERanonymous\r\n”字符串,如果服務(wù)器響應(yīng)代碼包含“331”說明需要密碼,這說明不存在匿名賬戶,否則說明存在。接下來掃描引擎從數(shù)據(jù)庫(kù)中加載常用用戶名和密碼,逐個(gè)對(duì)服務(wù)器進(jìn)行嘗試登陸,期間如果有登陸成功的,則說明存在FTP弱口令漏洞。SMTP漏洞掃描:SMTP協(xié)議的設(shè)計(jì)缺陷使攻擊者可以使用RCPT、VRFY、EXPN等命令獲取到服務(wù)器上的用戶名列表。 本系統(tǒng)通過發(fā)送特定的SMTP命令和接收目標(biāo)主機(jī)SMTP服務(wù)器響應(yīng)的應(yīng)答數(shù)據(jù)來完成的。首先發(fā)送HELD命令,表示進(jìn)入到對(duì)方的郵件服務(wù)系統(tǒng),然后輸入向郵件服務(wù)系統(tǒng)提供發(fā)件人信箱,服務(wù)器返回“250OK”,這時(shí)候用RCPT命令向服務(wù)器提供目標(biāo)信箱,服務(wù)器會(huì)檢查是否有該用戶存在。如果用戶存在,則返回“250OK”表示通過,否則將提示“550”錯(cuò)誤信息。這樣攻擊者就可以通過RCPT來猜測(cè)服務(wù)器上用戶名列表[14]。本章小結(jié)本章主要介紹了系統(tǒng)的整體設(shè)計(jì)方案和各個(gè)功能模塊的設(shè)計(jì)。系統(tǒng)共包括五個(gè)模塊:用戶配置模塊,遠(yuǎn)程主機(jī)檢測(cè)模塊,操作系統(tǒng)嗅探模塊,端口掃描模塊及漏洞掃描模塊。用戶配置模塊在界面程序中實(shí)現(xiàn),允許用戶對(duì)IP地址段,掃描端口及漏洞種類等參數(shù)進(jìn)行設(shè)置;遠(yuǎn)程主機(jī)檢測(cè)模塊根據(jù)用戶設(shè)定的IP段對(duì)該段內(nèi)的主機(jī)逐一進(jìn)行檢測(cè),判斷主機(jī)的在線情況;操作系統(tǒng)嗅探模塊則針對(duì)存活的主機(jī)進(jìn)行操作系統(tǒng)版本的檢測(cè);端口探測(cè)模塊允許用戶對(duì)設(shè)定的端口進(jìn)行掃描,判斷端口的開放情況;漏洞掃描模塊則針對(duì)用戶選中的漏洞類型對(duì)遠(yuǎn)程主機(jī)進(jìn)行漏洞掃描。各個(gè)模塊的功能是相互獨(dú)立的,但模塊間存在著一定的依賴關(guān)系。各功能模塊的運(yùn)行需要來自界面的參數(shù)配置,而漏洞掃描又需要得到遠(yuǎn)程主機(jī)的在線情況,服務(wù)端口開放情況和操作系統(tǒng)版本等信息。第四章系統(tǒng)實(shí)現(xiàn)根據(jù)第三章的設(shè)計(jì)及各個(gè)功能模塊的分析,本章將對(duì)系統(tǒng)中的各個(gè)功能模塊的實(shí)現(xiàn)情況作出較為詳細(xì)的介紹。在每個(gè)模塊的實(shí)現(xiàn)中,本文將給出程序設(shè)計(jì)流程及相關(guān)解釋,比較關(guān)鍵的部分本文將給出部分核心代碼。存活主機(jī)檢測(cè)模塊的實(shí)現(xiàn)本模塊使用了ICMP的回顯請(qǐng)求和應(yīng)答報(bào)文來實(shí)現(xiàn)。系統(tǒng)首先初始化Winsock環(huán)境,然后創(chuàng)建套接字并設(shè)置超時(shí),接下來構(gòu)造ICMP回顯請(qǐng)求數(shù)據(jù)包并發(fā)送。在接收到主機(jī)返回的數(shù)據(jù)包時(shí),必須對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行正確分析,把指針定位到ICMP報(bào)文頭部,檢查類型字段,此字段應(yīng)該為0,然后檢查標(biāo)識(shí)符,該字段應(yīng)該與所發(fā)送的ICMP數(shù)據(jù)包中的標(biāo)識(shí)符一致。如果是這樣,說明接收到的數(shù)據(jù)包的確是遠(yuǎn)程主機(jī)所發(fā)回的數(shù)據(jù)包。否則,說明遠(yuǎn)程主機(jī)不在線[13]。程序流程如圖4-1所示。圖4-1:主機(jī)檢測(cè)流程圖該部分核心代碼:.......pRst->MoveNext();}.........端口掃描模塊實(shí)現(xiàn)本模塊利用TCPSYN掃描技術(shù),只執(zhí)行了TCP連接中三次握手的第一個(gè)步驟,也就是只向目標(biāo)主機(jī)發(fā)送SYN數(shù)據(jù)包,表示要建立一個(gè)新的連接。在目標(biāo)端口閉合和開放兩種不同的狀態(tài)下,會(huì)返回不同的響應(yīng)數(shù)據(jù)包。如果端口是開放的,則會(huì)返回一個(gè)SYN+ACK標(biāo)志的TCP報(bào)文,如果端口是關(guān)閉的,則會(huì)返回一個(gè)含有RST標(biāo)志的報(bào)文。該部分流程如圖4-3所示: 圖4-3:端口掃描流程圖該部分核心代碼:0f....SMTP漏洞:SMTP掃描中要用到一些常用的SMTP命令,表是常見的SMTP命令列表。表:常見SMTP命令SMTP命令命令說明HELLO(HELO)用于向接收SMTP確認(rèn)發(fā)送SMTP。MAIL用于開始將郵件發(fā)送到一個(gè)或多個(gè)郵箱中。RECIPIENT用于確定郵件內(nèi)容的唯一接收者;多個(gè)接收者將由多個(gè)此命令指定。DATA接收SMTP將把其后的行為看做郵件數(shù)據(jù)處理。SEND此命令用于開始一個(gè)發(fā)送命令,將郵件發(fā)送到一個(gè)或多個(gè)終端上。RESET此命令指示當(dāng)送郵件操作將被放棄。VERIFY此命令要求接收者確認(rèn)參數(shù)是一個(gè)用戶。EXPAND(EXPN)此命令要求接收者確認(rèn)參數(shù)指定了一個(gè)郵件發(fā)送列表,如果是一個(gè)郵件發(fā)送列表,就返回表中的成員。TURN此命令指定接收方要么發(fā)送OK應(yīng)答并改變角色為發(fā)送SMTP,要么發(fā)送拒絕信息并保持自己的角色。QUIT此命令指示接收方必須發(fā)送OK應(yīng)答然后關(guān)閉傳送信道。常見的SMTP應(yīng)答碼及其含義211:系統(tǒng)狀態(tài)或系統(tǒng)幫助響應(yīng)250:要求的郵件操作完成251:用戶非本地,將轉(zhuǎn)發(fā)向<forward-path>550:要求的郵件操作未完成,郵箱不可用551:用戶非本地,請(qǐng)嘗試<forward-path>553:郵箱名不可用,要求的操作未執(zhí)行554:操作失敗SMTP服務(wù)在RFC中被詳細(xì)的定義(RFC821,RFC1425和RFC1985),但是在具體實(shí)現(xiàn)中各個(gè)軟件開發(fā)商并沒有很好的遵循RFC的規(guī)定,因此可以通過實(shí)現(xiàn)上的細(xì)小差異來進(jìn)行探測(cè)活動(dòng)。通過發(fā)送特定的、非標(biāo)準(zhǔn)的數(shù)據(jù)包來獲得指紋信息,可以進(jìn)而判斷出目標(biāo)主機(jī)所使用的軟件版本信息。采用錯(cuò)誤信息來進(jìn)行辨別的方法有如下幾種。(1)發(fā)送沒有“HELO”命令的郵件:一些服務(wù)器允許客戶這樣做,而且會(huì)發(fā)送一個(gè)220的錯(cuò)誤代碼。如果服務(wù)器拒絕就會(huì)發(fā)送一個(gè)501或503的錯(cuò)誤代碼。(2)發(fā)送一個(gè)沒有域名的“HELO”信息,在RFC中沒有強(qiáng)制需要這個(gè)信息,但是一些服務(wù)器會(huì)接受,而另一些會(huì)拒絕。(3)使用一個(gè)簡(jiǎn)單的“test”:這通常被本地用戶使用。(4)利用可能再某些服務(wù)器上成功實(shí)現(xiàn)的命令:如HELP命令、VRFY命令、EXPN命令、TURN命令、SOML命令、SAML命令、NOOP命令和EHLO命令。本章小結(jié) 本章給出了系統(tǒng)各個(gè)功能模塊的實(shí)現(xiàn)過程。第一節(jié)講述了利用ICMP回顯請(qǐng)求判斷遠(yuǎn)程主機(jī)在線情況的流程和實(shí)現(xiàn);第二節(jié)講述了利用棧指紋識(shí)別技術(shù)來探測(cè)遠(yuǎn)程主機(jī)所使用操作系統(tǒng)版本的過程;第三節(jié)講述了利用TCPSYN掃描技術(shù)來掃描目標(biāo)主機(jī)TCP端口的流程和實(shí)現(xiàn);第四節(jié)則講述了CGI漏洞、FTP漏洞和SM
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年車輛以租代購(gòu)產(chǎn)權(quán)轉(zhuǎn)移協(xié)議版B版
- 2024版地下室防水施工協(xié)議3篇
- 專業(yè)噴漆團(tuán)隊(duì)修理廠承包合同書版B版
- 2025年度網(wǎng)絡(luò)安全防護(hù)合同范本:信息安全合作協(xié)議3篇
- 2024廢鋼居間合同范本
- 2024重慶市民離婚協(xié)商一致合同樣本版B版
- 行車?yán)碚撝R(shí)培訓(xùn)課件
- 2024年高速公路交通信號(hào)燈施工合同
- 熟食類食品知識(shí)培訓(xùn)課件
- 鋁擠壓修模知識(shí)培訓(xùn)課件
- 公路自然災(zāi)害防治對(duì)策課件
- (新版教材)蘇教版二年級(jí)下冊(cè)科學(xué)全冊(cè)教案(教學(xué)設(shè)計(jì))
- 61850基礎(chǔ)技術(shù)介紹0001
- 電鏡基本知識(shí)培訓(xùn)
- 耳鳴中醫(yī)臨床路徑
- 圍堰高噴防滲墻工程監(jiān)理實(shí)施細(xì)則
- (精心整理)系動(dòng)詞練習(xí)題
- 分子生物學(xué)在動(dòng)物遺傳育種方面的應(yīng)用
- 婚戀觀教育--保持軍人本色樹立正確婚戀觀
- 體彩排列五歷史數(shù)據(jù)
- 秦皇島326簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論