網(wǎng)絡(luò)安全設(shè)計(jì)報(bào)告2_第1頁(yè)
網(wǎng)絡(luò)安全設(shè)計(jì)報(bào)告2_第2頁(yè)
網(wǎng)絡(luò)安全設(shè)計(jì)報(bào)告2_第3頁(yè)
網(wǎng)絡(luò)安全設(shè)計(jì)報(bào)告2_第4頁(yè)
網(wǎng)絡(luò)安全設(shè)計(jì)報(bào)告2_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、網(wǎng)絡(luò)安全課程設(shè)計(jì)報(bào)告題 目: 端口掃描程序設(shè)計(jì)專業(yè)網(wǎng)絡(luò)工程學(xué)號(hào)姓名 B12070405彭慧珺B12070408魏園園指導(dǎo)教師董小燕日期2014.12.2評(píng) 分項(xiàng) 分 評(píng)秀好 良等 中差原況 情 實(shí) 匕匕 厶冃 功 題 諜寫 書 告簡(jiǎn) 短 評(píng) 語(yǔ)日月 各年評(píng)分等級(jí)備注分細(xì)端口掃描程序設(shè)計(jì)、設(shè)計(jì)目的和任務(wù)掃描器是網(wǎng)絡(luò)信息收集的一種方法,是入侵者搜集信息的幾種常用手法之一,也正是 這一過(guò)程最容易使入侵者暴露自己的身份和意圖。如果入侵者掌握了目標(biāo)主機(jī)開(kāi)放了哪些 服務(wù),運(yùn)行何種操作系統(tǒng),他們就能夠使用相應(yīng)的手段實(shí)現(xiàn)入侵。從功能上可分為漏洞掃 描器和端口掃描器。根據(jù)提供服務(wù)類型的不同,端口分為兩種,一種是

2、TCP端 口,一種是UDP端口。通過(guò)此次課程設(shè)計(jì),能夠掌握端口的基礎(chǔ)知識(shí),掌握掃描器的基本原理并設(shè)計(jì) 實(shí)現(xiàn)端口掃描。本程序主要實(shí)現(xiàn):簡(jiǎn)易的端口掃描,支持多線程,并可指定線程數(shù)進(jìn)行端口掃描,并 記錄時(shí)間;能對(duì)指定的主機(jī)進(jìn)行端口掃描;能掃描特定的部分端口號(hào)或?qū)χ付ǖ亩丝诙蝺?nèi) 的端口進(jìn)行逐個(gè)掃描;能識(shí)別部分開(kāi)放端口所提供的服務(wù);以及使端口掃描器具有簡(jiǎn)單易 懂美觀的用戶圖形界面。二、設(shè)計(jì)原理2.1關(guān)于攻擊In ternet的網(wǎng)絡(luò)通信大多是建立在 TCP和UDP協(xié)議之上的,各個(gè)主機(jī)遵循著 TCP/IP 協(xié)議封裝數(shù)據(jù)包進(jìn)行通信。根據(jù)提供服務(wù)類型的不同,端口分為兩種,一種是TCP端口,一種是UDP端口。?

3、TCP端口:即傳輸控制協(xié)議端口,需要在客戶端和服務(wù)器之間建立連接,這樣可以提供可靠的數(shù)據(jù)傳輸。常見(jiàn)的包括FTP服務(wù)的21端口,Tel net服務(wù)的23端口,SMTP 服務(wù)的25端口,以及HTTP月艮務(wù)的80端口等等。? UDP端口:即用戶數(shù)據(jù)包協(xié)議端口,無(wú)需在客戶端和服務(wù)器之間建立連接,可靠性得不到保障。常見(jiàn)的有DNS月艮務(wù)的53端口,SNM(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)服務(wù)的161 端口,QICQ使用的8000和4000端口等等。本程序通過(guò) TCP connect 掃描:通過(guò)調(diào)用 socket 函數(shù) connect() 連接到目標(biāo)計(jì)算機(jī)上,完成一次完整的三次握手過(guò)程。如果端口處于偵聽(tīng)狀態(tài),那么conn

4、ect() 就能成功返回。否則,這個(gè)端口不可用,即沒(méi)有提供服務(wù)。優(yōu)點(diǎn):穩(wěn)定可靠,不需要特殊的權(quán)限。缺點(diǎn):掃描方式不隱蔽,服務(wù)器日志會(huì)記錄下大量密集的連接和錯(cuò)誤記錄,并容易被防火墻發(fā)現(xiàn)和屏蔽。2.2關(guān)于防御1 .關(guān)閉閑置和有潛在危險(xiǎn)的端口這個(gè)方法有些 死板”它的本質(zhì)是一一將所有用戶需要用到的正常計(jì)算機(jī)端口外的其 他端口都關(guān)閉掉。因?yàn)榫秃诳投裕?所有的端口都可能成為攻擊的目標(biāo)。換句話說(shuō)計(jì)算機(jī)的所有對(duì)外通訊的端口都存在潛在的危險(xiǎn) ”而一些系統(tǒng)必要的通訊端口,如訪問(wèn)網(wǎng)頁(yè)需要 的HTTP (80端口); QQ (4000端口)等不能被關(guān)閉。2 .檢查各端口,有端口掃描的癥狀時(shí),立即屏蔽該端口這種預(yù)防端

5、口掃描的方式顯然用戶自己手工是不可能完成的,或者說(shuō)完成起來(lái)相當(dāng)困 難,需要借助軟件。這些軟件就是我們常用的網(wǎng)絡(luò)防火墻防火墻的工作原理是:首先檢查每個(gè)到達(dá)你的電腦的數(shù)據(jù)包,在這個(gè)包被你機(jī)上運(yùn)行的任何軟件看到之前,防火墻有完全 的否決權(quán),可以禁止你的電腦接收In ternet上的任何東西。當(dāng)?shù)谝粋€(gè)請(qǐng)求建立連接的包被 你的電腦回應(yīng)后,一個(gè)“ TCP/IP端 口”被打開(kāi);端口掃描時(shí),對(duì)方計(jì)算機(jī)不斷和本地計(jì)算機(jī) 建立連接,并逐漸打開(kāi)各個(gè)服務(wù)所對(duì)應(yīng)的“ TCP/IP端 口”及閑置端口,防火墻經(jīng)過(guò)自帶的攔截規(guī)則判斷,就能夠知道對(duì)方是否正進(jìn)行端口掃描,并攔截掉對(duì)方發(fā)送過(guò)來(lái)的所有掃描需 要的數(shù)據(jù)包。三、實(shí)驗(yàn)環(huán)境

6、和總體設(shè)計(jì)3.1實(shí)驗(yàn)環(huán)境開(kāi)發(fā)工具:J2SDK 1.7.0 Eclipse語(yǔ)言:Java運(yùn)行環(huán)境:Windows 2000以上3.2總體設(shè)計(jì)多線程端口掃描器是實(shí)現(xiàn)計(jì)算機(jī)的端口的掃描,只要在在前臺(tái)設(shè)置好所要掃描的IP、起始端口、結(jié)束端口以及所要用到的線程數(shù),點(diǎn)擊掃描,就可以掃描到所輸入IP地址主機(jī)的開(kāi)放端口,并顯示在主窗體中;點(diǎn)擊退出,則可以退出該程序。 IP設(shè)置應(yīng)為所在主機(jī) 的IP地址,起始端口和結(jié)束端口應(yīng)為 065535之間的一個(gè)數(shù),且起始端口應(yīng)小于結(jié)束端 口的大小。線程數(shù)為0200之間的一個(gè)數(shù)。點(diǎn)擊開(kāi)始后就會(huì)運(yùn)行,直到掃描完畢顯示出開(kāi) 放端口,如果沒(méi)有開(kāi)放端口,則只顯示掃描完畢。功能分為以下

7、四模塊: 圖像顯示功能:顯示界面圖形。 端口掃描功能:掃描開(kāi)放的端口,并將掃描到的開(kāi)放端口號(hào)送到前臺(tái)。 多線程功能:當(dāng)客戶端要求與服務(wù)器端建立連接時(shí),服務(wù)器端就將用到多線程功 能,為每一個(gè)建立起來(lái)的連接創(chuàng)建一個(gè)線程。 異常拋出功能:對(duì)于明顯的錯(cuò)誤,提示出錯(cuò)誤的類型并結(jié)束程序的運(yùn)行。界面設(shè)置構(gòu)思圖序 A *1:拉小化、關(guān)閭抉±L2也址起去霍口|結(jié)卑站口|揪粗戟匚二I4寸錨能一豊亜眾4 4崔卡n界面使用構(gòu)思當(dāng)出現(xiàn)如圖所示的界面時(shí),填寫好要掃描的IP地址,需要掃描的端口范圍和線程數(shù), 單擊命令提示按鈕就可以開(kāi)始掃描,掃描結(jié)果就會(huì)顯示在中間的掃描結(jié)果顯示區(qū)域,在掃 描狀態(tài)顯示區(qū)就會(huì)顯示是否掃

8、描完畢。流程圖如下:四、詳細(xì)設(shè)計(jì)步驟本程序使用了為主要的Seanner類和Sean類。Scan類的作用是創(chuàng)建線程掃描端口, 然后把結(jié)果顯示到前臺(tái)。Sea nner類的作用是構(gòu)造前臺(tái)布局,調(diào)用 Scan類添加事件處理, 對(duì)輸入進(jìn)行錯(cuò)誤判斷,如果輸入不在允許的范圍之內(nèi)則顯示相關(guān)錯(cuò)誤。以下是四模塊的詳細(xì)設(shè)計(jì)步驟:4.1圖像顯示功能界面設(shè)計(jì)本程序采用小窗口形式,外圍大小為 170mm*90mr字體采用宋體五號(hào),結(jié)果顯示區(qū)域框架大小為160mm*45mr底色為粉紅,結(jié)果顯示字幕為主機(jī)地址加開(kāi)放端口。其余地方設(shè)置按鈕和掃描的主機(jī)地址、端口和線程數(shù)。設(shè)計(jì)的預(yù)計(jì)頁(yè)面圖形如圖:參豔程満口掃勵(lì)廢茸第読園園(藍(lán)魚)

9、圭機(jī)1P施揣口 o堵京揣口 口-8 -# -掃后結(jié)更豈示粉江託邑mJJ3JS狀態(tài):本程序調(diào)用一些類和包,比如軟件包java.awt.color、java.awt.event、io.lOException、Javax.Swing jvnet.substanee.*。1. java.awt.color 包:提供用于顏色空間的類。它包含了基于國(guó)際色彩聯(lián)盟 (ICC)配 置文件格式規(guī)范的顏色空間實(shí)現(xiàn)。 e.g. Result.setBackground(Color.PINK)設(shè)置窗口為粉 紅2. java.awt.eve nt 包:提供處理由AWT組件所激發(fā)的各類事件的接口和類。此包定義了事件和事件偵

10、聽(tīng)器,以及事件偵聽(tīng)器適配器,它是讓事件偵聽(tīng)器的編寫過(guò)程更為輕松 的便捷類。e.g.public void actio nPeformed(Actio nEve nt e) Stri ng cmd = e.getAct ion Comma nd();if(cmd.equals("Start")3. Javax.Swing:由所有Java圖形用戶界面(GUI)組件所構(gòu)成,它們可以提供比本地 平臺(tái)GUI組件更多的功能。Swi ng 包的 組成:javax.sw ing , javax.sw in g.borde , javax.sw in g.colorchooser, avax

11、.swing.even, javax.swing.filechooser, javax.swing.plaf, javax.swing.tree等接口-9 -常用Swing組件:按鈕:JButton文本區(qū):JTextArea文本字段:JTextField在本程序中使用如下:/設(shè)置主窗體位置和大小mai nFrame.setBou nds(180, 200, 550, 300);/設(shè)置掃描按鈕和退出按鈕Start.setActio nComma nd("Start");Start.addActio nListe ner(this);Exit.setActio nComma n

12、d("Exit");Exit.addActi on Liste ner(this);4.2端口掃描功能在本程序中后臺(tái)端口掃描關(guān)鍵代碼使用的兩個(gè)類,下面介紹這兩個(gè)類的常用方法。InetSocketAddress類構(gòu)造方法如下:InetSocketAddress(InetAddress addr, int port)根據(jù) IP 地址和端口號(hào)創(chuàng)建套接字地址。Socket類常用方法如下:Socket():通過(guò)系統(tǒng)默認(rèn)類型的SocketImpl創(chuàng)建未連接套接字Socket(InetAddress address, int port):創(chuàng)建一個(gè)流套接字并將其連接到指定IP地址的指定端口

13、號(hào)。void bin d(SocketAddress bin dpoi nt):將套接字綁定到本地地址。void close():關(guān)閉此套接字。void connect(SocketAddress endpoint, int timeout)將此套接字連接至U具有指定超時(shí)值的服務(wù)器。關(guān)鍵代碼如下:SocketAddress sockaddr = new In etSocketAddress(hostAddress, i);Socket sca ns=new Socket();int timeoutMs=50;scans.connect(sockaddr,timeoutMs); / 將 此套接字

14、連接 到具有 指定超 時(shí)值的 服務(wù)器 -8 -sea ns.close();/關(guān)閉此套接字4.3多線程功能用遞歸函數(shù)實(shí)驗(yàn)多線程使用關(guān)鍵算法如下:for(int i = minPort;i <= maxPort; ) if(i + threadNum) <= maxPort) new Scan (i, i + threadNum).start();i += threadNum; else new Sca n(i, maxPort).start();i += threadNum;4.4異常拋出功能使用io.lOException包:用來(lái)處理io的錯(cuò)誤,在以后的程序中調(diào)用這個(gè)函數(shù)的時(shí)候就

15、必須 用try和catch來(lái)捕獲異常,否則編譯會(huì)報(bào)錯(cuò),這主要涉及到j(luò)ava的安全機(jī)制。e.g try catch (NumberFormatExceptio n e1) DLGINFO.setText("錯(cuò)誤的端口號(hào)或線程數(shù)!端口號(hào)和線程數(shù)必須為整數(shù)!");return;4.5總流程圖如下:-11 -填寫IP地址,可填寫任意的個(gè)IP設(shè)置開(kāi)設(shè)置結(jié)束始端口 口,設(shè)置設(shè)置進(jìn)大小,設(shè)10655351程數(shù),置1之間的端0200之065535/ 口號(hào)且必 j間且必之間的/須為整/須為整端口號(hào)/數(shù),并且丿數(shù)于開(kāi)始點(diǎn)擊掃描可 以開(kāi)始掃描結(jié)果顯示結(jié)束程是,重新設(shè)置13 -四、結(jié)果測(cè)試與分析4

16、.1運(yùn)行結(jié)果1.運(yùn)行界面:14#玉防 11 2(1 J4 12 I iltJEKn : |0: I 'OOdJ 覆聲:_ 102. 未開(kāi)始掃描狀態(tài):掃辟爭(zhēng)扌融iKlU正常掃描時(shí):#4.起始端口設(shè)置有誤掃描開(kāi)始后狀態(tài)報(bào)錯(cuò):圖6圖75.結(jié)束端口設(shè)置有誤掃描開(kāi)始后狀態(tài)報(bào)錯(cuò):圖816 -6.線程數(shù)設(shè)置錯(cuò)誤報(bào)錯(cuò):圖97.另外我們計(jì)算了掃描器的掃描時(shí)間,我們能發(fā)現(xiàn)線程數(shù)的增多能有效減少掃描器的掃描時(shí)間圖10第一個(gè)紅框是線程數(shù)為10時(shí)的掃描時(shí)間,而線程數(shù)為20所用時(shí)間為3000ms可見(jiàn)線 程數(shù)增多縮短了掃描時(shí)間4.2防御措施根據(jù)防御原理,我們通過(guò)開(kāi)啟系統(tǒng)防火墻來(lái)對(duì)端口掃描進(jìn)行防御圖11防火墻關(guān)閉圖1

17、2防火墻開(kāi)啟從圖中可得知,開(kāi)啟防火墻之后,只能掃出端口912,902,443,掃描不出端口23,445,135,139??梢?jiàn)系統(tǒng)自帶防火墻能對(duì)防御端口掃描起到一定作用,但并不能夠完全 阻止,需要設(shè)計(jì)具有更嚴(yán)格規(guī)則的包過(guò)濾防火墻才行。4.3系統(tǒng)異常圖13系統(tǒng)異常當(dāng)線程數(shù)為100或過(guò)多時(shí),掃描結(jié)果已顯示掃描完成,但掃描器左下方的掃描狀態(tài)卻并沒(méi) 有顯示掃描完成,而是呈現(xiàn)正在掃描某一端口的情況,在后續(xù)的改進(jìn)中會(huì)加以改進(jìn)。五、存在的問(wèn)題1、由于對(duì)Java的編程掌握得不夠深入,所以程序的界面設(shè)計(jì)得不夠完美。我們通過(guò)調(diào)用一些包,盡可能優(yōu)化用戶界面,后續(xù)將對(duì)按鈕,皮膚等等進(jìn)行優(yōu)化。2、掃描狀態(tài)的輸出函數(shù)的速度

18、跟不上端口掃描的速度,最后程序掃描結(jié)束時(shí),掃描 狀態(tài)函數(shù)有時(shí)還在繼續(xù)運(yùn)行,程序運(yùn)行無(wú)法達(dá)到一致性。3. 本程序還不能實(shí)現(xiàn)對(duì)一整個(gè)網(wǎng)段的IP進(jìn)行端口掃描,我們考慮套更大的IP段for 循環(huán)來(lái)實(shí)現(xiàn),但因時(shí)間有限未能調(diào)試成功。4. 關(guān)于防御功能,我們采用的是系統(tǒng)自帶防火墻進(jìn)行防御,但并不能夠完全阻止,我 們的改進(jìn)思想是設(shè)計(jì)規(guī)則更為嚴(yán)格的包過(guò)濾防火墻進(jìn)行防御。六、總結(jié)本次設(shè)計(jì)我們選的課題是編寫一個(gè)簡(jiǎn)單的端口掃描程序,因此我們選擇eclipse使用Java語(yǔ)言進(jìn)行編寫。經(jīng)過(guò)這兩個(gè)星期的課程,通過(guò)圖書館和網(wǎng)上查找資料,順利完成了設(shè) 計(jì)和開(kāi)發(fā),端口掃描系統(tǒng)開(kāi)發(fā)完畢。系統(tǒng)基本符合要求,由于時(shí)間比較匆促,但還存在以 下一些小問(wèn)題,本次課程設(shè)計(jì)結(jié)束后還會(huì)繼續(xù)完善。在整個(gè)設(shè)計(jì)過(guò)程中,得到了老師和同學(xué)的幫助,在不斷學(xué)習(xí)的過(guò)程中我體會(huì)到:1、這次課程設(shè)計(jì)是一個(gè)不斷學(xué)習(xí)的過(guò)程,從設(shè)計(jì)初的模糊認(rèn)識(shí)到最后能夠順利完成, 我體會(huì)到在實(shí)踐中學(xué)習(xí)的重要性。2、設(shè)計(jì)過(guò)程中,由于要實(shí)現(xiàn)某些功能,網(wǎng)上資源解決了我的問(wèn)題。多借鑒網(wǎng)絡(luò)資源 也是學(xué)好軟件編程一個(gè)不錯(cuò)的方法,但自己要有創(chuàng)新。關(guān)于本課題,我們還認(rèn)識(shí)到,端口掃描是綜合掃描器最基礎(chǔ)的功能,也是黑客攻擊的 基本步驟,因此,掌握端口掃描的常用技術(shù)和防范措施對(duì)維護(hù)系統(tǒng)安全有重要作用。端口 掃描不僅可以得知系統(tǒng)哪

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論