版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、網(wǎng)絡(luò)安全課程設(shè)計(jì)報(bào)告題 目: 端口掃描程序設(shè)計(jì)專業(yè)網(wǎng)絡(luò)工程學(xué)號(hào)姓名 B12070405彭慧珺B12070408魏園園指導(dǎo)教師董小燕日期2014.12.2評 分項(xiàng) 分 評秀好 良等 中差原況 情 實(shí) 匕匕 厶冃 功 題 諜寫 書 告簡 短 評 語日月 各年評分等級(jí)備注分細(xì)端口掃描程序設(shè)計(jì)、設(shè)計(jì)目的和任務(wù)掃描器是網(wǎng)絡(luò)信息收集的一種方法,是入侵者搜集信息的幾種常用手法之一,也正是 這一過程最容易使入侵者暴露自己的身份和意圖。如果入侵者掌握了目標(biāo)主機(jī)開放了哪些 服務(wù),運(yùn)行何種操作系統(tǒng),他們就能夠使用相應(yīng)的手段實(shí)現(xiàn)入侵。從功能上可分為漏洞掃 描器和端口掃描器。根據(jù)提供服務(wù)類型的不同,端口分為兩種,一種是
2、TCP端 口,一種是UDP端口。通過此次課程設(shè)計(jì),能夠掌握端口的基礎(chǔ)知識(shí),掌握掃描器的基本原理并設(shè)計(jì) 實(shí)現(xiàn)端口掃描。本程序主要實(shí)現(xiàn):簡易的端口掃描,支持多線程,并可指定線程數(shù)進(jìn)行端口掃描,并 記錄時(shí)間;能對指定的主機(jī)進(jìn)行端口掃描;能掃描特定的部分端口號(hào)或?qū)χ付ǖ亩丝诙蝺?nèi) 的端口進(jìn)行逐個(gè)掃描;能識(shí)別部分開放端口所提供的服務(wù);以及使端口掃描器具有簡單易 懂美觀的用戶圖形界面。二、設(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ù)傳輸。常見的包括FTP服務(wù)的21端口,Tel net服務(wù)的23端口,SMTP 服務(wù)的25端口,以及HTTP月艮務(wù)的80端口等等。? UDP端口:即用戶數(shù)據(jù)包協(xié)議端口,無需在客戶端和服務(wù)器之間建立連接,可靠性得不到保障。常見的有DNS月艮務(wù)的53端口,SNM(簡單網(wǎng)絡(luò)管理協(xié)議)服務(wù)的161 端口,QICQ使用的8000和4000端口等等。本程序通過 TCP connect 掃描:通過調(diào)用 socket 函數(shù) connect() 連接到目標(biāo)計(jì)算機(jī)上,完成一次完整的三次握手過程。如果端口處于偵聽狀態(tài),那么conn
4、ect() 就能成功返回。否則,這個(gè)端口不可用,即沒有提供服務(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)。換句話說計(jì)算機(jī)的所有對外通訊的端口都存在潛在的危險(xiǎn) ”而一些系統(tǒng)必要的通訊端口,如訪問網(wǎng)頁需要 的HTTP (80端口); QQ (4000端口)等不能被關(guān)閉。2 .檢查各端口,有端口掃描的癥狀時(shí),立即屏蔽該端口這種預(yù)防端
5、口掃描的方式顯然用戶自己手工是不可能完成的,或者說完成起來相當(dāng)困 難,需要借助軟件。這些軟件就是我們常用的網(wǎng)絡(luò)防火墻防火墻的工作原理是:首先檢查每個(gè)到達(dá)你的電腦的數(shù)據(jù)包,在這個(gè)包被你機(jī)上運(yùn)行的任何軟件看到之前,防火墻有完全 的否決權(quán),可以禁止你的電腦接收In ternet上的任何東西。當(dāng)?shù)谝粋€(gè)請求建立連接的包被 你的電腦回應(yīng)后,一個(gè)“ TCP/IP端 口”被打開;端口掃描時(shí),對方計(jì)算機(jī)不斷和本地計(jì)算機(jī) 建立連接,并逐漸打開各個(gè)服務(wù)所對應(yīng)的“ TCP/IP端 口”及閑置端口,防火墻經(jīng)過自帶的攔截規(guī)則判斷,就能夠知道對方是否正進(jìn)行端口掃描,并攔截掉對方發(fā)送過來的所有掃描需 要的數(shù)據(jù)包。三、實(shí)驗(yàn)環(huán)境
6、和總體設(shè)計(jì)3.1實(shí)驗(yàn)環(huán)境開發(fā)工具:J2SDK 1.7.0 Eclipse語言: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ī)的開放端口,并顯示在主窗體中;點(diǎn)擊退出,則可以退出該程序。 IP設(shè)置應(yīng)為所在主機(jī) 的IP地址,起始端口和結(jié)束端口應(yīng)為 065535之間的一個(gè)數(shù),且起始端口應(yīng)小于結(jié)束端 口的大小。線程數(shù)為0200之間的一個(gè)數(shù)。點(diǎn)擊開始后就會(huì)運(yùn)行,直到掃描完畢顯示出開 放端口,如果沒有開放端口,則只顯示掃描完畢。功能分為以下
7、四模塊: 圖像顯示功能:顯示界面圖形。 端口掃描功能:掃描開放的端口,并將掃描到的開放端口號(hào)送到前臺(tái)。 多線程功能:當(dāng)客戶端要求與服務(wù)器端建立連接時(shí),服務(wù)器端就將用到多線程功 能,為每一個(gè)建立起來的連接創(chuàng)建一個(gè)線程。 異常拋出功能:對于明顯的錯(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ù), 單擊命令提示按鈕就可以開始掃描,掃描結(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類添加事件處理, 對輸入進(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ī)地址加開放端口。其余地方設(shè)置按鈕和掃描的主機(jī)地址、端口和線程數(shù)。設(shè)計(jì)的預(yù)計(jì)頁面圖形如圖:參豔程満口掃勵(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 包:提供用于顏色空間的類。它包含了基于國際色彩聯(lián)盟 (ICC)配 置文件格式規(guī)范的顏色空間實(shí)現(xiàn)。 e.g. Result.setBackground(Color.PINK)設(shè)置窗口為粉 紅2. java.awt.eve nt 包:提供處理由AWT組件所激發(fā)的各類事件的接口和類。此包定義了事件和事件偵
10、聽器,以及事件偵聽器適配器,它是讓事件偵聽器的編寫過程更為輕松 的便捷類。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():通過系統(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包:用來處理io的錯(cuò)誤,在以后的程序中調(diào)用這個(gè)函數(shù)的時(shí)候就
15、必須 用try和catch來捕獲異常,否則編譯會(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è)置開設(shè)置結(jié)束始端口 口,設(shè)置設(shè)置進(jìn)大小,設(shè)10655351程數(shù),置1之間的端0200之065535/ 口號(hào)且必 j間且必之間的/須為整/須為整端口號(hào)/數(shù),并且丿數(shù)于開始點(diǎn)擊掃描可 以開始掃描結(jié)果顯示結(jié)束程是,重新設(shè)置13 -四、結(jié)果測試與分析4
16、.1運(yùn)行結(jié)果1.運(yùn)行界面:14#玉防 11 2(1 J4 12 I iltJEKn : |0: I 'OOdJ 覆聲:_ 102. 未開始掃描狀態(tài):掃辟爭扌融iKlU正常掃描時(shí):#4.起始端口設(shè)置有誤掃描開始后狀態(tài)報(bào)錯(cuò):圖6圖75.結(jié)束端口設(shè)置有誤掃描開始后狀態(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可見線 程數(shù)增多縮短了掃描時(shí)間4.2防御措施根據(jù)防御原理,我們通過開啟系統(tǒng)防火墻來對端口掃描進(jìn)行防御圖11防火墻關(guān)閉圖1
17、2防火墻開啟從圖中可得知,開啟防火墻之后,只能掃出端口912,902,443,掃描不出端口23,445,135,139??梢娤到y(tǒng)自帶防火墻能對防御端口掃描起到一定作用,但并不能夠完全 阻止,需要設(shè)計(jì)具有更嚴(yán)格規(guī)則的包過濾防火墻才行。4.3系統(tǒng)異常圖13系統(tǒng)異常當(dāng)線程數(shù)為100或過多時(shí),掃描結(jié)果已顯示掃描完成,但掃描器左下方的掃描狀態(tài)卻并沒 有顯示掃描完成,而是呈現(xiàn)正在掃描某一端口的情況,在后續(xù)的改進(jìn)中會(huì)加以改進(jìn)。五、存在的問題1、由于對Java的編程掌握得不夠深入,所以程序的界面設(shè)計(jì)得不夠完美。我們通過調(diào)用一些包,盡可能優(yōu)化用戶界面,后續(xù)將對按鈕,皮膚等等進(jìn)行優(yōu)化。2、掃描狀態(tài)的輸出函數(shù)的速度
18、跟不上端口掃描的速度,最后程序掃描結(jié)束時(shí),掃描 狀態(tài)函數(shù)有時(shí)還在繼續(xù)運(yùn)行,程序運(yùn)行無法達(dá)到一致性。3. 本程序還不能實(shí)現(xiàn)對一整個(gè)網(wǎng)段的IP進(jìn)行端口掃描,我們考慮套更大的IP段for 循環(huán)來實(shí)現(xiàn),但因時(shí)間有限未能調(diào)試成功。4. 關(guān)于防御功能,我們采用的是系統(tǒng)自帶防火墻進(jìn)行防御,但并不能夠完全阻止,我 們的改進(jìn)思想是設(shè)計(jì)規(guī)則更為嚴(yán)格的包過濾防火墻進(jìn)行防御。六、總結(jié)本次設(shè)計(jì)我們選的課題是編寫一個(gè)簡單的端口掃描程序,因此我們選擇eclipse使用Java語言進(jìn)行編寫。經(jīng)過這兩個(gè)星期的課程,通過圖書館和網(wǎng)上查找資料,順利完成了設(shè) 計(jì)和開發(fā),端口掃描系統(tǒng)開發(fā)完畢。系統(tǒng)基本符合要求,由于時(shí)間比較匆促,但還存在以 下一些小問題,本次課程設(shè)計(jì)結(jié)束后還會(huì)繼續(xù)完善。在整個(gè)設(shè)計(jì)過程中,得到了老師和同學(xué)的幫助,在不斷學(xué)習(xí)的過程中我體會(huì)到:1、這次課程設(shè)計(jì)是一個(gè)不斷學(xué)習(xí)的過程,從設(shè)計(jì)初的模糊認(rèn)識(shí)到最后能夠順利完成, 我體會(huì)到在實(shí)踐中學(xué)習(xí)的重要性。2、設(shè)計(jì)過程中,由于要實(shí)現(xiàn)某些功能,網(wǎng)上資源解決了我的問題。多借鑒網(wǎng)絡(luò)資源 也是學(xué)好軟件編程一個(gè)不錯(cuò)的方法,但自己要有創(chuàng)新。關(guān)于本課題,我們還認(rèn)識(shí)到,端口掃描是綜合掃描器最基礎(chǔ)的功能,也是黑客攻擊的 基本步驟,因此,掌握端口掃描的常用技術(shù)和防范措施對維護(hù)系統(tǒng)安全有重要作用。端口 掃描不僅可以得知系統(tǒng)哪
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《網(wǎng)店色彩設(shè)計(jì)》課件
- 《神經(jīng)癥年制》課件
- 《證券上市》課件
- 2024年農(nóng)業(yè)部門抗旱工作總結(jié)范文
- 2025年高考數(shù)學(xué)一輪復(fù)習(xí)之冪函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)
- 單位管理制度匯編大全人力資源管理
- 單位管理制度合并匯編【人事管理】
- 單位管理制度分享合集人員管理十篇
- 單位管理制度范例匯編人事管理
- 單位管理制度呈現(xiàn)大全人事管理十篇
- 2024年中國輔酶Q10膠囊行業(yè)投資分析、市場運(yùn)行態(tài)勢、未來前景預(yù)測報(bào)告
- FANUC機(jī)器人培訓(xùn)教程(完成版)
- 玉溪大紅山鐵礦二期北采區(qū)采礦施工組織設(shè)計(jì)
- 中醫(yī)診療技術(shù)操作規(guī)程
- 2024年《多媒體技術(shù)與應(yīng)用》 考試題庫及答案
- 2024年外研版九年級(jí)英語上冊知識(shí)點(diǎn)總結(jié)
- 2024新教科版四年級(jí)上冊科學(xué)知識(shí)點(diǎn)總結(jié)精簡版
- (完整)北京版小學(xué)英語1至6年級(jí)詞匯(帶音標(biāo))
- 《朝花夕拾》閱讀推進(jìn)課 教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語文七年級(jí)下冊
- 項(xiàng)目駐場服務(wù)合同協(xié)議書
- 終止合同告知函 委婉
評論
0/150
提交評論