




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
基于GUI網(wǎng)絡(luò)滲透偵察工具設(shè)計與實踐摘要最近幾年來,計算機網(wǎng)絡(luò)的發(fā)展從未停下腳步,并且速度日益增快。為了應(yīng)付日益增長的網(wǎng)絡(luò)需求及網(wǎng)絡(luò)流量,特別是多媒體流量的快速增長,網(wǎng)絡(luò)信息技術(shù)不斷產(chǎn)生,人們的生活開始變的更加離不開網(wǎng)絡(luò)。然而網(wǎng)絡(luò)給人們帶來的幫助的同時也帶來了問題。長久以來,網(wǎng)絡(luò)攻擊的數(shù)量在不斷增長,網(wǎng)絡(luò)安全事件在不斷上演,網(wǎng)絡(luò)攻防形勢日益嚴(yán)峻。網(wǎng)絡(luò)偵察也成為一種新型的情報信息獲取方式。其作為網(wǎng)絡(luò)攻擊的第一個階段,對于幫助黑客識別攻擊系統(tǒng)信息,選擇適合的攻擊方式起到了重要的作用。因此有一個便于使用的網(wǎng)絡(luò)滲透信息偵察工具至關(guān)重要的。此應(yīng)用是結(jié)合當(dāng)下網(wǎng)絡(luò)發(fā)展的實際情況,以滿足實際應(yīng)用為開發(fā)目的,參考國外主流的網(wǎng)絡(luò)滲透偵察工具進行實際需求分析,基于python使用pyqt5開發(fā)出來的網(wǎng)絡(luò)滲透偵察工具。本文詳細(xì)介紹了網(wǎng)絡(luò)偵察工具的系統(tǒng)概況,開發(fā)背景,網(wǎng)絡(luò)偵察的研究現(xiàn)狀、以及此系統(tǒng)各個模塊的分析與實現(xiàn)。關(guān)鍵詞:web安全、網(wǎng)絡(luò)攻防、網(wǎng)絡(luò)偵察、圖形用戶界面DesignandPracticeofGUI-basedNetworkPenetrationReconnaissanceToolAbstractInrecentyears,thedevelopmentofnetworksisconstantlyevolving.Inordertocopewiththeincreasingnetworkdemandandnetworktraffic,especiallytherapidgrowthofmultimediatraffic,networkinformationtechnologyisconstantlybeingproduced.TheInternethasdevelopedintoaveryimportantpartofpeople'slives.Butthebenefitsbroughtbythedevelopmentofthenetworkhavealsobroughtalotofproblems.Foralongtime,thenumberofcyberattackshasbeenincreasing,cybersecurityincidentsarebeingstaged,andthesituationofcyberattacksanddefensesisbecomingincreasinglygrim.Networkreconnaissancehasalsobecomeanewwayofacquiringintelligenceinformation.Asthefirststageofnetworkattack,itplaysavitalroleinhelpinghackerstoidentifyinformationandchooseasuitableattackmethod.Therefore,itisessentialtohaveaneasy-to-usenetworkpenetrationinformationreconnaissancetool.Thisapplicationiscombinedwiththeactualsituationofthecurrentnetworkdevelopmenttomeettheactualapplicationfordevelopmentpurposes.Refertothemainstreamforeignnetworkpenetrationreconnaissancetoolsforactualneedsanalysis,basedonpythonnetworkpenetrationreconnaissancetoolsdevelopedusingpyqt5.Thisarticleintroducesindetailthesystemoverviewofthenetworkreconnaissancetool,thedevelopmentbackground,thenetworkreconnaissanceresearchstatus,andtheanalysisandimplementationofeachmoduleofthissystem.Keywords:Websecurity,Networkattackanddefense,networkreconnaissance,GUI北京理工大學(xué)珠海學(xué)院2020屆本科生畢業(yè)設(shè)計目錄TOC\o"1-3"\h\u1前言 前言1.1設(shè)計背景1.1.1計算機網(wǎng)絡(luò)發(fā)展歷程在1980年之后,網(wǎng)絡(luò)開始走進一個全新的階段,各種各類技術(shù)開始和網(wǎng)絡(luò)結(jié)合,網(wǎng)絡(luò)可以提供的服務(wù)也越來越多,并且應(yīng)用范圍越來越廣。計算機網(wǎng)絡(luò)已經(jīng)覆蓋至全球各地,并且其觸手已經(jīng)伸向了越來越多的領(lǐng)域。網(wǎng)絡(luò)將成為國家的經(jīng)濟、政治和軍事等的重要支柱。各個國家都在加緊對于地域、國家乃至全球的網(wǎng)絡(luò)建設(shè)[1]。以此最終將會建成全球各地人人互通的大型互聯(lián)網(wǎng)絡(luò)。截至2018年,全球上網(wǎng)用戶高達(dá)44億人。1.1.2網(wǎng)絡(luò)偵察的前景網(wǎng)絡(luò)的普及應(yīng)用使得網(wǎng)絡(luò)偵查的作用日益突出。網(wǎng)絡(luò)偵察給黑客攻擊提供支持,甚至給軍事情報偵察開辟了新的領(lǐng)域。但是,隨之而來的是新的挑戰(zhàn)和新的要求。當(dāng)今世界是一個全球化信息化時代,網(wǎng)絡(luò)攻擊行為日益增加、信息化戰(zhàn)爭出現(xiàn)端倪[1]。因此,網(wǎng)絡(luò)滲透偵察逐漸開始顯露出其重要的地位和作用。1.1.3Gui的優(yōu)勢人機的交互告別了以前復(fù)雜麻煩的字符命令語言時期,目前正處于基于圖像用戶界面的新時期。圖像用戶界面(GUI)是當(dāng)下的一種主流的用戶界面,其被運用于各種系統(tǒng)中。其中,眾所周知的Windows系統(tǒng)就是基于圖形用戶界面。因其具有人機交互性、美觀性、實用性、技術(shù)性等的優(yōu)勢,因此廣受喜愛。目前流行的圖形化用戶界面的特點是以窗口界面為關(guān)鍵,通過鍵盤鼠標(biāo)等進行輸入,并且用戶通過點擊鼠標(biāo)即可完成大多數(shù)操作。這一種界面在人機交互的過程中主要是靠眼睛觀看和手動控制。因此具有極其強的便利性,對于用戶,特別是不懂計算機指令的用戶非常友好。1.2網(wǎng)絡(luò)滲透偵察的現(xiàn)狀及發(fā)展由于計算機的廣泛使用,計算機網(wǎng)絡(luò)上存在著大量的數(shù)據(jù),其具有極高的價值。并且網(wǎng)絡(luò)偵察頻繁應(yīng)用于軍事斗爭、政治斗爭等重要場合中,因此網(wǎng)絡(luò)偵察的作用在當(dāng)今時代下越發(fā)明顯。當(dāng)下,社會已經(jīng)進入信息化時代。我國當(dāng)前互聯(lián)網(wǎng)安全的顯示日益嚴(yán)峻,在網(wǎng)絡(luò)上存在著大量的個人信息及重要的數(shù)據(jù),一旦泄露后患無窮,同時我國部分主要的網(wǎng)絡(luò)遭受到大量的DDos攻擊。網(wǎng)絡(luò)的信息情報戰(zhàn)已經(jīng)成為當(dāng)前國際戰(zhàn)爭的一個主戰(zhàn)場。網(wǎng)絡(luò)偵察給當(dāng)下的情報收集工作提供了新鮮思路,注入新鮮力量。著眼未來,我們可以預(yù)見,網(wǎng)絡(luò)對于人們來說會越來越重要,同時網(wǎng)絡(luò)滲透偵察也會日漸重要。1.3系統(tǒng)的創(chuàng)新點1.3.1集成各工具的便捷性當(dāng)下要進行網(wǎng)絡(luò)的一些基本偵察,需要使用多個工具。如,要想對于某一主機進行注冊信息的查詢,則需要通過使用站長之家、中國萬網(wǎng)、阿里查詢等網(wǎng)址進行查詢,若這時還需要查詢網(wǎng)站的開放端口需要通過其他腳本工具進行查詢。這種工具間的切換會給用戶的網(wǎng)絡(luò)偵察工作帶來不必要的麻煩,浪費用戶的時間。因此本次設(shè)計的作品,集成了whois、端口掃描等多種功能模塊,使得用戶在一個工具中即可查詢到目標(biāo)主機的多種信息,大大縮短用戶的使用時間,給用戶的偵察工作提供便利。1.3.2交互式的應(yīng)用形式用戶在使用時無需掌握計算機的相關(guān)指令,無需考慮網(wǎng)絡(luò)滲透偵察的具體細(xì)節(jié)及方式。通過鍵盤輸入和鼠標(biāo)點擊的方式即可輕松的獲取到自己需要查詢的信息。同時該設(shè)計也對于每一項功能都進行了適當(dāng)?shù)恼f明,通過這種方式提高了用戶與程序之間的交互性,降低了用戶的使用門檻,使得程序更加便于使用。1.4系統(tǒng)應(yīng)用的意義1.4.1對用戶此項集成了多個網(wǎng)絡(luò)偵察常用的方法,對于用戶在進行一些網(wǎng)絡(luò)信息收集及網(wǎng)絡(luò)攻擊的過程中起到了一個偵察兵及情報員的作用。能夠幫助用戶了解到目標(biāo)網(wǎng)絡(luò)的網(wǎng)絡(luò)狀態(tài)、網(wǎng)絡(luò)地址、網(wǎng)絡(luò)關(guān)鍵結(jié)點、網(wǎng)絡(luò)聯(lián)系方式如電話、姓名、郵件、地理位置等等。通過這種方式可以給用戶在進行后續(xù)的操作時提供一些決策依據(jù),使得用戶的后續(xù)工作可以更加順利的進行。1.4.2對網(wǎng)絡(luò)滲透如同普通戰(zhàn)爭需要使用無人偵察機、偵察衛(wèi)星、偵察兵等手段進行信息偵察,以便于后續(xù)的軍事打擊行動順利展開一樣,信息化戰(zhàn)爭中,網(wǎng)絡(luò)滲透偵察是戰(zhàn)爭的第一步[2],其起著至關(guān)重要作用,使用者通過一定的網(wǎng)絡(luò)滲透偵察方式來進行主機的偵察及信息的收集,以便后續(xù)工作更好的展開。1.5本章小結(jié)對系統(tǒng)的設(shè)計背景及現(xiàn)狀進行了簡單的概述。并對系統(tǒng)中創(chuàng)新的點進行了初步介紹。系統(tǒng)本身的意義在于幫助用戶去簡化網(wǎng)絡(luò)偵察的操作,給用戶一個方便、快捷、功能較為齊全的網(wǎng)絡(luò)偵察工具,以此助力我國的網(wǎng)絡(luò)偵察事業(yè)的發(fā)展。
2相關(guān)技術(shù)概述2.1網(wǎng)絡(luò)偵察技術(shù)網(wǎng)絡(luò)偵察是使用相關(guān)技術(shù)手段,獲取對象計算機的相關(guān)信息。網(wǎng)絡(luò)偵察是一次完整的網(wǎng)絡(luò)攻擊的第一階段,為后續(xù)網(wǎng)絡(luò)攻擊的相關(guān)工作提供決策信息。其所獲情報越豐富則對后續(xù)工作幫助越大。通過對于前人經(jīng)驗的總結(jié),認(rèn)為一般需要偵察的信息有如下幾點[2]:對象網(wǎng)絡(luò)的IP地址、名字及域?qū)ο缶W(wǎng)絡(luò)的注冊信息,比如電話、姓名、郵件和位置等信息DNS服務(wù)器、郵件地址網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)滿足指定條件的設(shè)備一切與目標(biāo)主機有關(guān)系的其他信息網(wǎng)絡(luò)偵察的方式一般包括如下幾點:使用搜索引擎收集,通過搜索引擎全網(wǎng)快速檢索和定位信息。Whois查詢,查到目標(biāo)的注冊相關(guān)信息。DNS信息查詢,了解IP地址網(wǎng)址名稱的對應(yīng)情況。網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn),通過對于數(shù)據(jù)包所經(jīng)過的路徑了解目標(biāo)網(wǎng)絡(luò)的關(guān)鍵結(jié)點。利用社交網(wǎng)絡(luò)獲取信息,社交網(wǎng)絡(luò)存在著復(fù)雜并且龐大的信息,這些信息也是幫助了解目標(biāo)網(wǎng)絡(luò)的重要方式之一。2.2Python技術(shù)Python是一種程序設(shè)計語言,并且它在當(dāng)今時代逐漸變的非常流行。具有強的編譯性、解釋性、互動性[3]、其易讀、易維護,深受用戶的歡迎與喜愛。一開始,它僅僅是被拿來編寫一些自動化相關(guān)的腳本。但是,后來他的版本開始更新,功能也變得越來越多,所以它開始被用于開發(fā)一些規(guī)模比較大的項目。并且在當(dāng)今社會,其應(yīng)用領(lǐng)域越來越高。其具有非常多的優(yōu)勢。重要優(yōu)勢之一就是完全免費,使用者可以不花錢就在隨意一臺計算機上安裝使用Python和他提供的一些擴展庫。且其的拓展庫越來越豐富,根據(jù)這些庫可以完成許多的任務(wù)。2.3Pyqt5技術(shù)Python是現(xiàn)在很流行好用的一種程序設(shè)計語言,Qt則是一個很流行好用的開發(fā)庫,而pyqt則是二者的結(jié)合出來的一種產(chǎn)物[4]。其中pyqt5是一個python的模塊之一,是一種非常方便的插件。它一共擁有六百二十多個類,六千多個函數(shù)。是當(dāng)下比較流行的開發(fā)工具,其功能也非常強大,用其可以開發(fā)出美觀的界面。由于python是可以跨越不同的平臺之間的限制,pyqt5也支持跨越平臺,它可以運行在任何一個多人使用的系統(tǒng)中,比如有UNIX系統(tǒng),Windows系統(tǒng),MacOS系統(tǒng)。2.4QtDesigner設(shè)計工具在PyQt的UI界面有兩種方法實現(xiàn)[5]。一個是代碼,但是比較的麻煩,也不夠美觀。另一個則是QtDesigner,用戶可以直接使用它來設(shè)計界面。并且其界面的圖像視圖與業(yè)務(wù)邏輯相互之間互不干擾,使得開發(fā)更加便捷。QtDesigner中的使用方式非常的方便靈活,可以直接使用鼠標(biāo)來設(shè)置各類控件,并且設(shè)置完成后可以直接查看界面的整體效果。最終生成的UI文件也直接通過pyuic5工具轉(zhuǎn)換成PY文件。方便了程序開發(fā),幫助開發(fā)人員更好的進行開發(fā)。
2.5本章小結(jié)此章節(jié)對與此次設(shè)計中用到的基本技術(shù)做了大致的介紹,幫助閱讀者可以更好的了解此次系統(tǒng)的設(shè)計。
3系統(tǒng)需求分析及總體設(shè)計3.1系統(tǒng)需求需求分析是為了對目標(biāo)系統(tǒng)提出的完整的、明確的、清晰的、可行的需求以便開發(fā)。3.1.2確定軟件需求在經(jīng)過多方位的了解及咨詢,參考主流軟件(SamSpade)及網(wǎng)絡(luò)攻擊者的實際偵察經(jīng)驗。確定了此工具提供的服務(wù)有如下幾個:主機的狀態(tài)、IP地址、名字及域注冊信息,如電話、姓名、郵件和地理位置等信息DNS服務(wù)器地址網(wǎng)絡(luò)的路由查詢網(wǎng)絡(luò)開放端口3.1.3系統(tǒng)需求實現(xiàn)為了滿足以上需求,此系統(tǒng)提供了以下的幾個功能模塊:Ping模塊、DNS模塊、Whois模塊、Nslookup模塊、端口掃描模塊、Tracter模塊。具體流程如圖3.1所示。圖3.1程序運行具體流程圖3.2系統(tǒng)總體設(shè)計3.2.1用戶界面設(shè)計用戶界面設(shè)計基本規(guī)則:其一是界面具有一致性,要求界面中的控件的整體風(fēng)格相差不大,界面整體較為和諧。并且在多個界面設(shè)置有相似的界面外觀、布局以及相似的信息顯示(比如背景顏色,控件顏色等)[6]。這樣的界面會有比較高的一致性,用戶使用起來會更加舒適。因此,控件的顏色、字體字號,邊框設(shè)置,窗口背景顏色、布局方式和風(fēng)格、提示信息等都有一個比較統(tǒng)一的標(biāo)準(zhǔn)規(guī)則,做到真正具有一致性。其二是界面要簡潔易用,不要過于復(fù)雜花俏。太花哨的界面會影響用戶對與程序的使用,同時也可能會使得工具的運行變慢。因此界面設(shè)計的簡潔明了非常重要。特別是對于攻防偵察軟件來說,其界面不能太過于吸引眼球,也不能太富貴華麗。因為太過華麗復(fù)雜會比較容易使人產(chǎn)生視覺上的疲勞及審美疲勞,讓人心浮氣躁。同時使用者的注意力有可能會被復(fù)雜的界面分散,從而影響工具的使用使其失去其原本的味道。因此,界面設(shè)計需合理的布局和設(shè)計,顏色相似[6],簡潔明了,將軟件的性能作為重點進行突出,切勿喧賓奪主。用戶界面始終是次要的,起錦上添花的作用。最重要的應(yīng)該是讓軟件界面友好實用,這樣這樣用戶才會更加喜愛和接受。其三是要使得用戶界面整體協(xié)調(diào)。比如控件位置要更加的合理協(xié)調(diào),便于用戶的瀏覽和使用。不能出現(xiàn)“前重后輕、右寬左窄”的不協(xié)調(diào)的現(xiàn)象。當(dāng)然最重要的是關(guān)鍵的控件放在明顯位置,突出重要的控件讓用戶一目了然,比如此偵察工具中的輸入框和偵察得到的信息。根據(jù)需求將此次的系統(tǒng)用戶界面分為了四個界面,一個主要的用戶界面及三個次要的界面。在主界面中,需要用戶輸入需要查詢的主機名,及選擇需要查詢的內(nèi)容,并且用較大的板塊輸出查詢到的內(nèi)容。在“關(guān)于”界面中,需要有應(yīng)用的相關(guān)信息及應(yīng)用作者的相關(guān)信息。在“幫助”界面中需要有一些幫助用戶具體了解如何開始使用系統(tǒng)的信息。在“使用說明”界面中則需要有各個模塊功能可以為用戶提供的具體幫助的內(nèi)容及對于查詢到的結(jié)果進行分析的信息,以幫助用戶更好的根據(jù)查詢到的信息展開后續(xù)工作。
根據(jù)對上述的分析內(nèi)容,繪制出了用戶界面草圖,如圖3.2所示。(a)(b)(c)(d)圖3.2使用說明界面草圖3.2.2程序運行流程設(shè)計從需求中可以看出,我們需要進行界面的繪制,數(shù)據(jù)內(nèi)容查詢,將查詢的內(nèi)容返回至主界面進行顯示,各個操作流程如圖3.3所示圖3.3操作流程圖3.3本章小結(jié)在此章節(jié)中分析了工具的基本需求,以確定系統(tǒng)需要提供的服務(wù)及完成的功能,為后續(xù)的系統(tǒng)實現(xiàn)指明了方向。同時根據(jù)需求對于整個界面進行了初步的設(shè)計以及對于系統(tǒng)流程做了初步的介紹。
4主要功能模塊分析4.1Ping模塊PING(PacketInternetGrope)中文名字是因特網(wǎng)包探索器,它是用來了解網(wǎng)絡(luò)是否暢通的。它的工作流程為:首先發(fā)送一個網(wǎng)絡(luò)控制的請求消息給想要查詢的網(wǎng)絡(luò),并告知其自己是否可以接受到對方的應(yīng)答。通過這種方法就可以了解所需要查詢的主機的網(wǎng)絡(luò)狀態(tài),如該主機是否連接在互聯(lián)網(wǎng)上,網(wǎng)絡(luò)丟包率,生存時間、往返時間。Ping的返回信息有一下四種,其有各種不同的含義,可以幫助用戶進行判斷。
第一種是RequestTimedOut,是說明可以找到需要查詢的網(wǎng)絡(luò),但是超時了。到達(dá)這一個主機的路由有存在于途經(jīng)的一些路由表中,但是因為網(wǎng)絡(luò)不太好,存在如網(wǎng)絡(luò)擁塞這樣的問題,使得數(shù)據(jù)包不可到達(dá)。
第二種是DestinationNetUnreachable,是說明沒有與對方主機建立連接,或者這一個主機是完全不存在的。而且到達(dá)這一個主機的路由沒有出現(xiàn)在經(jīng)過的路由表中。 第三種BadIPaddress,是說明這個IP地址根本不存在或者沒有方法去連解到DNS服務(wù)器,因此無法解析這個IP地址。
第四種Sourcequenchreceived是說明途經(jīng)的某些服務(wù)器或者對方忙,沒有辦法做出回應(yīng)。通過這些狀態(tài)可以很好的幫助使用者判斷目標(biāo)主機的網(wǎng)絡(luò)狀態(tài),為后續(xù)的攻擊行為服務(wù)。4.2DNS模塊DNS既域名系統(tǒng),其是提供一個容易記住及理解的名稱(例如)來幫助使用者更輕松的訪問互聯(lián)網(wǎng)。DNS是一個分布式的數(shù)據(jù)庫系統(tǒng),層次結(jié)構(gòu)來儲存IP地址、域名、郵件服務(wù)器等信息[1]。根據(jù)它的結(jié)構(gòu),DNS的命名空間是由多個區(qū)域組成的,每個區(qū)里面有至少一個的域名稱相關(guān)信息。圖4.1[1]為DNS服務(wù)器的層次結(jié)構(gòu)圖的一個例子:圖4.1DNS服務(wù)器層次結(jié)構(gòu)[1]大多數(shù)的DNS系統(tǒng)的運行要有兩個或者以上的DNS服務(wù)器:一臺主服務(wù)器及一臺用來容錯的輔助服務(wù)器。通過DNS查詢,攻擊者可以了解到主機對應(yīng)的IP地址,及相關(guān)的DNS信息,以此來為后續(xù)攻擊服務(wù)。4.3Whois模塊在互聯(lián)網(wǎng)上建立一個網(wǎng)站服務(wù)器或者電子郵件服務(wù)器或者其他服務(wù)時,需要向相關(guān)的機構(gòu)提交域名注冊,以便用戶訪問。相關(guān)的注冊的信息,如域名、聯(lián)系方式、地址、電子郵箱、IP地址等信息則存在whois數(shù)據(jù)庫和DNS數(shù)據(jù)庫中,并且這些信息由注冊機構(gòu)及因特網(wǎng)建設(shè)組織進行維護。在1999年之前,互聯(lián)網(wǎng)上提供的注冊服務(wù)機構(gòu)僅有一家:NetworkSolution,然而隨著互聯(lián)網(wǎng)的不斷發(fā)展,如今提供服務(wù)的機構(gòu)已有數(shù)百家。通過對注冊機構(gòu)的查詢,可以獲取到一些有用的注冊信息,包括如下幾個:姓名:較為完整的注冊信息會有包含管理、技術(shù)、付款等人員的信息,即使注冊信息并不完整,一般也會有一個或以上聯(lián)系人。電話號碼:聯(lián)系人的電話號碼,一般可用于電話欺騙等的社會工程學(xué)攻擊。電子郵件:聯(lián)系人的電子郵件。了解這個信息不僅可以知道聯(lián)系人的郵件,更可以能從中推斷出目標(biāo)系統(tǒng)的組織使用的電子郵件格式,攻擊者則可以根據(jù)目標(biāo)組織內(nèi)的任何一個用戶名字推斷出該用戶的電子郵件。郵件地址:獲得該組織的地理位置,從而可以進行垃圾搜索(該搜索可以獲取到一些實用的容易讓人忽視的信息,幫助攻擊者完成攻擊。)或者可以到該地址去掃描不安全的無線電接入,以此達(dá)到入侵的目的。IP地址:IP地址及地址段是攻擊者開展精確的網(wǎng)絡(luò)掃描及攻擊的基礎(chǔ)和前提,其重要性不容小覷。域名服務(wù)器:可以獲取到目標(biāo)組織內(nèi)部的服務(wù)器信息,了解目標(biāo)組織的域名結(jié)構(gòu)。其他有效信息:除了以上的其他信息,包括注冊及更新時間,目標(biāo)組織服務(wù)器類型等等。通過進行whois查詢,可以幫助攻擊者去了解到目標(biāo)網(wǎng)絡(luò)的基礎(chǔ)信息,以幫助攻擊者決策。一般來說,使用者想要了解whois比較全面的內(nèi)容,最方便的方法是通過站長之家、阿里云查詢、站長工具等的網(wǎng)頁進行查詢。查詢示意圖4.2如下:圖4.2whois網(wǎng)站查詢結(jié)果4.4端口掃描模塊攻擊者要想進行進一步的網(wǎng)絡(luò)攻擊,端口掃描則可以為其提供很大的幫助。就網(wǎng)絡(luò)而言,一個網(wǎng)絡(luò)提供著多項服務(wù),每一個處于監(jiān)聽狀態(tài)的端口都會與網(wǎng)絡(luò)服務(wù)密切相關(guān),這些端口是攻擊者進行入侵的一個潛在通道。端口掃描可以獲取到網(wǎng)絡(luò)上有哪些端口是開放的,從而得知主機上有哪些服務(wù)是在運行的,為更加高效、準(zhǔn)確的網(wǎng)絡(luò)攻擊提供了很好的幫助。TCP以及UDP是在傳輸層中的重要協(xié)議,其中端口是一個關(guān)鍵的概念。端口與這兩個傳輸?shù)膮f(xié)議有著很大的關(guān)系。端口主要用于識別主機上的網(wǎng)絡(luò)服務(wù)。為了方便使用,給端口進行編號,引出了端口號這一概念,其一般分為兩種,一種指定配發(fā)給常見程序的熟知端口號(0-1023)。另一種是隨機配發(fā)給客戶進程的一般端口號(1024-65535)[7]。常用的熟知端口號如表4.1下:表4.1常用熟知端口號應(yīng)用程序SSHTELNETSMTPDNSHTTPPOP3SNMPSNMP熟知端口2223255380110161162攻擊者通過對于端口的掃描,可以得知哪些端口是開啟的就可以知道哪些服務(wù)是開啟的,進而利用這些服務(wù)的有可能存在的一些漏洞,來進行更進一步的攻擊,這樣可以幫助攻擊更好進行。4.5Tracter模塊通過查明目標(biāo)主機的主要路由路徑可以有效的幫助攻擊者找到目標(biāo)網(wǎng)絡(luò)的關(guān)鍵結(jié)點(比如路由器)以此來提高攻擊者的攻擊效率,使得攻擊效果達(dá)到最大。Tracert(跟蹤路由)是路由跟蹤程序,主要是用于確定數(shù)據(jù)報在訪問目標(biāo)所的途中走過的路由信息。Tracert命令是通過使用IP生存時間字段以及ICMP的消息來確定相關(guān)的路由路徑,幫助用戶找到攻擊的道路。4.6本章小結(jié)此章節(jié)根據(jù)第三章的需求確定了提供的服務(wù)的模塊,并且對于這些模塊進行了較為詳細(xì)的介紹,介紹了這些模塊對于網(wǎng)絡(luò)滲透偵察的重要性,同時也幫助讀者可以更好的了解網(wǎng)絡(luò)滲透偵察的一些基本知識。
5系統(tǒng)設(shè)計與實現(xiàn)5.1開發(fā)環(huán)境搭建5.1.1開發(fā)語言闡述Python是一種程序設(shè)計的語言,且它在當(dāng)今時代逐漸變的非常流行。其具有強的編譯性、解釋性、互動性,并且其易讀、易維護,因此深受用戶的歡迎與喜愛。\t"/slave/2020041522/211302254614441/htmls/detail_report/right"這門語言是由吉多·范羅蘇姆開發(fā)的\t"/slave/2020041522/211302254614441/htmls/detail_report/right",在這次的開發(fā)中他決心吸取ABC語言失敗的教訓(xùn),在Python中避免出現(xiàn)非開放性而導(dǎo)致的失敗問題。一開始,它僅僅是被拿來編寫一些自動化相關(guān)的腳本。后來由于其的開源免費性,吸引了非常多的科學(xué)研究機構(gòu)來使用。慢慢的,它加入了很多的與數(shù)據(jù)有關(guān)的拓展庫,因此它變的很適合數(shù)據(jù)處理、表格制作、甚至是開發(fā)科學(xué)技術(shù)相關(guān)的語言程序。后來他的版本開始不斷更新,當(dāng)今已經(jīng)發(fā)展到了python3,功能也變得越來越多,所以它開始被用于開發(fā)一些規(guī)模比較大的項目。在當(dāng)今社會其應(yīng)用領(lǐng)域越來越高,主要可應(yīng)用Web和Internet開發(fā)、軟件的開發(fā)、人工智能、網(wǎng)絡(luò)爬蟲等諸多不同領(lǐng)域。其具有非常多的優(yōu)勢。重要優(yōu)勢之一就是完全免費,使用者可以不花錢就在隨意一臺計算機上安裝使用Python和他提供的一些擴展庫。逐漸其的拓展庫越來越豐富,根據(jù)這些庫可以完成許多的任務(wù)。5.1.2PythonIDE介紹-PyCharmPyCharm一款是由JetBrains打造的PythonIDE(集成開發(fā)環(huán)境)。其具有調(diào)試、管理項目、關(guān)鍵語法高亮等一般的IDE所具有的功能。界面簡潔明了,符合用戶的習(xí)慣,可以給用戶帶來比較好的使用體驗,因此選擇其做為開發(fā)使用的IDE。因為其具有多種功能,可以給項目的設(shè)計帶來多種便利,并且其提供免費使用的社區(qū)版。所以此次設(shè)計選擇PyCharm作為開發(fā)工具。5.1.3開發(fā)使用框架介紹-Pyqt5pyqt5是作為python的插件而實現(xiàn)的,其是Python綁定DigiaQT5的應(yīng)用框架。pyqt5做為Python的模塊之一,擁有620多個類,6000個函數(shù)方法。是當(dāng)下比較流行的開發(fā)工具,其功能也非常強大,用其可以開發(fā)出美觀的界面。由于python的跨平臺特性,pyqt5也支持跨平臺,它可以運行在任何主流操作的系統(tǒng)中,其中包括UNIX系統(tǒng),Windows系統(tǒng),MacOS系統(tǒng)。因其具簡單好用、功能強大、跨平臺支持、性能高、穩(wěn)定性高、原生支持、開源免費等的優(yōu)勢,綜合考慮,選取作為此次系統(tǒng)的開發(fā)框架。5.1.4開發(fā)環(huán)境搭建首先安裝python,可以直接在官網(wǎng)上下載最新版本的python,下載完成后直接雙擊安裝。安裝后在配置環(huán)境變量,在Path中添加python安裝路徑。安裝Pyqt5:打開命令提示符(cmd),輸入“pip3installsip”安裝sip,其會自動下載并安裝。完成后輸入pip3installPyQt5,安裝PyQt5,由于網(wǎng)絡(luò)等多種原因,這個過程會比較漫長。安裝好PyQt5后,安裝qtdesigner,同樣是在命令提示符內(nèi)輸入“pipinstallPyQt5-tools”開始下載安裝。完成后我們可以在Python安裝路徑\Scripts下看到designer.exe文件。通過這個文件我們就可以使用拖拽等可視化完成對于界面的設(shè)計。操作流程圖5.1如下圖5.1操作流程5.2文件結(jié)構(gòu)及用途首先確定“基于GUI的網(wǎng)絡(luò)滲透偵察工具”的工程名為“my_search”,并建立my_search工程。具體的目錄結(jié)構(gòu)如圖5.2所示。圖5.2工程目錄結(jié)構(gòu)為了使得項目的文件結(jié)構(gòu)更加清晰,更易于后期的使用和維護。在工程下設(shè)置了多個命名空間,用來保存源代碼、使用的圖片及GUI界面,其中文件名稱及說明如下表5.1所示。表5.1文件名稱說明資源目錄文件名稱文件說明resourceUi文件夾,用來存放.ui格式的GUI界面images文件夾,存放圖片文件about.py“關(guān)于”的界面help.py“幫助”的界面instruction.py“使用說明”的界面main.py程序的主入口main_window.py程序的主界面my_dns.py進行dns查詢my_tcp.py進行開放端口掃描my_whois.py進行whois查詢項目使用的圖標(biāo)圖片保存在images的文件夾中,具體每個資源的用途如下表5.2所示。表5.2文件夾images下文件名稱及說明資源目錄文件名文件說明resource.imagesabout_i.png“關(guān)于”的圖標(biāo)clearall.png“清屏”的圖標(biāo)download_i.png“下載”的圖標(biāo)help_i.png“幫助”的圖標(biāo)instruction.png“使用說明書”的圖標(biāo)mainsearch.png程序的主圖標(biāo)項目使用的ui界面則保存在ui文件夾中,以便后期可以通過可視化的方式對界面進行二次修改。具體每個資源的相關(guān)說明如下表5.3所示。表5.3文件夾ui下文件名稱及說明資源目錄文件名文件說明resource.uiabout.ui“關(guān)于”界面help.ui“幫助”界面instruction.ui“使用說明”界面main.ui主界面5.3用戶界面實現(xiàn)用戶界面主要是通過Qtdesigner工具來進行設(shè)計。根據(jù)第三章中提到的設(shè)計需求及設(shè)計草圖,可進行如下具體設(shè)計。界面總體是是用網(wǎng)格布局(GridLayout)實現(xiàn),其可以讓整個界面布局更加工整對稱。主界面的右上側(cè)區(qū)域為輸入及其他功能區(qū)域。左邊有一個輸入框用作用戶輸入。其右側(cè)有五個按鈕,分別是:清屏、保存到本地、使用說明、幫助、關(guān)于。通過這五個按鈕,幫助用戶更好的使用該工具進行網(wǎng)絡(luò)偵察。因其無右對齊屬性,所以使用彈簧將五個按鈕放到最右邊。主界面的左側(cè)為選擇查詢內(nèi)容區(qū)域。其共有六個按鈕,供用戶選擇所需功能。此應(yīng)用提供的功能有Ping、Dns、Whois、Port、Tracert、Nslookup,設(shè)置按鈕屬性為僅顯示下邊框即可到達(dá)目標(biāo)效果。下方是兩個字體調(diào)節(jié)的按鈕,通過點擊該按鈕可以改變輸出內(nèi)容的字體大小,設(shè)置按鈕為正方形并設(shè)置邊框加粗即可達(dá)到目標(biāo)效果。為了方便用戶使用,為該區(qū)域的按鈕設(shè)置了點擊效果,當(dāng)鼠標(biāo)移動至按鈕上方時,按鈕的字體邊框變?yōu)楹谏?,?dāng)完成點擊后按鈕字體和邊框恢復(fù)為白色,其主要是通過代碼實現(xiàn),設(shè)置按鈕的setStyleSheet為("QPushButton{color:rgb(255,255,255);font:8710pt\"ArialBlack\";""border:none;border-bottom:2pxsolidwhite;}"
"QPushButton:hover{color:rgb(0,0,0);border:none;border-bottom:2pxsolidblack;}")主界面的右下的區(qū)域是信息輸出的區(qū)域,其主要是一個文本框(textBrowser)查詢到的信息都會在這個框中顯示,并且此框內(nèi)容無法進行修改。由于此應(yīng)用主要是信息收集的功能,所以此區(qū)域在整個應(yīng)用中占據(jù)最大的板塊。并且其默認(rèn)的顯示內(nèi)容為應(yīng)用的操作說明,主要包含各個功能模塊的介紹,幫助用戶了解及使用應(yīng)用。其實際顯示效果如圖4.3所示:圖5.3主界面實際效果關(guān)于界面主要是應(yīng)用的相關(guān)信息(如圖標(biāo)名稱等)及應(yīng)用作者的相關(guān)信息。其是使用網(wǎng)格布局,在每個布局區(qū)域中使用TextBrowser作為信息輸出的控件。幫助界面中則是一些系統(tǒng)使用的簡短介紹,幫助用戶快速的上手該應(yīng)用。其使用單個TextBrowser控件進行內(nèi)容的輸出,即可完成對其的顯示要求。以上兩個界面效果圖5.4如圖所示:(b)圖5.4關(guān)于和幫助界面實際效果使用說明界面中則有各個模塊功能及可查詢到的內(nèi)容,以幫助用戶更好的根據(jù)查詢到的信息展開后續(xù)工作。其使用單個TextBrowser控件進行內(nèi)容的輸出,即可完成對其的顯示要求。其顯示的內(nèi)容是通過標(biāo)簽<p></p>來進行顯示,并且通過修改<p>標(biāo)簽的屬性對輸出的內(nèi)容顏色進行修改,突出顯示重點,使得顯示更加生動有趣。其效果圖如圖5.5所示:圖5.5使用說明界面實際效果5.4程序功能實現(xiàn)信號與槽:在程序中所有的按鈕點擊操作都要涉及到信號與槽機制。信號與槽的關(guān)聯(lián)是用QObject::connect()函數(shù)實現(xiàn)的。接下來以點擊ping控件為例,對于ping_pb控件的點擊為信號事件名稱,start_ping為槽函數(shù)的名稱,在整個槽函數(shù)中可以完成在點擊ping按鈕后會產(chǎn)生的操作,比如數(shù)據(jù)的查詢和輸出。其關(guān)鍵代碼如下: self.ping_pb.clicked.connect(Form.start_ping)程序入口:程序入口文件main.py。在代碼中我們可以看到,定義了一個MyWindowClass的類,在類中通過setupUI生成GUI的界面。當(dāng)main.py文件被直接執(zhí)行的時侯,運行“if__name__=='__main__'”中的代碼,生成一個窗口,將MyWindowClass中的控件繪至窗口中并顯示。因此用戶可以看到程序的窗口及控件。其關(guān)鍵代碼如下:classMyWindowClass(QtWidgets.QWidget,Ui_Form):#定義這個窗口類
def__init__(self):#重寫方法以滿足需求
super(MyWindowClass,self).__init__()#繼承
self.setupUi(self)#生成控件if__name__=='__main__':#執(zhí)行
app=QtWidgets.QApplication(sys.argv)
window=MyWindowClass()
window.show()#顯示
sys.exit(app.exec_())數(shù)據(jù)傳輸:在程序中,將查詢到的數(shù)據(jù)傳輸?shù)接脩艚缑嬷衼?,并且顯示到界面的文本框內(nèi),主要是通過使用subprocess模塊[8]產(chǎn)生子進程,獲取子進程中的返回值,并將他們按行進行一一的讀取,使用textBrowser的append方法以循環(huán)的方式顯示到界面當(dāng)中。這樣用戶就可以在界面中看到查詢的內(nèi)容。以查詢輸出開放端口為例,其關(guān)鍵代碼如下:cmd="my_tcp.py"+t
p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
foriiniter(p.stdout.readline,''):#讀取行
QAcessEvents()#刷新界面
iflen(i)<1:
break
self.textBrowser.append(i.decode('gbk').strip())需要注意的是,由于部分查詢過程可能耗時會比較長,如果不對界面進行處理可能會導(dǎo)致界面假死,出現(xiàn)無響應(yīng)的問題。因此在查詢以及數(shù)據(jù)接收的過程中方法使用QAcessEvents()方法對用戶界面進行不斷的刷新,這樣就可以一邊刷新界面一邊進行查詢,避免出現(xiàn)假死的現(xiàn)象,使得程序的運行看起來較為流暢。打開新頁面:用管道的方式直接獨立運行并繪制一個新的窗口,使得兩個窗口在運行是可以互不干擾,其關(guān)鍵代碼如下: os.popen("pythonhelp.py")dns數(shù)據(jù)查詢:直接使用python提供的dns查詢的工具包。其中的解析類resolver提供了query方法。使用該方法,并將其查詢到的內(nèi)容以循環(huán)的方式進行輸出,這樣就可以完成一個單純的dns查詢。其關(guān)鍵代碼如下:thedns=dns.resolver.query(host,'A')
foriinthedns.response.answer:
forjini.items:
print(j)開放端口數(shù)據(jù)查詢:其查詢的思路是使用socket連接,如果連接成功,則認(rèn)為端口是開放,獲取該端口號并輸出。如果連接失敗,認(rèn)為端口關(guān)閉[9]。具體過程為:首先定義掃描的端口范圍為0-1023,通過循環(huán)的方式對于每個端口都使用sock.connect_ex進行連接嘗試,其的返回的是連接的狀態(tài),如果返回值為0的話,則說明此端口是開放的。將開放的端口保存至openports數(shù)組中,并將其一一輸出。關(guān)鍵代碼如下:
defmain():
host=sys.argv[1]
portList=range(0,1023)
openPorts=threadingPortScan(host,portList)
print(host)
iflen(openPorts)==0:
print("Noopenportpleasetryagain")
else:
foriinopenPorts:
print("OpenedPort:"+str(i))#輸出defthreadingPortScan(host,portList,openPorts=[]):
hostIP=socket.gethostbyname(host)#獲取域名對應(yīng)的IPnloops=range(len(portList))
threads=[]#聲明一個數(shù)組
foriinnloops:#循環(huán)獲取
t=threading.Thread(target=tcpPortScan,args=(hostIP,portList[i],openPorts))
threads.append(t)deftcpPortScan(ip,port,openPort):
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#創(chuàng)建套接字
sock.settimeout(0.1)#設(shè)置延時時間
try:
result=sock.connect_ex((ip,port))
ifresult==0:
openPort.append(port)#如果端口開放,就把端口給openPort
except:
pass
sock.close()#關(guān)閉whois數(shù)據(jù)查詢:其主要是通過套接字socket方式進行查詢[10]。首先連接至,再使用send方法發(fā)送查詢的數(shù)據(jù),再使用recv方法接收到所查詢的數(shù)據(jù),并將數(shù)據(jù)輸出。由于該查詢可能受網(wǎng)絡(luò)及等的影響較大,為避免過程長時間的查詢,或者查詢不到結(jié)果,使得用戶界面無響應(yīng),因而使用eventlet.Timeout設(shè)置超時的時間,避免用戶在使用時出現(xiàn)長時間的等待,影響用戶的使用體驗。其關(guān)鍵代碼如下:defwhois1(t1):
witheventlet.Timeout(5,False):#設(shè)置超時時間為5秒
try:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('',43))
t=t1.replace('www.','')
print(t)
tb=bytes(t,encoding="utf8")
s.send(tb+b"\r\n")#數(shù)據(jù)傳輸,類型為bytes
response=b''
whileTrue:
data=s.recv(4096)
response+=data
ifnotdata:
break
s.close()
print(response.decode())
exceptBaseException:
s="TimeoutPleasecheckthenetworkorURL"
print(s)ping、tracter、nslookup數(shù)據(jù)查詢:由于在windows系統(tǒng)中,通過cmd可以直接對ping、tracter、nslookup進行查詢。因此,此次程序直接通過管道的方式查詢獲取到使用命令提示符的查詢數(shù)據(jù),并將他輸出至界面中。由于數(shù)據(jù)的獲取傳輸顯示的方式在上面做過闡述,在此就不再贅述。數(shù)據(jù)保存至本地:其是通過使用textBrowser的toPlainText方法獲取到顯示款內(nèi)的數(shù)據(jù),并且寫入文件中。寫入完成后彈出一個QMessageBox提示框,提示保存成功。其關(guān)鍵代碼如下: content=self.textBrowser.toPlainText()
t=str(self.lineEdit.text())
ntime=str(time.time())
fname=t+ntime
print(fname)
withopen('./'+fname,'w',encoding='utf-8')asf:#設(shè)置編碼格式 f.write(content)
QMessageBrmation(self,'保存到本地','保存成功!', QMessageBox.Ok)改變字體大小:其是通過使用lambda方法進行帶參數(shù)的信號傳遞,槽函數(shù)取得textBrowser的字體大小,并且通過font.setPointSize方法將字號進行增加或者減小,隨后通過textBrowser.setFont方法重新設(shè)置字體的大小。以字體增大為例,其關(guān)鍵代碼如下:self.add_pb.clicked.connect(lambda:Form.addfontsize(font))defaddfontsize(self,font):
i=font.pointSize()
font.setPointSize(i+1)
self.textBrowser.setFont(font)5.5本章小結(jié)本章節(jié)主要對開發(fā)語言Python的基本知識,開發(fā)環(huán)境的搭建、項目結(jié)構(gòu)、用戶界面的實現(xiàn)、具體功能的實現(xiàn)等多方面進行了具體的闡述,以幫助閱讀者更好的了解這個程序從無到有的實現(xiàn)過程。
6系統(tǒng)測試6.1測試設(shè)計至此,已經(jīng)完成了代碼的編寫工作,接下來在的這一個章節(jié)中對此程序進行系統(tǒng)的測試,測試環(huán)境為window10系統(tǒng)。主要測試過程:以為測試的目標(biāo)主機,對程序?qū)崿F(xiàn)的功能模塊進行一一測試。根據(jù)需求和相關(guān)使用情況制定了較為系統(tǒng)全面的黑盒測試[11]計劃。同時依照測試計劃中的操作對程序的功能進行測試并對比結(jié)果。具體完整的計劃如表6.1所示:表6.1測試計劃測試程序測試方法測試步驟預(yù)期結(jié)果界面顯示黑盒測試點擊運行程序程序界面顯示完整,各按鈕及按鈕圖標(biāo)均正常顯示ping黑盒測試分別對輸入框進行如下操作:不輸入、輸出正確主機、輸出錯誤主機點擊ping按鈕進行查詢不輸入時,顯示框輸出“請輸入需要查詢的內(nèi)容!(如)”輸入正確主機時,顯示款正常顯示ping查詢的內(nèi)容。輸入錯誤主機時,顯示框提示“找不到主機”DNS黑盒測試1.分別對輸入框進行如下操作:不輸入、輸出正確主機、輸出錯誤主機2.點擊DNS按鈕進行查詢不輸入時,顯示框輸出“請輸入需要查詢的內(nèi)容?。ㄈ纾陛斎胝_主機時,顯示款正常顯示所查詢主機的IP地址輸入錯誤主機時,顯示框提示“PleasecheckthenetworkorURL”Whois黑盒測試1.分別對輸入框進行如下操作:不輸入、輸出正確主機、輸出錯誤主機2.點擊Whois按鈕進行查詢不輸入時,顯示框輸出“請輸入需要查詢的內(nèi)容!(如)”輸入正確主機時,顯示款正常顯示所查詢主機的注冊信息(如名稱地址等)輸入錯誤主機時,顯示框提示“Nomatchfor”Port黑盒測試1.分別對輸入框進行如下操作:不輸入、輸出正確主機、輸出錯誤主機2.點擊Port按鈕進行查詢不輸入時,顯示框輸出“請輸入需要查詢的內(nèi)容!(如)”輸入正確主機時,顯示款正常顯示所查詢主機的開放端口號。輸入錯誤主機時,顯示框提示“Thehostisinvalid”Tracert黑盒測試1.分別對輸入框進行如下操作:不輸入、輸出正確主機、輸出錯誤主機2.點擊Tracert按鈕進行查詢不輸入時,顯示框輸出“請輸入需要查詢的內(nèi)容!(如)”。輸入正確主機時,顯示款正常顯示所查詢主機的IP地址。輸入錯誤主機時,顯示框提示“無法解析目標(biāo)系統(tǒng)名稱swsws。”。Nslookup黑盒測試1.分別對輸入框進行如下操作:不輸入、輸出正確主機、輸出錯誤主機2.點擊Nslookup按鈕進行查詢不輸入時,顯示框輸出“請輸入需要查詢的內(nèi)容?。ㄈ纾?。輸入正確主機時,顯示款正常顯示所查詢主機的IP地址及服務(wù)器信息。輸入錯誤主機時,顯示框提示“Unkown”。清屏黑盒測試點擊清屏按鈕顯示框內(nèi)的內(nèi)容恢復(fù)為空保存黑盒測試點擊保存按鈕顯示框內(nèi)輸出的查詢信息保存至同一級目錄下,并且彈出“保存成功”提示使用說明黑盒測試點擊使用說明按鈕“使用說明”界面顯示完整幫助黑盒測試點擊幫助按鈕“幫助”界面顯示完整關(guān)于黑盒測試點擊關(guān)于按鈕“關(guān)于”界面顯示完整字體放大黑盒測試點擊左下方的加號鍵顯示框內(nèi)字體變大字體縮小黑盒測試點擊左下方的加號鍵顯示框內(nèi)字體變小按鈕提示黑盒測試將鼠標(biāo)放在左側(cè)的功能按鈕上按鈕旁有關(guān)于該功能下相關(guān)提示6.2測試結(jié)果經(jīng)過了系統(tǒng)的功能測試,具體結(jié)果如下表6.2所示。表6.2測試結(jié)果測試程序測試結(jié)果界面顯示測試通過ping測試通過DNS測試通過Whois測試通過Port測試通過Tracert測試通過Nslookup測試通過清屏測試通過保存測試通過使用說明測試通過幫助測試通過關(guān)于測試通過字體放大測試通過字體縮小測試通過按鈕提示測試通過6.3測試運行效果以下為程序具體運行的效果圖。點擊運行該程序,顯示框默認(rèn)顯示為該程序的使用說明書,效果如下圖6.1所示:圖6.1主界面效果圖輸入主機,點擊清屏(使查詢結(jié)果不受其他功能干擾),點擊ping按鈕進行查詢,效果如圖6.2所示:圖6.2ping查詢后效果圖
輸入主機,點擊清屏,點擊DNS按鈕進行查詢,效果如圖6.3所示:圖6.3DNS查詢后效果圖輸入主機,點擊清屏,點擊Whois按鈕進行查詢,效果如圖6.4所示:圖6.4whois查詢后效果圖
點擊清屏,點擊Port按鈕進行查詢,效果如圖6.5所示:圖6.5端口掃描后效果圖輸入主機,點擊清屏,點擊Tracert按鈕進行查詢,效果如圖6.6所示:圖6.6路徑追蹤后效果圖
輸入主機,點擊清屏,點擊Nslookup按鈕進行查詢,效果如圖6.7所示:圖6.7nslookup查詢后效果圖點擊清屏,效果如圖6.8所示:圖6.8點擊清屏后效果圖點擊保存到本地,效果如圖6.9所示:圖6.9保存到本地后效果圖點擊使用說明,效果如圖6.10所示:圖6.10使用說明界面效果圖點擊幫助和關(guān)于,效果如圖6.11所示:(b)圖6.11幫助及關(guān)于界面效果圖
點擊放大字體,效果如圖6.12所示:圖6.12放大字體后效果圖點擊縮小字體,效果如圖6.13所示:圖6.13縮小字體效果圖
將按鈕鼠標(biāo)移至功能選擇按鈕上(以whois為例),效果如圖6.14所示:圖6.14鼠標(biāo)懸浮提示效果圖6.4本章小結(jié)此章節(jié)對于系統(tǒng)進行了系統(tǒng)測試,測試了系統(tǒng)中的各功能。描述了各個功能的使用方法和使用效果,同時也將完整的運行效果進行展示。
7總結(jié)經(jīng)過數(shù)月的學(xué)習(xí)與努力,基于GUI的網(wǎng)絡(luò)滲透偵察工具終于完成。由于對網(wǎng)絡(luò)偵察及網(wǎng)絡(luò)攻防有著濃厚的興趣,但是網(wǎng)絡(luò)偵察的相關(guān)集成工具少之又少,這是我對此選題感興趣的重要原因,同時也是我從一開始對于GUI編程完全不了解到慢慢摸索著完成此軟件的一大動力。在這過程中,我學(xué)習(xí)到了很多知識,比如python基礎(chǔ)知識、pyqt5基本語法、管道技術(shù)、socket網(wǎng)絡(luò)編程、網(wǎng)絡(luò)偵察基本知識等。最重要的是我學(xué)習(xí)到了利用網(wǎng)絡(luò)上的豐富資源去解決問題,以及認(rèn)識到,在遇到問題和困難的時候要勇于挑戰(zhàn),絕對不要輕易放棄。雖然這個系統(tǒng)基本的功能已經(jīng)實現(xiàn),但是我知道,由于我水平有限,對于該系統(tǒng)的實現(xiàn)當(dāng)中還是有一些不足,用戶界面的操作還不夠靈活。但是我相信隨著我的不斷努力和學(xué)習(xí),此系統(tǒng)還可以得到進一步的優(yōu)化與完善,帶給用戶更好的使用體驗。
參考文獻[1]丁學(xué)峰,張翔.網(wǎng)絡(luò)偵察的發(fā)展前景[J].情報雜志,2003(06):98-99.[2]吳禮發(fā),洪征,李華波.網(wǎng)絡(luò)攻防原理與技術(shù)[M].北京:機械工業(yè)出版社,2019.[3]嵩天,禮欣,黃天羽.python語言程序設(shè)計基礎(chǔ)(第二版)[M].高等教育出版社,2017.[4]王碩,孫洋洋.PyQt5快速開發(fā)與實戰(zhàn)[M].北京:電子工業(yè)出版社,2017.[5]養(yǎng)薛定諤的貓.PyQT5速成教程-2QtDesigner介紹與入門[EB/OL]./p/5b063c5745d0,2018[6]jiezi506.用戶界面設(shè)計的基本原則[EB/OL]./view/7e02ebf804a1b0717fd5ddf0,2018[7]謝希仁.計算機網(wǎng)絡(luò)(第7版)[M].電子工業(yè)出版社,2018.[8]\o"墨痕訴清風(fēng)"墨痕訴清風(fēng).Pythonsubprocess.Popen實時輸出stdout(正確管道寫法)[EB/OL]./u012206617/article/details/84560895,2018[9]\o"sime_km"sime_km.用python實現(xiàn)多線程端口掃描[EB/OL]./sime_km/article/details/79747334,2018[10]
張呵呵呀.Python小白入門--(域名whois查詢?yōu)槔跡B/OL]./zhangmengqin/p/9144022.html,2018.[11]黑馬程序員.軟件測試[M].人民郵電出版社,2019謝辭畢業(yè)設(shè)計已經(jīng)結(jié)束,大學(xué)生涯也至尾聲。首先非常北理珠對于我的培養(yǎng),給了我一個學(xué)習(xí)提高的平臺。其次是要感謝這四年幫助我成長的老師們,老師們在課堂上的教誨幫助我不斷進步。特別是指導(dǎo)老師林教授,在這次畢業(yè)設(shè)計的過程中給了我非常多的幫助,每當(dāng)遇到困難向老師咨詢時候,老師都能夠悉心的指導(dǎo)和講解,幫助我解決問題,給了我非常多的力量和幫助。最后要感謝四年陪伴我的同學(xué)們,是他們陪我度過了愉快而又充實的大學(xué)生活。在畢業(yè)設(shè)計即將完成之際,我的心情無法平靜。通過本次設(shè)計,我的專業(yè)技能取得了很大的進步。同時我也認(rèn)識到自己還要很多的不足,在今后我會不斷學(xué)習(xí)不斷進步,會謹(jǐn)記it人的初心,不斷前行。
電腦不啟動故障診治了解電腦啟動的過程在諸多電腦故障中,無法正常啟動是最令用戶頭痛的事了。筆者長期從事維護電腦的工作,在這個方面積累了一些經(jīng)驗,現(xiàn)在就將這些經(jīng)驗整理歸納出來與朋友們分享。本文將以家用電腦和windows98操作系統(tǒng)為基礎(chǔ),介紹電腦無法正常啟動故障的診治。要想準(zhǔn)確地診斷電腦不啟動故障,首先要了解的起動過程,當(dāng)我們按下電源開關(guān)時,電源就開始向主板和其它設(shè)備供電,此時電壓還沒有完全穩(wěn)定,主板控制芯片組會根據(jù)CMOS中的CPU主頻設(shè)置向CPU發(fā)出一個Reset(重置)信號,讓CPU初始化,電壓完全穩(wěn)定后,芯片組會撤去Reset信號,CPU馬上從地址FFFF0H處執(zhí)行一條跳轉(zhuǎn)指令,跳到系統(tǒng)BIOS中真正的啟動代碼處。系統(tǒng)BIOS首先要做的事情就是進行POST(PowerOnSelfTest,加電自檢)。POST的主要任務(wù)是檢測系統(tǒng)中的一些關(guān)鍵設(shè)備(電源、CPU芯片、BIOS芯片、定時器芯片、數(shù)據(jù)收發(fā)邏輯電路、DMA控制器、中斷控制器以及基本的64K內(nèi)存和內(nèi)存刷新電路等)是否存在和能否正常工作,如內(nèi)存和顯卡等。自檢通過后,系統(tǒng)BIOS將查找顯示卡的BIOS,由顯卡BIOS來完成顯示卡的初始化,顯示器開始有顯示,自此,系統(tǒng)就具備了最基本的運行條件,可以對主板上的其它部分進行診斷和測試,再發(fā)現(xiàn)故障時,屏幕上會有提示,但一般不死機,接著系統(tǒng)BIOS將檢測CPU的類型和工作頻率,然后開始測試主機所有的內(nèi)存容量,內(nèi)存測試通過之后,系統(tǒng)BIOS將開始檢測系統(tǒng)中安裝的一些標(biāo)準(zhǔn)硬件設(shè)備,這些設(shè)備包括:硬盤、CD-ROM、軟驅(qū)、串行接口和并行接口等連接的設(shè)備,大多數(shù)新版本的系統(tǒng)BIOS在這一過程中還要自動檢測和設(shè)置內(nèi)存的相關(guān)參數(shù)、硬盤參數(shù)和訪問模式等。標(biāo)準(zhǔn)設(shè)備檢測完畢后,系統(tǒng)BIOS內(nèi)部的支持即插即用的代碼將開始檢測和配置系統(tǒng)中已安裝的即插即用設(shè)備。每找到一個設(shè)備之后,系統(tǒng)BIOS都會在屏幕上顯示出設(shè)備的名稱和型號等信息,同時為該設(shè)備分配中斷、DMA通道和I/O端口等資源。最后系統(tǒng)BIOS將更新ESCD(ExtendedSystemConfigurationData,擴展系統(tǒng)配置數(shù)據(jù))。ESCD數(shù)據(jù)更新完畢后,系統(tǒng)BIOS的啟動代碼將進行它的最后一項工作,即根據(jù)用戶指定的啟動順序從軟盤、硬盤或光驅(qū)啟動。以從C盤啟動為例,系統(tǒng)BIOS將讀取并執(zhí)行硬盤上的主引導(dǎo)記錄,主引導(dǎo)記錄接著從分區(qū)表中找到第一個活動分區(qū),然后讀取并執(zhí)行這個活動分區(qū)的分區(qū)引導(dǎo)記錄,而分區(qū)引導(dǎo)記錄將負(fù)責(zé)讀取并執(zhí)行IO.SYS,這是Windows最基本的系統(tǒng)文件。IO.SYS首先要初始化一些重要的系統(tǒng)數(shù)據(jù),然后就顯示出我們熟悉的藍(lán)天白云,在這幅畫面之下,Windows將繼續(xù)進行DOS部分和GUI(圖形用戶界面)部分的引導(dǎo)和初始化工作,一切順利結(jié)束,電腦正常啟動。根據(jù)故障現(xiàn)象診治了解電腦啟動的過程,故障就好判斷了,下面我們就根據(jù)故障現(xiàn)象開始診治了:現(xiàn)象一:系統(tǒng)完全不能啟動,見不到電源指示燈亮,也聽不到冷卻風(fēng)扇的聲音。這時,基本可以認(rèn)定是電源部分故障,檢查:電源線和插座是否有電、主板電源插頭是否連好,UPS是否正常供電,再確認(rèn)電源是否有故障,最簡單的就是替換法,但一般用戶家中不可能備有電源等備件,這時可以嘗試使用下面的方法(注意:要慎重):先把硬盤,CPU風(fēng)扇,或者CDROM連好,然后把ATX主板電源插頭用一根導(dǎo)線連接兩個插腳(把插頭的一側(cè)突起對著自己,上層插腳從左數(shù)第4個和下層插腳從右數(shù)第3個,方向一定要正確),然后把ATX電源的開關(guān)打開,如果電源風(fēng)扇轉(zhuǎn)動,說明電源正常,否則電源損壞。如果電源沒問題直接短接主板上電源開關(guān)的跳線,如果正常,說明機箱面板的電源開關(guān)損壞?,F(xiàn)象二:電源批示燈亮,風(fēng)扇轉(zhuǎn),但沒有明顯的系統(tǒng)動作。這種情況如果出現(xiàn)在新組裝電腦上應(yīng)該首先檢查CPU是否插牢或更換CPU,而正在使用的電腦的CPU損壞的情況比較少見(人為損壞除外),損壞時一般多帶有焦糊味,如果剛剛升級了BIOS或者遭遇了CIH病毒攻擊,這要考慮BIOS損壞問題(BIOS莫名其妙的損壞也是有的),修復(fù)BIOS的方法很多雜志都介紹過就不重復(fù)了;確認(rèn)CPU和BIOS沒問題后,就要考慮CMOS設(shè)置問題,如果CPU主頻設(shè)置不正確也會出現(xiàn)這種故障,解決方法就是將CMOS信息清除,既要將CMOS放電,一般主板上都有一個CMOS放電的跳線,如果找不到這個跳線可以將CMOS電池取下來,放電時間不要低于5分鐘,然后將跳線恢復(fù)原狀或重新安裝好電池即可;如果CPU、BIOS和CMOS都沒問題還要考慮電源問題:PC機電源有一個特殊的輸出信號,稱為POWERGOOD(PG)信號,如果PG信號的低電平持續(xù)時間不夠或沒有低電平時間,PC機將無法啟動。如果PG信號一直為低電平,則PC機系統(tǒng)始終處于復(fù)位狀態(tài)。這時PC機也出現(xiàn)黑屏、無聲響等死機現(xiàn)象。但這需要專業(yè)的維修工具外加一些維修經(jīng)驗,因此,建議采用替換法;電源沒有問題就要檢查是否有短路,確保主板表面不和金屬(特別是機箱的安裝固定點)接觸。把主板和電源拿出機箱,放在絕緣體表面,如果能啟動,說明主板有短路現(xiàn)象;如果還是不能啟動則要考慮主板問題,主板故障較為復(fù)雜,可以使用替換法確認(rèn),然后更換主板?,F(xiàn)象三:電源指示燈亮,系統(tǒng)能啟動,但系統(tǒng)在初始化時停住了,而且可以聽到嗽叭的鳴叫聲(沒有視頻):根據(jù)峰鳴代碼可以判斷出故障的部位。ccid_page/AwardBIOS1短聲:說明系統(tǒng)正常啟動。表明機器沒有問題。2短聲:說明CMOS設(shè)置錯誤,重新設(shè)置不正確選項。1長1短:說明內(nèi)存或主板出錯,換一個內(nèi)存條試試。1長2短:說明顯示器或顯示卡存在錯誤。檢查顯卡和顯示器插頭等部位是否接觸良好或用替換法確定顯卡和顯示器是否損壞。1長3短:說明鍵盤控制器錯誤,應(yīng)檢查主板。1長9短:說明主板FlashRAM、EPROM錯誤或BIOS損壞,更換FlashRAM。重復(fù)短響:說明主板電源有問題。不間斷的長聲:說明系統(tǒng)檢測到內(nèi)存條有問題,重新安裝內(nèi)存條或更換新內(nèi)存條重試。AMIBIOS1短:說明內(nèi)存刷新失敗。更換內(nèi)存條。2短:說明內(nèi)存ECC較驗錯誤。在CMOS中將內(nèi)存ECC校驗的選項設(shè)為Disabled或更換內(nèi)存。3短:說明系統(tǒng)基本內(nèi)存檢查失敗。換內(nèi)存。4短:說明系統(tǒng)時鐘出錯。更換芯片或CMOS電池。5短:說明CPU出現(xiàn)錯誤。檢查CPU是否插好。6短:說明鍵盤控制器錯誤。應(yīng)檢查主板。7短:說明系統(tǒng)實模式錯誤,不能切換到保護模式。8短:說明顯示內(nèi)存錯誤。顯示內(nèi)存有問題,更換顯卡試試。9短:說明BIOS芯片檢驗和錯誤。1長3短:說明內(nèi)存錯誤。內(nèi)存損壞,更換。1長8短:說明顯示測試錯誤。顯示器數(shù)據(jù)線沒插好或顯示卡沒插牢。現(xiàn)象四:系統(tǒng)能啟動,有視頻,出現(xiàn)故障提示,這時可以根據(jù)提示來判斷故障部位。下面就是一些常見的故障提示的判斷:一、提示“CMOSBatteryStateLow”原因:CMOS參數(shù)丟失,有時可以啟動,使用一段時間后死機,這種現(xiàn)象大多是CMOS供電不足引起的。對于不同的CMOS供電方式,采取不同的措施:1.焊接式電池:用電烙鐵重新焊上一顆新電池即可;2.鈕扣式電池:直接更換;3.芯片式:更換此芯片,最好采用相同型號芯片替換。如果更換電池后時間不長又出現(xiàn)同樣現(xiàn)象的話,很可能是主板漏電,可檢查主板上的二極管或電容是否損壞,也可以跳線使用外接電池,不過這些都需要有一定的硬件維修基礎(chǔ)才能完成。二、提示“CMOSChecksumFailure”CMOS中的BIOS檢驗和讀出錯;提示“CMOSSystemOptionNotSet”,CMOS系統(tǒng)未設(shè)置;提示“CMOSDisplayTypeMismatch”,CMOS中顯示類型的設(shè)置與實測不一致;提示“CMOSMemorySizeMismatch”,主板上的主存儲器與CMOS中設(shè)置的不一樣;提示“CMOSTime&DateNotSet”,CMOS中的時間和日期沒有設(shè)置。這些都需要對CMOS重新設(shè)置。三、提示“KeyboardInterfaceError”后死機原因:主板上鍵盤接口不能使用,拔下鍵盤,重新插入后又能正常啟動系統(tǒng),使用一段時間后鍵盤無反應(yīng),這種現(xiàn)象主要是多次拔插鍵盤引起主板鍵盤接口松動,拆下主板用電烙鐵重新焊接好即可;也可能是帶電拔插鍵盤,引起主板上一個保險電阻斷了(在主板上標(biāo)記為Fn的東西),換上一個1歐姆/0.5瓦的電阻即可。四、自檢過程中斷在xxxKCache處這表示主板上Cache損壞,可以在CMOS設(shè)置中將“ExternalCache”項設(shè)為“Disable”故障即可排除。同理,在自檢主板部件時出現(xiàn)中斷,則可以認(rèn)為該部件損壞,解決方法一般可以在CMOS中將其屏蔽,如果不能屏蔽該部件最好更換主板。五、提示“FDDControllerFailure”BIOS不能與軟盤驅(qū)動器交換信息;提示“HDDControllerFailure”,BIOS不能與硬盤驅(qū)動器交換信息。應(yīng)檢查FDD(HDD)控制卡及電纜。六、提示“8042GateA20Error”8042芯片壞;提示“DMAError”,DMA控制器壞。這種故障需要更換。七、提示“DisplaySwitchNotProper”主板上的顯示模式跳線設(shè)置錯誤,重新跳線。八、提示“KeyboardisLock...Unlockit”鍵盤被鎖住,打開鎖后重新引導(dǎo)系統(tǒng)。九、IDE接口設(shè)備檢測信息為:“DetectingPrimary(或Secondary)Master(或Slave)...None”表示該IDE接口都沒有找到硬盤,如果該IDE口確實接有硬盤的話,則說明硬盤沒接上或硬盤有故障,可以從以下幾方面檢查:1、硬盤電源線和數(shù)據(jù)線是否接觸不良,或換一根線試試;2、CMOS設(shè)置有無錯誤,進入CMOS將“PrimaryMaster”、“PrimarySlave”、“SecondaryMaster”三項的的“TYPE”都設(shè)置成“Auto”;3、替換法確認(rèn)硬盤本身有故障。十、IDE接口設(shè)備檢測信息下面顯示“Floppydisk(s)fail(40)”出錯信息表示CMOS所指定的軟盤驅(qū)動器有問題。判斷和解決的方法與硬盤相似。現(xiàn)象五:系統(tǒng)不能引導(dǎo)。這種故障一般都不是嚴(yán)重問題,只是系統(tǒng)在找到的用于引導(dǎo)的驅(qū)動器中找不到引導(dǎo)文件,比如:BIOS的引導(dǎo)驅(qū)動器設(shè)置中將軟驅(qū)排在了硬盤驅(qū)動的前面,而軟驅(qū)中又放有沒有引導(dǎo)系統(tǒng)的軟盤或者BIOS的引導(dǎo)驅(qū)動器設(shè)置中將光驅(qū)排在了硬盤驅(qū)動的前面,而光驅(qū)中又放有沒有引導(dǎo)系統(tǒng)的光盤,這個都很簡單,將光盤或軟盤取出就可以了,實際應(yīng)用中遇到“DiskBootFailure,InsertSystemDiskAndPressEnter”的提示,多數(shù)都是這個原因。如果是硬盤不能引導(dǎo)的話一般有兩種情況:一種是硬盤數(shù)據(jù)線沒有插好,另一種就是硬盤數(shù)據(jù)損壞。前者一般多會出現(xiàn)硬盤容量檢測不正確和引導(dǎo)時出現(xiàn)死機的現(xiàn)象;后者則是干脆找不到引導(dǎo)文件或提示文件損壞。前者只需重新連接好數(shù)據(jù)線即可;后者則需要用win98的啟動軟盤或啟動光盤啟動,根據(jù)實際情況來定:一、提示“Invalidpartitiontable”或“NotFoundany[activepartition]inHDDDiskBoo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 排長述職報告
- 工程移交協(xié)議書(5篇)
- 2025年教案編寫:如何讓學(xué)生理解火災(zāi)的危害與滅火的方法
- 廉潔自律-從我做起
- 豬肉知識培訓(xùn)課件
- 2025年中考第一次模擬考試地理(青海卷)(全解全析)
- 國際商務(wù)談判與合同簽訂作業(yè)指導(dǎo)書
- 學(xué)校后勤承包經(jīng)營合同
- 產(chǎn)品品質(zhì)檢測協(xié)議
- 2025年湘潭年貨運從業(yè)資格證考試答案
- 單位就業(yè)人員登記表
- 計算機教室(微機室)學(xué)生上機使用記錄
- 學(xué)與教的心理學(xué)第6版(師范專業(yè)心理學(xué))PPT完整全套教學(xué)課件
- 單位下鄉(xiāng)租車方案
- 化工制圖第一章制圖的基本知識課件
- 《植物學(xué)》練習(xí)(二)根、莖、葉營養(yǎng)器官的聯(lián)系及變態(tài)
- 鼎和財險附加意外傷害醫(yī)療保險A款(互聯(lián)網(wǎng)專屬)條款
- 中暑-紅十字應(yīng)急救護培訓(xùn)課件
- 聯(lián)儲共備實施方案
- 光伏工程 危害辨識風(fēng)險評價表(光伏)
- 高壓電動機試驗報告模板
評論
0/150
提交評論