




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、網絡安全課程設計報告題 目: 端口掃描程序設計 專 業 網絡工程 學 號 姓 名 B12070405 彭慧珺 B12070408 魏園園 指 導 教 師 董小燕 日 期 2014.12.2 評 分 分 細 則評分項優秀良好中等差遵守機房規章制度實驗原理分析與設計課題功能實現情況 設計驗收與答辯 課程設計報告書寫簡 短 評 語教師簽名: 年 月 日評分等級備注端口掃描程序設計一、 設計目的和任務掃描器是網絡信息收集的一種方法,是入侵者搜集信息的幾種常用手法之一,也正是這一過程最容易使入侵者暴露自己的身份和意圖。如果入侵者掌握了目標主機開放了哪些服務,運行何種操作系統,他們就能夠使用相應的手段實現
2、入侵。從功能上可分為漏洞掃描器和端口掃描器。根據提供服務類型的不同,端口分為兩種,一種是TCP端口,一種是UDP端口。通過此次課程設計,能夠掌握端口的基礎知識,掌握掃描器的基本原理并設計實現端口掃描。本程序主要實現:簡易的端口掃描,支持多線程,并可指定線程數進行端口掃描,并記錄時間;能對指定的主機進行端口掃描;能掃描特定的部分端口號或對指定的端口段內的端口進行逐個掃描;能識別部分開放端口所提供的服務;以及使端口掃描器具有簡單易懂美觀的用戶圖形界面。二、 設計原理2.1關于攻擊 Internet的網絡通信大多是建立在TCP和UDP協議之上的,各個主機遵循著TCP/IP協議
3、封裝數據包進行通信。 根據提供服務類型的不同,端口分為兩種,一種是TCP端口,一種是UDP端口。Ø TCP端口:即傳輸控制協議端口,需要在客戶端和服務器之間建立連接,這樣可以提供可靠的數據傳輸。常見的包括FTP服務的21端口,Telnet服務的23端口,SMTP服務的25端口,以及HTTP服務的80端口等等。Ø UDP端口:即用戶數據包協議端口,無需在客戶端和服務器之間建立連接,可靠性得不到保障。常見的有DNS服務的53端口,SNMP(簡單網絡管理協議)服務的161端口,QICQ使用的8000和4000端口等等。本程序通過TCP
4、 connect掃描: 通過調用socket函數connect()連接到目標計算機上,完成一次完整的三次握手過程。如果端口處于偵聽狀態,那么connect()就能成功返回。否則,這個端口不可用,即沒有提供服務。 優點:穩定可靠,不需要特殊的權限。 缺點:掃描方式不隱蔽,服務器日志會記錄下大量密集的連接和錯誤記錄 ,并容易被防火墻發現和屏蔽。2.2 關于防御 1 關閉閑置和有潛在危險的端口 這個方法有些“死板”,它的本質是將所有用
5、戶需要用到的正常計算機端口外的其他端口都關閉掉。因為就黑客而言,所有的端口都可能成為攻擊的目標。換句話說“計算機的所有對外通訊的端口都存在潛在的危險”,而一些系統必要的通訊端口,如訪問網頁需要的HTTP(80端口);QQ(4000端口)等不能被關閉。 2 檢查各端口,有端口掃描的癥狀時,立即屏蔽該端口 這種預防端口掃描的方式顯然用戶自己手工是不可能完成的,或者說完成起來相當困難,需要借助軟件。這些軟件就是我們常用的網絡防火墻.防火墻的工作原理是:首先檢查每個到達你的電腦的數據包,在這個包被你機上運行的任何軟件看到之前,防火墻有完全的否決權,可以禁止你的電腦接收Internet上的任何
6、東西。當第一個請求建立連接的包被你的電腦回應后,一個“TCP/IP端口”被打開;端口掃描時,對方計算機不斷和本地計算機建立連接,并逐漸打開各個服務所對應的“TCP/IP端口”及閑置端口,防火墻經過自帶的攔截規則判斷,就能夠知道對方是否正進行端口掃描,并攔截掉對方發送過來的所有掃描需要的數據包。三、 實驗環境和總體設計 3.1實驗環境開發工具:J2SDK 1.7.0 Eclipse語言:Java運行環境:Windows 2000以上3.2總體設計多線程端口掃描器是實現計算機的端口的掃描,只要在在前臺設置好所要掃描的IP、起始端口、結束端口以及所要用到的線程數,點擊掃描,就可以掃描到所輸入IP地址
7、主機的開放端口,并顯示在主窗體中;點擊退出,則可以退出該程序。IP設置應為所在主機的IP地址,起始端口和結束端口應為065535之間的一個數,且起始端口應小于結束端口的大小。線程數為0200之間的一個數。點擊開始后就會運行,直到掃描完畢顯示出開放端口,如果沒有開放端口,則只顯示掃描完畢。功能分為以下四模塊: 圖像顯示功能:顯示界面圖形。端口掃描功能:掃描開放的端口,并將掃描到的開放端口號送到前臺。 多線程功能:當客戶端要求與服務器端建立連接時,服務器端就將用到多線程功能,為每一個建立起來的連接創建一個線程。 異常拋出功能:對于明顯的錯誤,提示出錯誤的類型并結束程序的運行。界面設置構思圖 圖1界
8、面使用構思當出現如圖所示的界面時,填寫好要掃描的IP地址,需要掃描的端口范圍和線程數,單擊命令提示按鈕就可以開始掃描,掃描結果就會顯示在中間的掃描結果顯示區域,在掃描狀態顯示區就會顯示是否掃描完畢。流程圖如下:界面出現填寫IP地址或者用默認的IP設置掃描需要的線程數或者是用默認的線程數單擊命令按鈕開始掃描掃描結束,顯示結果顯示在結果顯示區域是否繼續退出結束否是四、詳細設計步驟本程序使用了為主要的Scanner類和Scan類。Scan類的作用是創建線程掃描端口,然后把結果顯示到前臺。Scanner類的作用是構造前臺布局,調用Scan類添加事件處理,對輸入進行錯誤判斷,如果輸入不在允許的范圍之內則
9、顯示相關錯誤。以下是四模塊的詳細設計步驟:4.1 圖像顯示功能界面設計本程序采用小窗口形式,外圍大小為170mm*90mm,字體采用宋體五號,結果顯示區域框架大小為160mm*45mm,底色為粉紅,結果顯示字幕為主機地址加開放端口。其余地方設置按鈕和掃描的主機地址、端口和線程數。設計的預計頁面圖形如圖:圖2本程序調用一些類和包,比如軟件包 java.awt.color 、java.awt.event、io.IOException、Javax.Swing、jvnet.substance.*。1 java.awt.color包:提供用于顏色空間的類。它包含了基于國際色彩聯盟 (ICC) 配置文件格
10、式規范的顏色空間實現。e.g. Result.setBackground(Color.PINK);/設置窗口為粉紅2. java.awt.event 包:提供處理由 AWT 組件所激發的各類事件的接口和類。此包定義了事件和事件偵聽器,以及事件偵聽器適配器,它是讓事件偵聽器的編寫過程更為輕松的便捷類。 e.g. public void actionPerformed(ActionEvent e) String cmd = e.getActionCommand(); if(cmd.equals("Start") 3. Javax.Swing:由所有Java圖形用戶界面(GUI)
11、組件所構成,它們可以提供比本地平臺GUI組件更多的功能。Swing包的組成:javax.swing,javax.swing.borde,javax.swing.colorchooser,avax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.tree等接口常用Swing組件:按鈕:JButton文本區:JTextArea文本字段:JTextField在本程序中使用如下:/ 設置主窗體位置和大小mainFrame.setBounds(180, 200, 550, 300);/ 設置掃描按鈕和退出按鈕Start.s
12、etActionCommand("Start");Start.addActionListener(this);Exit.setActionCommand("Exit");Exit.addActionListener(this);4.2端口掃描功能在本程序中后臺端口掃描關鍵代碼使用的兩個類,下面介紹這兩個類的常用方法。InetSocketAddress類構造方法如下:l InetSocketAddress(InetAddress addr, int port):根據 IP 地址和端口號創建套接字地址。Socket類常用方法如下:l Socket():通過系
13、統默認類型的 SocketImpl 創建未連接套接字 l Socket(InetAddress address, int port):創建一個流套接字并將其連接到指定 IP 地址的指定端口號。l void bind(SocketAddress bindpoint):將套接字綁定到本地地址。l void close():關閉此套接字。l void connect(SocketAddress endpoint, int timeout):將此套接字連接到具有指定超時值的服務器。關鍵代碼如下:SocketAddress sockaddr = new InetSocketAddress(hostAdd
14、ress, i);Socket scans=new Socket();int timeoutMs=50; scans.connect(sockaddr, timeoutMs); / 將此套接字連接到具有指定超時值的服務器 scans.close(); / 關閉此套接字。4.3 多線程功能用遞歸函數實驗多線程使用關鍵算法如下:for(int i = minPort;i <= maxPort; ) if(i + threadNum) <= maxPort) new Scan(i, i + threadNum).start();i += threadNum;else new Scan(i
15、, maxPort).start();i += threadNum; 4.4 異常拋出功能使用io.IOException包:用來處理io的錯誤,在以后的程序中調用這個函數的時候就必須用try和catch來捕獲異常,否則編譯會報錯,這主要涉及到java的安全機制。e.gtry . catch (NumberFormatException e1) DLGINFO.setText("錯誤的端口號或線程數!端口號和線程數必須為整數!");return;4.5總流程圖如下:在Eclipse中右擊,選擇運行方式,JAVA應用程序填寫IP地址,可填寫任意的一個IP出現程序界面設置開始端
16、口大小,設置065535之間的端口號且必須為整數設置結束口,設置065535之間的端口號且必須為整數,并且大于開始端口設置進程數,0200之間且必須為整數點擊掃描可以開始掃描結果顯示是否繼續掃描結束程序否,點擊退出是,重新設置四、 結果測試與分析4.1運行結果1.運行界面:圖32.未開始掃描狀態:圖43.正常掃描時:圖54.起始端口設置有誤掃描開始后狀態報錯:圖6圖75.結束端口設置有誤掃描開始后狀態報錯:圖86.線程數設置錯誤報錯:圖97.另外我們計算了掃描器的掃描時間,我們能發現線程數的增多能有效減少掃描器的掃描時間圖10第一個紅框是線程數為10時的掃描時間,而線程數為20所用時間為300
17、0ms,可見線程數增多縮短了掃描時間4.2防御措施 根據防御原理,我們通過開啟系統防火墻來對端口掃描進行防御圖11 防火墻關閉圖12 防火墻開啟從圖中可得知,開啟防火墻之后,只能掃出端口912,902,443,掃描不出端口23,445,135,139。可見系統自帶防火墻能對防御端口掃描起到一定作用,但并不能夠完全阻止,需要設計具有更嚴格規則的包過濾防火墻才行。4.3 系統異常圖13 系統異常當線程數為100或過多時,掃描結果已顯示掃描完成,但掃描器左下方的掃描狀態卻并沒有顯示掃描完成,而是呈現正在掃描某一端口的情況,在后續的改進中會加以改進。五、存在的問題1、由于對Java的編程掌握得不夠深入
18、,所以程序的界面設計得不夠完美。我們通過調用一些包,盡可能優化用戶界面,后續將對按鈕,皮膚等等進行優化。 2、掃描狀態的輸出函數的速度跟不上端口掃描的速度,最后程序掃描結束時,掃描狀態函數有時還在繼續運行,程序運行無法達到一致性。 3.本程序還不能實現對一整個網段的IP進行端口掃描,我們考慮套更大的IP段for循環來實現,但因時間有限未能調試成功。4.關于防御功能,我們采用的是系統自帶防火墻進行防御,但并不能夠完全阻止,我們的改進思想是設計規則更為嚴格的包過濾防火墻進行防御。六、總結本次設計我們選的課題是編寫一個簡單的端口掃描程序,因此我們選擇eclipse使用Java語言進行編寫。經過這兩個星期的課程,通過圖書館和網上查找資料,順利完成了設計和開發,端口掃描系統開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安農村灌溉管理辦法
- 財政調研經費管理辦法
- 學校物資申請管理辦法
- 學校作業改革管理辦法
- 什么是面試培訓課件
- 創意繪畫培訓課件下載
- 東莞初中面試數學試卷
- 福州九上開門考數學試卷
- 大學英語拓展0-英美文化習俗之英國歷史文化舉要
- 廣東博羅縣期中數學試卷
- 港口裝卸作業培訓
- 2025年湖北省武漢市中考數學真題(無答案)
- 鉗工考試試題及答案
- 2025年廣東省佛山市順德區中考二模物理試題(含答案)
- 拖欠維修費車輛以車抵債協議范本
- 研發項目變更管理制度
- 2024-2025學年下學期小學數學人教版三年級期末必刷常考題之復式統計表
- 2025至2030中國復印機行業發展趨勢分析與未來投資戰略咨詢研究報告
- 暑假安全家長會4
- 瑞幸大學題目及答案
- 消防監督檢查員崗位技能考核題庫
評論
0/150
提交評論