版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
網(wǎng)絡(luò)端口掃描工具設(shè)計與實現(xiàn)學(xué)生姓名: 指引教師:摘要本課程設(shè)計是在Windows系統(tǒng)中,通過軟件visualstudio使用C#語言完畢一種端口掃描程序。此程序重要運用TCP連接三次握手特性,完畢對指定主機端口掃描。掃描能對指定IP主機慣用端口進行掃描。掃描成果以列表形式直觀地呈現(xiàn)出來。通過對掃描成果分析懂得了,有哪些慣用端口是開放。核心詞C#;端口掃描;TCP三次握手;網(wǎng)絡(luò)安全1引言1.1本文重要內(nèi)容本文第二節(jié)重要闡明本設(shè)計背景及目;第三節(jié)簡介了TCP端口掃描基本原理;第四節(jié)詳細描述了網(wǎng)絡(luò)端口掃描工具設(shè)計環(huán)節(jié)、某些源代碼以;第五節(jié)為有關(guān)測試成果;第六節(jié)為結(jié)束語以及末尾有關(guān)參照文獻。1.2設(shè)計平臺及設(shè)計語言本系統(tǒng)是在win7操作系統(tǒng)上,通過visualstudio軟件使用C#語言設(shè)計編寫完畢。1.3設(shè)計背景及目網(wǎng)絡(luò)中每臺計算機猶如一座城堡,這些城堡中,有些是對外完全開放,有些卻是大門緊閉。在網(wǎng)絡(luò)中,把這些城堡“城門”稱之為計算機“端口”。端口掃描是入侵者搜索信息幾種慣用辦法之一,也正是這一種辦法最容易暴露入侵者身份和意圖。普通說來,掃描端口有如下目:
判斷目的主機上開放了哪些服務(wù)
判斷目的主機操作系統(tǒng)
如果入侵者掌握了目的主機開放了哪些服務(wù),運營何種操作系統(tǒng),她們就能使用相應(yīng)手段實現(xiàn)入侵。而如果管理員先掌握了這些端口服務(wù)安全漏洞,就能采用有效安全辦法,防范相應(yīng)入侵。
2設(shè)計原理2.1端口基本概念端口是由計算機通信合同TCP/IP合同定義。其中規(guī)定,用IP地址和端口作為套接字,它代表TCP連接一種連接端,普通稱為Socket。詳細來說,就是用IP端口來定位一臺主機中進程。如果要和遠程主機A程序通信,那么只要把數(shù)據(jù)發(fā)向A端口就可以實現(xiàn)通信了。端口與進程是一一相應(yīng),如果某個進程正在等待連接,稱之為該進程正在監(jiān)聽,那么就會浮現(xiàn)與它相相應(yīng)端口。由此可見,通過掃描端口,便可以判斷出目的計算機有哪些通信進程正在等待連接。端口是一種16bit地址,用端標語進行標記不同作用端口。端口普通分為兩類。熟知端標語:范疇從0到1023,這些端標語普通固定分派給某些服務(wù)。例如21端口分派給FTP服務(wù),25端口分派給SMTP服務(wù),80端口分派給HTTP服務(wù),135端口分派給RPC服務(wù)等等動態(tài)端標語:動態(tài)端口范疇從1024到65535,只要運營程序向系統(tǒng)提出訪問網(wǎng)絡(luò)申請,那么系統(tǒng)就可以從這些端標語中分派一種供該程序使用。在關(guān)閉程序進程后,就會釋放所占用端標語。2.2端口掃描技術(shù)2.2.1TCPconnect()
掃描這是最基本TCP掃描。操作系統(tǒng)提供connect()系統(tǒng)調(diào)用,用來與每一種感興趣目的計算機端口進行連接。如果端口處在偵聽狀態(tài),那么connect()就能成功。否則,這個端口是不能用,即沒有提供服務(wù)。這個技術(shù)一種最大長處是,你不需要任何權(quán)限,系統(tǒng)中任何顧客均有權(quán)利使用這個調(diào)用。另一種好處就是速度,如果對每個目的端口以線性方式,使用單獨connect()調(diào)用,那么將會耗費相稱長時間,你可以通過同步打開各種套接字,從而加速掃描。使用非阻塞I/O容許你設(shè)立一種低時間用盡周期,同步觀測各種套接字。但這種辦法缺陷是很容易被發(fā)現(xiàn),并且被過濾掉。目的計算機logs文獻會顯示一連串連接和連接是出錯服務(wù)消息,并且能不久使它關(guān)閉。2.2.2TCPSYN掃描這種技術(shù)普通以為是“半開放”掃描,這是由于掃描程序不必要打開一種完全TCP連接。掃描程序發(fā)送是一種SYN數(shù)據(jù)包,好象準備打開一種實際連接并等待反映同樣(參照TCP三次握手建立一種TCP連接過程)。一種SYN|ACK返回信息表達端口處在偵聽狀態(tài)。一種RST返回,表達端口沒有處在偵聽態(tài)。如果收到一種SYN|ACK,則掃描程序必要再發(fā)送一種RST信號,來關(guān)閉這個連接過程。這種掃描技術(shù)長處在于普通不會在目的計算機上留下記錄。但這種辦法一種缺陷是,必要要有root權(quán)限才干建立自己SYN數(shù)據(jù)包。2.2.3TCPFIN
掃描有時候有也許SYN掃描都不夠秘密。某些防火墻和包過濾器會對某些指定端口進行監(jiān)視,有程序能檢測到這些掃描。相反,F(xiàn)IN數(shù)據(jù)包也許會沒有任何麻煩通過。這種掃描辦法思想是關(guān)閉端口會用恰當RST來回答FIN數(shù)據(jù)包。另一方面,打開端口會忽視對FIN數(shù)據(jù)包回答。這種辦法和系統(tǒng)實既有一定關(guān)系。有系統(tǒng)不論端口與否打開,都回答RST,這樣,這種掃描辦法就不合用了。并且這種辦法在區(qū)別Unix和NT時,是十分有用。2.2.4IP段掃描這種不能算是新辦法,只是其他技術(shù)變化。它并不是直接發(fā)送TCP探測數(shù)據(jù)包,是將數(shù)據(jù)包提成兩個較小IP段。這樣就將一種TCP頭提成好幾種數(shù)據(jù)包,從而過濾器就很難探測到。但必要小心。某些程序在解決這些小數(shù)據(jù)包時會有些麻煩。2.2.5TCP
反向
ident掃描ident合同容許(rfc1413)看到通過TCP連接任何進程擁有者顧客名,雖然這個連接不是由這個進程開始。因而你能,舉個例子,連接到http端口,然后用identd來發(fā)現(xiàn)服務(wù)器與否正在以root權(quán)限運營。這種辦法只能在和目的端口建立了一種完整TCP連接后才干看到。2.3本系統(tǒng)設(shè)計原理本系統(tǒng)采用是TCPconnect()掃描技術(shù)眾所周知,端口存在兩種,UDP和TCP。UDP合同由于是非面向連接,對UDP端口探測也就不也許像TCP端口探測那樣依賴于連接建立過程,這也使得UDP端口掃描可靠性不高。而TCP由于其connectionoriented特性,為端口掃描提供了基本。眾所周知,TCP建立連接時有三次握手。先是client端往server某端口發(fā)送祈求連接SYN包,server該端口如果容許連接,會給client端發(fā)一種SYN+ACK回包,client端收到serverSYN+ACK包后再給server端發(fā)一種確認包ACK(ack=k+1),TCP連接正式建立?;谶B接建立過程,可以想到,如果要掃描某一種TCP端口,可以嘗試與該端口進行TCP連接,如果該端口處在打開狀態(tài),通過TCP三次握手就能成功建立連接,也就是說,如果連接成功,就可以判斷目的掃描出于打開狀態(tài),否則,目的端口處在關(guān)閉狀態(tài)。這就是TCP端口掃描基本原理。主機B主機B主機AACK,SEQ=X+1,ACK=Y+1SYN,SEQ=XSYN,ACK,SEQ=Y,ACK=X+1連接祈求確認確認圖2.1TCP連接建立過程3設(shè)計環(huán)節(jié)3.1程序設(shè)計程序設(shè)計總體思路:本系統(tǒng)規(guī)定掃描指定IP地址主機慣用端口,一方面在程序中要定義一種數(shù)組,用于指定慣用端口包括內(nèi)容;另一方面需要創(chuàng)立一種掃描辦法,當顧客輸入指定IP后,循環(huán)調(diào)用該辦法對指定IP慣用端口進行掃描,并將掃描成果以列表形式顯示。程序大概執(zhí)行過程:第一步,顧客輸入指定IP地址,點擊掃描后,創(chuàng)立線程,并創(chuàng)立ThreadStart委托對象;第二步,若當前掃描端口數(shù)量未超過定義數(shù)組上限值,調(diào)用掃描線程Scan()對該端口嘗試連接;第三步,循環(huán)掃描數(shù)組里定義所有端口,記錄每個端口與否開放狀況;第四步,數(shù)組內(nèi)所有端口掃描完畢后,匹配過濾原則,顯示掃描結(jié)束。流程圖如圖3.1所示圖3.1程序流程圖3.2程序?qū)崿F(xiàn)3.2.1創(chuàng)立線程當顧客點擊掃描之后,執(zhí)行如下程序代碼,創(chuàng)立線程并創(chuàng)立線程ThreadStart委托對象,同步將顯示框初始化:privatevoidbtnScan_Click(objectsender,System.EventArgse) { //創(chuàng)立線程,并創(chuàng)立線程ThreadStart委托對象 Threadprocess=newThread(newThreadStart(PortScan)); process.Start(); //顯示框初始化 lbResult.Items.Clear(); lbResult.Items.Add("端口掃描器1.0."); lbResult.Items.Add(""); }3.2.2TCP掃描辦法此段代碼實現(xiàn)了對指定端口掃描功能,本次安城定義了一種暫時變量port_now,當該線程被調(diào)用后,創(chuàng)立TcpClient對象,嘗試對指定端口進行TCP連接,并將成果顯示在顯示框:privatevoidScan() {intport_now=port;done[port_now]=true;Addr=txtAddr.Text; //創(chuàng)立¨TcpClient對象 TcpClientobjTCP=null; try { //用TcpClient對象掃描端口,連接成功表達端口開放//連接不成功表達端口未開放或防火墻過濾 objTCP=newTcpClient(Addr,scan_port[port_now]); lbResult.Items.Add("端口"+scan_port[port_now].ToString()+"開放"); } catch {lbResult.Items.Add("端口"+scan_port[port_now].ToString()+"未開放"); }}3.2.3端口掃描主函數(shù)此段代碼通過調(diào)用Scan()辦法,實現(xiàn)了對指定端口組個掃描功能。當執(zhí)行時,一方面對當前掃描端口進行過濾原則匹配,若掃描端口排序超過定義數(shù)組最大值,則顯示掃描結(jié)束;反之,調(diào)用Scan()線程對該端口進行掃描。此段代碼中還定義了當未完畢掃描,強行退出時,直接終結(jié)執(zhí)行程序:privatevoidPortScan(){lbResult.Items.Add("開始掃描...(也許需要您等待幾分鐘)");lbResult.Items.Add("");Addr=txtAddr.Text;for(inti=0;i<16;i++){port=i;//使用該端口掃描線程scanThread=newThread(newThreadStart(Scan));scanThread.Start();//使線程睡眠System.Threading.Thread.Sleep(100);}//未完畢時狀況while(!OK){OK=true;for(inti=0;i<16;i++){if(!done[i]){OK=false;break;}}System.Threading.Thread.Sleep(1000);}lbResult.Items.Add("掃描結(jié)束!");}3.3測試成果程序開始執(zhí)行時,主界面初始化,顧客可在左邊文本框中輸入想要掃描主機IP地址,點擊掃描,則掃描開始。主界面如圖3.2所示。圖3.2系統(tǒng)主界面當顧客輸入指定IP,本測試使用本地主機作為測試,輸入,點擊掃描,掃描成果以列表形式顯示在右邊文本框中。測試成果如圖3.3所示。圖3.3端口掃描測試截圖4結(jié)束語本次課程設(shè)計課題是設(shè)計實現(xiàn)一種簡樸端口掃描工具,本次課程設(shè)計程序在VS軟件中使用C#編寫,該工具可掃描局域網(wǎng)某計算機慣用端口與否烤房,并以本地主機作為測試。通過這兩個星期課程設(shè)計,通過圖書館和網(wǎng)上查找資料,順利完畢了設(shè)計和開發(fā),端口掃描系統(tǒng)開發(fā)完畢。系統(tǒng)基本符合規(guī)定,但是鑒于此系統(tǒng)是基于TCP三次握手過程實現(xiàn)端口掃描,該系統(tǒng)掃描時耗費時間偏長。在整個設(shè)計過程中,浮現(xiàn)過諸多問題,得到了教師和同窗協(xié)助,在不斷學(xué)習過程中我體會到這次課程設(shè)計是一種不斷學(xué)習過程,從設(shè)計初模糊結(jié)識到最后可以順利完畢,我體會到在實踐中學(xué)習重要性。設(shè)計過程中,由于要實現(xiàn)某些功能,網(wǎng)上資源解決了我問題。多借鑒網(wǎng)絡(luò)資源也是一種較好學(xué)習辦法總之,通過這次課程設(shè)計,我
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度場營銷分公司智慧城市項目合作協(xié)議3篇
- 二零二五版商業(yè)街區(qū)場地租賃合作協(xié)議書6篇
- 2025年度高新技術(shù)產(chǎn)業(yè)常年法律顧問聘用協(xié)議3篇
- 二零二五年度企業(yè)稅收籌劃與稅收籌劃實施合同3篇
- 二零二五年度出口退稅證明開具及國際金融服務(wù)合同3篇
- 二零二五年度港口碼頭租賃及港口貨物裝卸、倉儲及配送服務(wù)協(xié)議8篇
- 二零二五年度土地承包經(jīng)營權(quán)糾紛調(diào)解合同-@-2
- 2025草原禁牧與水資源保護管理協(xié)議合同3篇
- 2025年度個人個人借款合同信用評估標準3篇
- 二零二五食用油產(chǎn)品包裝設(shè)計與印刷合同
- 中考模擬考試化學(xué)試卷與答案解析(共三套)
- 新人教版五年級小學(xué)數(shù)學(xué)全冊奧數(shù)(含答案)
- 風電場升壓站培訓(xùn)課件
- 收納盒注塑模具設(shè)計(論文-任務(wù)書-開題報告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號處理與特征提取
- 高中數(shù)學(xué)知識點全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點詞組歸納總結(jié)
- 蘇教版四年級數(shù)學(xué)下冊第3單元第2課時“常見的數(shù)量關(guān)系”教案
評論
0/150
提交評論