端口掃描器的設計與實現_第1頁
端口掃描器的設計與實現_第2頁
端口掃描器的設計與實現_第3頁
端口掃描器的設計與實現_第4頁
端口掃描器的設計與實現_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 網絡信息安全課程設計河南理工大學計算機科學與技術學院課程設計報告2015 2016學年第一學期課程名稱 網絡與信息安全 設計題目 端口掃描器的設計與實現姓 名 范騰飛 學 號 311309040113 專業班級 網絡1301 指導教師 葉 青 2016 年 1 月 16 日 目錄1 課程設計的目的.2 課程設計的要求.3 端口掃描器相關知識. 3.1:端口的基本概念.3.2:常見的端口介紹.3.3:端口掃描器基本原理.3.4:端口掃描常用技術.4 實驗流程. 4.1:基本步驟. 4.2:主要函數. 4.3流程圖.5 實驗結果.6 總結.一:課程設計的目的 模擬常用的端口掃描軟件原理,利用So

2、cket實現基本的端口掃描功能。掃描器是網絡信息收集的一種方法,從功能上可分為漏洞掃描器和端口掃描器。通過此次課程設計,能夠掌握漏洞、端口的基礎知識,掌握掃描器的基本原理并設計實現端口掃描和漏洞掃描程序。二:課程設計要求本課程設計的目標是設計并實現一個網絡掃描器,它通過與目標主機TCP/IP端口建立連接并請求某些服務,記錄目標主機的應答,分析目標主機相關信息,從而發現目標主機某些內在的安全弱點。掃描器通常分兩類:漏洞掃描器和端口掃描器。端口掃描器用來掃描目標機開放的服務端口以及端口相關信息。漏洞掃描器檢查目標中可能包含的大量已知的漏洞,如果發現潛在的漏洞可能性,就報告給掃描者。網絡漏洞端口掃描

3、器對目標系統進行檢測時,首先探測目標系統的存活主機,對存活主機進行端口掃描,確定系統開放的端口,同時根據協議指紋技術識別出主機的操作系統類型。然后掃描器對開放的端口進行網絡服務類型的識別,確定其提供的網絡服務。漏洞掃描器根據目標系統的操作系統平臺和提供的網絡服務,調用漏洞資料庫中已知的各種漏洞進行逐一檢測,通過對探測響應數據包的分析判斷是否存在漏洞。在分析總結目前現有的掃描軟件,在掌握掃描器的原理基礎上,首先設計、實現一種端口掃描程序,存儲掃描結果。在此基礎上,有余力的同學對已經開放的重要端口有具體漏洞分析檢測。程序具體要求實現以下任一程序:高效端口掃描器設計與實現:參照常見端口掃描器,在局域

4、網內,能對所有計算機進行常用端口的高速掃描,給出掃描結果。另外根據配置不同的網段,實現正對校園網絡的基于網段的高速掃描。高效的漏洞掃描器的設計與實現:設計網絡漏洞掃描儀的結構,建立常見的漏洞庫,并基于該漏洞庫,實現高效的基于網段的漏洞掃描器。主機脆弱性分析系統:將漏洞和端口掃描結合起來,實現針對主機的脆弱性分析系統。三: 相關知識 1.端口的基本概念: 我們這里所說的端口,不是計算機硬件的i/o端口,而是軟件形式上的概念。服務器可以向外提供多種服務,比如,一臺服務器可以同時是web服務器,也可以是ftp服務器,同時,它也可以是郵件服務器。為什么一臺服務器可以同時提供那么多的服務呢?其中一個很主

5、要的方面,就是各種服務采用不同的端口分別提供不同的服務。 根據提供服務類型的不同,端口分為兩種,一種是tcp端口,一種是udp端口。計算機之間相互通信的時候,分為兩種方式:一種是發送信息以后,可以確認信息是否到達,也就是有應答的方式,這種方式大多采用tcp協議;一種是發送以后就不管了,不去確認信息是否到達,這種方式大多采用udp協議。對應這兩種協議的服務提供的端口,也就分為tcp端口和udp端口。那么,如果攻擊者使用軟件掃描目標計算機,得到目標計算機打開的端口,也就了解了目標計算機提供了那些服務。2. 常見端口介紹 端口:21 服務:FTP 說明:FTP服務器所開放的端口,用于上傳、下載。最常

6、見的攻擊者用于尋找打開anonymous的FTP服務器的方法。這些服務器帶有可讀寫的目錄。木馬Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所開放的端口。 端口:23 服務:Telnet 說明:遠程登錄,入侵者在搜索遠程登錄UNIX的服務。大多數情況下掃描這一端口是為了找到機器運行的*作系統。還有使用其他技術,入侵者也會找到密碼。木馬Tiny Telnet Server就開放這個端口 端口:25 服務:SMTP 說明:SMTP服務器所開放的端口,用于發送郵件。入侵者尋找SMTP服務器是為了傳遞他們的SPAM。入侵者的帳戶被關

7、閉,他們需要連接到高帶寬的E-MAIL服務器上,將簡單的信息傳遞到不同的地址。木馬Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都開放這個端口 端口:80 服務:HTTP 說明:用于網頁瀏覽。木馬Executor開放此端口。3. 端口掃描器功能簡介: 服務器上所開放的端口就是潛在的通信通道,也就是一個入侵通道。對目標計算機進行端口掃描,能得到許多有用的信息,進行端口掃描的方法很多,可以是手工進行掃描、也可以用端口掃描軟件進行。 掃描器通過選用遠程TCP/IP不同的端口的服務,并記錄目標給予的回答

8、,通過這種方法可以搜集到很多關于目標主機的各種有用的信息,例如遠程系統是否支持匿名登陸、是否存在可寫的FTP目錄、是否開放TELNET服務和HTTPD服務等。4.常用端口掃描技術: 1、TCP connect()掃描: 這是最基本的TCP掃描,操作系統提供的connect()系統調用可以用來與每一個感興趣的目標計算機的端口進行連接。如果端口處于偵聽狀態,那么connect()就能成功。否則,這個端口是不能用的,即沒有提供服務。這個技術的一個最大的優點是,你不需要任何權限。系統中的任何用戶都有權利使用這個調用。另一個好處就是速度,如果對每個目標端口以線性的方式,使用單獨的connect()調用,

9、那么將會花費相當長的時間,使用者可以通過同時打開多個套接字來加速掃描。使用非阻塞I/O允許你設置一個低的時間用盡周期,同時觀察多個套接字。但這種方法的缺點是很容易被察覺,并且被防火墻將掃描信息包過濾掉。目標計算機的logs文件會顯示一連串的連接和連接出錯消息,并且能很快使它關閉。 2、TCP SYN掃描: 這種技術通常認為是“半開放”掃描,這是因為掃描程序不必要打開一個完全的TCP連接。掃描程序發送的是一個SYN數據包,好象準備打開一個實際的連接并等待反應一樣(參考TCP的三次握手建立一個TCP連接的過程)。一個SYN|ACK的返回信息表示端口處于偵聽狀態:返回RST表示端口沒有處于偵聽態。如

10、果收到一個SYN|ACK,則掃描程序必須再發送一個RST信號,來關閉這個連接過程。這種掃描技術的優點在于一般不會在目標計算機上留下記錄,但這種方法的缺點是必須要有root權限才能建立自己的SYN數據包。 3、TCP FIN 掃描: SYN掃描雖然是“半開放”方式掃描,但在某些時候也不能完全隱藏掃描者的動作,防火墻和包過濾器會對管理員指定的端口進行監視,有的程序能檢測到這些掃描。相反,FIN數據包在掃描過程中卻不會遇到過多問題,這種掃描方法的思想是關閉的端口會用適當的RST來回復FIN數據包。另一方面,打開的端口會忽略對FIN數據包的回復。這種方法和系統的實現有一定的關系,有的系統不管端口是否打

11、開都會回復RST,在這種情況下此種掃描就不適用了。另外這種掃描方法可以非常容易的區分服務器是運行Unix系統還是NT系統。 4、IP段掃描: 這種掃描方式并不是新技術,它并不是直接發送TCP探測數據包,而是將數據包分成兩個較小的IP段。這樣就將一個TCP頭分成好幾個數據包,從而過濾器就很難探測到。但必須小心:一些程序在處理這些小數據包時會有些麻煩。 5、TCP 反向 ident掃描: ident 協議允許(rfc1413)看到通過TCP連接的任何進程的擁有者的用戶名,即使這個連接不是由這個進程開始的。例如掃描者可以連接到http端口,然后用identd來發現服務器是否正在以root權限運行。這

12、種方法只能在和目標端口建立了一個完整的TCP連接后才能看到。 6、FTP 返回攻擊: FTP協議的一個有趣的特點是它支持代理(proxy)FTP連接,即入侵者可以從自己的計算機和目標主機的FTP server-PI(協議解釋器)連接,建立一個控制通信連接。然后請求這個server-PI激活一個有效的server-DTP(數據傳輸進程)來給Internet上任何地方發送文件。對于一個User-DTP,盡管RFC明確地定義請求一個服務器發送文件到另一個服務器是可以的,但現在這個方法并不是非常有效。這個協議的缺點是“能用來發送不能跟蹤的郵件和新聞,給許多服務器造成打擊,用盡磁盤,企圖越過防火墻”。四

13、:實驗流程 步驟: 1.先輸入想要掃描的網段; 2.然后將輸入的網段轉化為可排序的ip數組 3.建立多個線程,每個線程掃描一個ip。每個線程內先建立數據流套接字,然后綁定 ip端口進行掃描。將掃描端口保存到g_map_ScanResult。 4.清理結束后進程,輸出結果。 5.計算所用時間。 程序中主要的函數: int main()/主函數 InitProc();/初始化 UserInput();/輸入 ScanIp(g_startIp,g_endIp,g_map_ScanResult);/開始掃描 CleanProc();/清理結束后進程 OutPutScanInfo();/輸出結果 DWO

14、RD WINAPI ThreadFunc(LPVOID th_para)/掃描線程每一個ip unsigned long InvertIp(unsigned long srcIp) /將ip化為可比較的 int GetIpToScan(const string &StartIp, const string &EndIp, vector &vec_ip)/將所有ip排序放在一個數組內流程圖: ThreadFunc函數: 主流程圖:結束計算時間ScanIp掃描輸入ip斷 初始化 開始五:結果 開始界面: 掃描界面:結果界面:六:總結 通過這次端口掃描器的實驗深化了信息對抗,信息安全的意識。對于網絡掃描器有了整體上的認識。了解了socket函數的基本用法和端口掃描的基本原理,更加熟練掌握了c+語言。在這次設計中在處理線程上遇到了很大麻煩,不過通過上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論