版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 信息工程學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)</p><p><b> 課程研究報(bào)告</b></p><p> 題目全稱: 端口掃描工具設(shè)計(jì) </p><p> 課 程: 計(jì)算機(jī)網(wǎng)絡(luò) </p><p> 學(xué) 號:
2、 </p><p> 班 級: </p><p> 姓 名: </p><p><b> 摘要</b></p><p> 在現(xiàn)在這個(gè)信息化的社
3、會(huì)中,網(wǎng)絡(luò)的發(fā)展已經(jīng)超出了人們預(yù)想,在很短的時(shí)間里已經(jīng)滲透到軍事,金融,商業(yè),交通,電信,教育等領(lǐng)域,并發(fā)揮著越來越大的作用。社會(huì)對網(wǎng)絡(luò)系統(tǒng)的依賴也越來越強(qiáng),使得密集信息和財(cái)富高度集中與計(jì)算機(jī)中。另一方面,這些網(wǎng)絡(luò)系統(tǒng)都依靠計(jì)算機(jī)網(wǎng)絡(luò)接受和處理信息,實(shí)現(xiàn)其相互間的聯(lián)系和對目標(biāo)的管理與控制。而網(wǎng)絡(luò)端口掃描作為維護(hù)網(wǎng)絡(luò)安全的重要手段,可以幫助服務(wù)器提供商找出自身漏洞,避免黑客攻擊;測試遠(yuǎn)程服務(wù)器的端口是否可達(dá),防止沿途運(yùn)營商、防火墻限制了端
4、口導(dǎo)致服務(wù)不可用。</p><p><b> .備注</b></p><p> 本次計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)我主要是學(xué)習(xí)一下端口掃描工具的基本知識以及研究別人做出的端口掃描工具,以下即是本次研究的相關(guān)研究報(bào)告。鑒于自己計(jì)算機(jī)方面知識不是很好,不足之處還請老師指出與修正。</p><p><b> 端口掃描器的研究</b>&
5、lt;/p><p><b> TCP協(xié)議介紹</b></p><p> 提到端口掃描技術(shù)就不可不提及TCP協(xié)議了,作為互聯(lián)網(wǎng)的核心協(xié)議,TCP協(xié)議的重要性是人人皆知,端口掃描主要是建立在TCP協(xié)議基礎(chǔ)上的一門技術(shù)。TCP協(xié)議是一種面向連接的,可靠的傳輸協(xié)議。一次正常的TCP傳輸需要通過在客戶和服務(wù)器之間建立特定的虛電路連接來完成,這個(gè)過程通常被稱為“三次握手”。TCP
6、通過數(shù)據(jù)分段中的序列號保證所有的傳輸數(shù)據(jù)可以在遠(yuǎn)端按照正常的次序重組,而通過確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾浴?lt;/p><p><b> 三次握手過程:</b></p><p> 1:客戶端發(fā)送一個(gè)TCP包(SYN請求)給服務(wù)端,其中標(biāo)記SYN(同步序號)要打開。SYN請求指明了客戶端希望連接的服務(wù)器端端口號和客戶端的ISN。</p><p>
7、2:服務(wù)器端發(fā)回應(yīng)答,包含自己的SYN信息ISN和對客戶端的SYN應(yīng)答,應(yīng)答時(shí)返回下一個(gè)希望得到的字節(jié)序號。</p><p> 3:客戶端對從S服務(wù)器端來的SYN進(jìn)行應(yīng)答,數(shù)據(jù)發(fā)送開始。</p><p><b> UDP協(xié)議介紹</b></p><p> UDP,用戶數(shù)據(jù)報(bào)協(xié)議。UDP為應(yīng)用程序提供了一種方法來發(fā)送經(jīng)過封裝的IP數(shù)據(jù)報(bào),而
8、且不必建立連接就可以發(fā)送這些IP數(shù)據(jù)報(bào)。</p><p> UDP傳輸?shù)臄?shù)據(jù)段是由8個(gè)字節(jié)的頭和凈荷域構(gòu)成的。兩個(gè)端口分別被用來標(biāo)識出源機(jī)器和目標(biāo)機(jī)器內(nèi)部的端點(diǎn)。當(dāng)一個(gè)UDP分組到來的時(shí)候,它的凈荷部分被遞交給與目標(biāo)端口相關(guān)聯(lián)的那個(gè)進(jìn)程。當(dāng)目標(biāo)端口必須將一個(gè)應(yīng)答送回給源端口的時(shí)候,源端口是必須的。發(fā)送應(yīng)答的進(jìn)程只要將近來的數(shù)據(jù)段中的源端口域復(fù)制到輸出的數(shù)據(jù)段中的目標(biāo)端口域,就可以指定在發(fā)送機(jī)器上有哪個(gè)進(jìn)程來接受
9、應(yīng)答。UDP長度包含了8字節(jié)的頭和數(shù)據(jù)部分。UDP校驗(yàn)和是可選的,如果不計(jì)算的話,則在該域中存放0,如果真正的計(jì)算結(jié)果試的話,則該域中存放的全是1,除非數(shù)據(jù) 的質(zhì)量并不重要,否則就不應(yīng)該將校驗(yàn)和的功能關(guān)閉。另外值得明確提出來的是UDP沒有做到的一些事情。UDP并不考慮流控制,錯(cuò)誤控制,在收到一個(gè)壞的數(shù)據(jù)段之后它也不重傳。所有這些工作都留給用戶的進(jìn)程。UDP所作的事情是提供一個(gè)接口,并且在接口中增加解復(fù)用的特性。他利用端口的概念將數(shù)據(jù)段解
10、復(fù)用到多個(gè)進(jìn)程中,這就是他所做的全部工作。</p><p><b> SOCKET介紹</b></p><p> Socket接口是TCP/IP網(wǎng)絡(luò)的API,Socket接口定義了許多函數(shù)或例程,程序員可以用它們來開發(fā)TCP/IP網(wǎng)絡(luò)上的應(yīng)用程序。要學(xué)Internet上的TCP/IP網(wǎng)絡(luò)編程,必須理解Socket接口。</p><p>
11、Socket接口設(shè)計(jì)者最先是將接口放在Unix操作系統(tǒng)里面的。如果了解Uinx系統(tǒng)的輸入和輸出的話,就很容易了解Socket了。網(wǎng)絡(luò)的Socket數(shù)據(jù)傳輸是一種特殊的I/O,Socket也是一種文件描述符。Socket也具有一個(gè)類似于打開文件的函數(shù)調(diào)用Socket(),該函數(shù)返回一個(gè)整型的Socket描述符,隨后的連接建立,數(shù)據(jù)傳輸?shù)炔僮鞫际峭ㄟ^該Socket實(shí)現(xiàn)的。</p><p> Sockfd是需要關(guān)閉的
12、socket的描述符。參數(shù) how允許為shutdown操作選擇以下幾種方式:</p><p> ·0-------不允許繼續(xù)接收數(shù)據(jù) </p><p> ·1-------不允許繼續(xù)發(fā)送數(shù)據(jù) </p><p> ·2-------不允許繼續(xù)發(fā)送和接收數(shù)據(jù),均為允許則調(diào)用close () shutdown在操作成功時(shí)返回0,
13、在出現(xiàn)錯(cuò)誤時(shí)返回-1并置相應(yīng)errno。</p><p><b> 常用端口掃描技術(shù)</b></p><p> TCP connect()掃描:</p><p> 這是最基本的TCP掃描,操作系統(tǒng)提供的connect()系統(tǒng)調(diào)用可以用來與每一個(gè)感興趣的目標(biāo)計(jì)算機(jī)的端口進(jìn)行連接。如果端口處于偵聽狀態(tài),那么connect()就能成功。否則,這
14、個(gè)端口是不能用的,即沒有提供服務(wù)。這個(gè)技術(shù)的一個(gè)最大的優(yōu)點(diǎn)是,你不需要任何權(quán)限。系統(tǒng)中的任何用戶都有權(quán)利使用這個(gè)調(diào)用。另一個(gè)好處就是速度,如果對每個(gè)目標(biāo)端口以線性的方式,使用單獨(dú)的connect()調(diào)用,那么將會(huì)花費(fèi)相當(dāng)長的時(shí)間,使用者可以通過同時(shí)打開多個(gè)套接字來加速掃描。使用非阻塞I/O允許你設(shè)置一個(gè)低的時(shí)間用盡周期,同時(shí)觀察多個(gè)套接字。但這種方法的缺點(diǎn)是很容易被察覺,并且被防火墻將掃描信息包過濾掉。目標(biāo)計(jì)算機(jī)的logs文件會(huì)顯示一連
15、串的連接和連接出錯(cuò)消息,并且能很快使它關(guān)閉。</p><p> TCP SYN掃描:</p><p> 這種技術(shù)通常認(rèn)為是“半開放”掃描,這是因?yàn)閽呙璩绦虿槐匾蜷_一個(gè)完全的TCP連接。掃描程序發(fā)送的是一個(gè)SYN數(shù)據(jù)包,好象準(zhǔn)備打開一個(gè)實(shí)際的連接并等待反應(yīng)一樣(參考TCP的三次握手建立一個(gè)TCP連接的過程)。一個(gè)SYN|ACK的返回信息表示端口處于偵聽狀態(tài):返回RST表示端口沒有處于偵
16、聽?wèi)B(tài)。如果收到一個(gè)SYN|ACK,則掃描程序必須再發(fā)送一個(gè)RST信號,來關(guān)閉這個(gè)連接過程。這種掃描技術(shù)的優(yōu)點(diǎn)在于一般不會(huì)在目標(biāo)計(jì)算機(jī)上留下記錄,但這種方法的缺點(diǎn)是必須要有root權(quán)限才能建立自己的SYN數(shù)據(jù)包。</p><p> TCP FIN 掃描:</p><p> SYN掃描雖然是“半開放”方式掃描,但在某些時(shí)候也不能完全隱藏掃描者的動(dòng)作,防火墻和包過濾器會(huì)對管理員指定的端口進(jìn)行
17、監(jiān)視,有的程序能檢測到這些掃描。相反,F(xiàn)IN數(shù)據(jù)包在掃描過程中卻不會(huì)遇到過多問題,這種掃描方法的思想是關(guān)閉的端口會(huì)用適當(dāng)?shù)腞ST來回復(fù)FIN數(shù)據(jù)包。另一方面,打開的端口會(huì)忽略對FIN數(shù)據(jù)包的回復(fù)。這種方法和系統(tǒng)的實(shí)現(xiàn)有一定的關(guān)系,有的系統(tǒng)不管端口是否打開都會(huì)回復(fù)RST,在這種情況下此種掃描就不適用了。另外這種掃描方法可以非常容易的區(qū)分服務(wù)器是運(yùn)行Unix系統(tǒng)還是NT系統(tǒng)。</p><p><b> I
18、P段掃描:</b></p><p> 這種掃描方式并不是新技術(shù),它并不是直接發(fā)送TCP探測數(shù)據(jù)包,而是將數(shù)據(jù)包分成兩個(gè)較小的IP段。這樣就將一個(gè)TCP頭分成好幾個(gè)數(shù)據(jù)包,從而過濾器就很難探測到。但必須小心:一些程序在處理這些小數(shù)據(jù)包時(shí)會(huì)有些麻煩。</p><p> TCP 反向 ident掃描:</p><p> ident 協(xié)議允許(rfc141
19、3)看到通過TCP連接的任何進(jìn)程的擁有者的用戶名,即使這個(gè)連接不是由這個(gè)進(jìn)程開始的。例如掃描者可以連接到http端口,然后用identd來發(fā)現(xiàn)服務(wù)器是否正在以root權(quán)限運(yùn)行。這種方法只能在和目標(biāo)端口建立了一個(gè)完整的TCP連接后才能看到。</p><p><b> FTP 返回攻擊:</b></p><p> FTP協(xié)議的一個(gè)有趣的特點(diǎn)是它支持代理(proxy)F
20、TP連接,即入侵者可以從自己的計(jì)算機(jī)self.com和目標(biāo)主機(jī)target.com的FTP server-PI(協(xié)議解釋器)連接,建立一個(gè)控制通信連接。然后請求這個(gè)server-PI激活一個(gè)有效的server-DTP(數(shù)據(jù)傳輸進(jìn)程)來給Internet上任何地方發(fā)送文件。對于一個(gè)User-DTP,盡管RFC明確地定義請求一個(gè)服務(wù)器發(fā)送文件到另一個(gè)服務(wù)器是可以的,但現(xiàn)在這個(gè)方法并不是非常有效。這個(gè)協(xié)議的缺點(diǎn)是“能用來發(fā)送不能跟蹤的郵件和新
21、聞,給許多服務(wù)器造成打擊,用盡磁盤,企圖越過防火墻”。</p><p> UDP ICMP端口不能到達(dá)掃描:</p><p> 這種方法與上面幾種方法的不同之處在于使用的是UDP協(xié)議,而非TCP/IP協(xié)議。由于UDP協(xié)議很簡單,所以掃描變得相對比較困難。這是由于打開的端口對掃描探測并不發(fā)送確認(rèn)信息,關(guān)閉的端口也并不需要發(fā)送一個(gè)錯(cuò)誤數(shù)據(jù)包。幸運(yùn)的是許多主機(jī)在向一個(gè)未打開的UDP端口發(fā)送數(shù)
22、據(jù)包時(shí),會(huì)返回一個(gè)ICMP_PORT_UNREACH錯(cuò)誤,這樣掃描者就能知道哪個(gè)端口是關(guān)閉的。UDP和ICMP錯(cuò)誤都不保證能到達(dá),因此這種掃描器必須還實(shí)現(xiàn)在一個(gè)包看上去是丟失的時(shí)候能重新傳輸。這種掃描方法是很慢的,因?yàn)镽FC對ICMP錯(cuò)誤消息的產(chǎn)生速率做了規(guī)定。同樣這種掃描方法也需要具有root權(quán)限。</p><p> UDP recvfrom()和write() 掃描:</p><p>
23、; 當(dāng)非root用戶不能直接讀到端口不能到達(dá)錯(cuò)誤時(shí),Linux能間接地在它們到達(dá)時(shí)通知用戶。比如,對一個(gè)關(guān)閉的端口的第二個(gè)write()調(diào)用將失敗。在非阻塞的UDP套接字上調(diào)用recvfrom()時(shí),如果ICMP出錯(cuò)還沒有到達(dá)時(shí)回返回EAGAIN-重試。如果ICMP到達(dá)時(shí),返回ECONNREFUSED-連接被拒絕。這就是用來查看端口是否打開的技術(shù)。</p><p><b> 常見端口掃描器</
24、b></p><p> NSS(網(wǎng)絡(luò)安全掃描器)</p><p> NSS由Perl語言編成,它最根本的價(jià)值在于它的速度,它運(yùn)行速度非常快,它可以執(zhí)行下列常規(guī)檢查:</p><p> ■Sendmail </p><p><b> ■匿名FTP </b></p><p><b&
25、gt; ■NFS出口 </b></p><p><b> ■TFTP</b></p><p> ■Hosts.equiv</p><p><b> ■Xhost</b></p><p> 利用NSS,用戶可以增加更強(qiáng)大的功能,其中包括:</p><p>
26、 ■AppleTalk掃描</p><p> ■Novell掃描 </p><p><b> ■LAN管理員掃描</b></p><p><b> ■可掃描子網(wǎng)</b></p><p> NSS執(zhí)行的進(jìn)程包括:</p><p> ■取得指定域的列表或報(bào)告,該域原本
27、不存在這類列表</p><p> ■用Ping命令確定指定主機(jī)是否是活性的</p><p> ■掃描目標(biāo)主機(jī)的端口 </p><p> ■報(bào)告指定地址的漏洞 </p><p> Strobe(超級優(yōu)化TCP端口檢測程序)</p><p> strobe是一個(gè)TCP端口掃描器,它可以記錄指定機(jī)器的所有開放端口。
28、strobe運(yùn)行速度快。</p><p> strobe的主要特點(diǎn)是,它能快速識別指定機(jī)器上正在運(yùn)行什么服務(wù)。strobe的主要不足是這類信</p><p> 息是很有限的,一次strobe攻擊充其量可以提供給“入侵者”一個(gè)粗略的指南,告訴什么服務(wù)可以</p><p> 被攻擊。但是,strobe用擴(kuò)展的行命令選項(xiàng)彌補(bǔ)了這個(gè)不足。比如,在用大量指定端口掃描主機(jī)
29、</p><p> 時(shí),可以禁止所有重復(fù)的端口描述。</p><p><b> 其他選項(xiàng)包括:</b></p><p> ■定義起始和終止端口 ■定義在多長時(shí)間內(nèi)接收不到端口或主機(jī)響應(yīng),便終止這次掃描。</p><p> ■定義使用的socket號碼</p><p> ■定義strob
30、e要捕捉的目標(biāo)主機(jī)的文件</p><p> SATAN(安全管理員的網(wǎng)絡(luò)分析工具)</p><p> SATAN是為UNIX設(shè)計(jì)的,它主要是用C和Perl語言編寫的(為了用戶界面的友好性,還用了一些HTML技術(shù))。它能在許多類UNIX平臺(tái)上運(yùn)行,有些根本不需要移植,而在其他平臺(tái)上也只是略作移植。</p><p> SATAN用于掃描遠(yuǎn)程主機(jī)的許多已知的漏洞,其
31、中包括,但并不限于下列這些漏洞:</p><p> ■FTPD脆弱性和可寫的FTP目錄</p><p><b> ■NFS脆弱性</b></p><p><b> ■NIS脆弱性</b></p><p><b> ■RSH脆弱性</b></p><p
32、><b> ■Sendmail</b></p><p><b> ■X服務(wù)器脆弱性</b></p><p><b> Jakal </b></p><p> Jakal是一個(gè)秘密掃描器,也就是就,它可以掃描一個(gè)區(qū)域(在防火墻后面),而不留下任何痕跡。秘密掃描器工作時(shí)會(huì)產(chǎn)生“半掃描”(ha
33、lf scans),它啟動(dòng)(但從不完成)與目標(biāo)主機(jī)的SYN/ACK過程。從根本上講,秘密掃描器繞過了防火墻,并且避開了端口掃描探測器,識別出在防火墻后面運(yùn)行的是什么服務(wù)。(這里包括了像Courtney和GAbriel這樣的精制掃描探測器)</p><p> IdentTCPscan </p><p> IdentTCPscan是一個(gè)更加專業(yè)化的掃描器,其中加入了識別指定TCP端口進(jìn)程的
34、所有者的功能,也就是說,它能測定該進(jìn)程的UID??稍谌缦碌刂氛业娇截悾篽ttp://www.giga.or.at/pub/hacker/unix ; </p><p><b> CONNECT</b></p><p> CONNECT是一個(gè)bin/sh程序,它的用途是掃描TFTP服務(wù)子網(wǎng)。</p><p><b> FSPSca
35、n</b></p><p> FSPScan用于掃描FSP服務(wù)順。FSP代表文件服務(wù)協(xié)議,是非常類似于FTP的Internet協(xié)議。它提供匿名文件傳輸,并且據(jù)說具有網(wǎng)絡(luò)過載保護(hù)功能(比如,F(xiàn)SP從來不分叉)。FSP最知名的安全特性可能就是它記錄所有到來用戶的主機(jī)名,這被認(rèn)為優(yōu)于FTP,因?yàn)镕TP僅要求用戶的E-mail地址。 </p><p><b> XSCAN
36、</b></p><p> XSCAN掃描具有X服務(wù)器弱點(diǎn)的子網(wǎng)(或主機(jī))。XSCAN增加了一個(gè)功能:如果它找到了一個(gè)脆弱的目標(biāo),它會(huì)立即加入記錄。 </p><p> XSCAN的其他優(yōu)點(diǎn)還包括:可以一次掃描多臺(tái)主機(jī)。這些主機(jī)可以在行命令中作為變量鍵入(并且你可以通過混合匹配同時(shí)指定主機(jī)和子網(wǎng))。</p><p><b> 本章小節(jié)&l
37、t;/b></p><p> 本章節(jié)著重介紹了TCP協(xié)議、UDP協(xié)議以及SOCKET接口的相關(guān)知識</p><p> 還大致介紹了TCP connect()掃描、CP SYN掃描、CP FIN 掃描、IP段掃描等幾種常規(guī)掃描模式。</p><p> 最后還介紹了NSS、Strobe、ATAN、Jakal等幾種常見的掃描工具。為網(wǎng)絡(luò)掃描工具的開發(fā)打下了理論
38、基礎(chǔ)。</p><p><b> 端口掃描器的開發(fā)</b></p><p><b> 開發(fā)原理</b></p><p> 開發(fā)端口掃描器需要用到控件,利用它與遠(yuǎn)程計(jì)算機(jī)建立連接,并通過用UDP協(xié)議或TCP協(xié)議進(jìn)行數(shù)據(jù)交換。這樣就能確認(rèn)遠(yuǎn)程計(jì)算機(jī)的端口開放情況。由于TCP協(xié)議判斷遠(yuǎn)程計(jì)算機(jī)的信息比UDP協(xié)議準(zhǔn)確,所以本
39、文使用Winsock控件的TCP協(xié)議來開發(fā)掃描器。</p><p> 首先在IP地址和端口的循環(huán)中動(dòng)態(tài)建立winsock套接字(Fsocket),在該套接字的通訊方式上選擇非阻塞方式(WSAAsyncSelect()),并在Fsocket套接字,線程內(nèi)分配的非可視控件句柄,網(wǎng)絡(luò)事件處理函數(shù)以及網(wǎng)絡(luò)事件消息(FD_CONNECT連接消息)之間建立相應(yīng)的關(guān)聯(lián)。設(shè)置好Fsocket的IP地址和相應(yīng)的端口號后,調(diào)用co
40、nnect()函數(shù)與遠(yuǎn)程目標(biāo)主機(jī)建立連接。調(diào)用WaitForSingleObject()函數(shù)等待網(wǎng)絡(luò)連接事件的發(fā)生,一旦連接成功將自動(dòng)調(diào)用自定義的 ReadData()函數(shù)處理相應(yīng)網(wǎng)絡(luò)消息。最后將網(wǎng)絡(luò)事件復(fù)位(ResetEvent)以便等待下一網(wǎng)絡(luò)事件發(fā)生,并取消在Fsocket套接字,線程內(nèi)分配的非可視化句柄,網(wǎng)絡(luò)事件處理函數(shù)以及網(wǎng)絡(luò)事件消息(FD_CONNECT連接消息)之間建立相應(yīng)的關(guān)聯(lián),關(guān)閉Fsocket. </p>
41、<p><b> 屬性</b></p><p> LocalHostName | 本機(jī)名。</p><p> LocalIP | 本機(jī)IP地址。</p><p> LocalPort | 本機(jī)通信程序的端口(0\<端口\<65536)。</p><p> RemoteHost | 遠(yuǎn)程
42、計(jì)算機(jī)名。</p><p> RemotePort | 遠(yuǎn)程計(jì)算機(jī)的通信程序端口。</p><p> state | 連接的當(dāng)前狀態(tài)。</p><p> Protocal | 使用</p><p> TCP或UDP協(xié)議。</p><p><b> 方法</b></p>&l
43、t;p> Listen | 用于服務(wù)器程序,等待客戶訪問。</p><p><b> 格式:</b></p><p> Winsock對象.listenConnect | </p><p> 用于向遠(yuǎn)程主機(jī)發(fā)出連接請求。</p><p><b> 格式:</b></p>
44、<p> Winsock對象.connect \[遠(yuǎn)程主機(jī)IP地址,遠(yuǎn)程端口]Accept | </p><p> 用于接受一個(gè)連接請求。</p><p><b> 格式:</b></p><p> Winsock對象.accept Request IDSenddata | </p><p><
45、b> 用于發(fā)送數(shù)據(jù)。</b></p><p><b> 格式:</b></p><p> Winsock對象.senddata 數(shù)據(jù)Getdata | </p><p> 用來取得接收到的數(shù)據(jù)。</p><p><b> 格式:</b></p><p&
46、gt; Winsock對象.getdata 變量 \[,數(shù)據(jù)類型 \[,最大長度]]Close | </p><p><b> 用于關(guān)閉當(dāng)前連接。</b></p><p> 格式:Winsock對象.close</p><p><b> 事件</b></p><p> Close | 遠(yuǎn)程
47、計(jì)算機(jī)關(guān)閉連接時(shí)觸發(fā)。</p><p> Connect | 連接建立好,可以進(jìn)行通信時(shí)觸發(fā)(客戶端)。</p><p> ConnectRequest | 有連接請求到達(dá)時(shí)觸發(fā)(服務(wù)器端)。</p><p> DataArrival | 有數(shù)據(jù)到達(dá)時(shí)觸發(fā)。</p><p> Error | 發(fā)生錯(cuò)誤時(shí)觸發(fā)。</p>&
48、lt;p> SendProgress | 數(shù)據(jù)傳送進(jìn)度。</p><p><b> 開發(fā)端口掃描器界面</b></p><p> 下面來開VB開始制作界面。首先構(gòu)造一個(gè)基本的掃描器界面,包括IP地址欄、端口欄、結(jié)果欄和速度設(shè)置欄。</p><p><b> 步驟1:</b></p><p&
49、gt; 新建一個(gè)窗體,在其中添加4個(gè) textbox控件,分別命名為“txtIP”、“txtLowerBound”、“”和“txtMaxConnections”。它們分別代表目標(biāo)IP地址、開始端口、結(jié)束端口和速度線程數(shù)。再分別給這4個(gè)textbox控件加上frame控件,并將frame的caption值分別設(shè)置為目標(biāo)IP地址、端口范圍和線程數(shù)。這樣就顯得比較美觀。</p><p><b> 步驟2:
50、</b></p><p> 添加一個(gè)listbo控件,它用來顯示掃描的端口開放結(jié)果,將其命名為lstOpenPorts。再添加三個(gè)控件,將其Caption值分別設(shè)置為掃描、停止和清除。</p><p><b> 步驟3 :</b></p><p> 添加一個(gè)Winsock控件,命名為“wskSocket”,同時(shí)添一個(gè)timer
51、控件,命名為“timTimer”。</p><p><b> 步驟4:</b></p><p> 為了顯示狀態(tài),在界面底部增加一個(gè)statusbar控件,將其命名為“sbMain”。它用來顯示速度及時(shí)間等信息。</p><p><b> 代碼編寫</b></p><p> Dim portn
52、um As Long '設(shè)置變量!</p><p> Dim start As String</p><p> Private Sub cmdClear_Click()</p><p> lstOpenPorts.Text = "" '輸入的
53、文本</p><p><b> End Sub</b></p><p> Private Sub cmdScan_Click()</p><p> If txtUB.Text = "" Or Text3.Text = "" Then
54、0; '如果.IF</p><p> MsgBox "端口號不能為空??!" '提示</p><p><b> Ex
55、it Sub</b></p><p><b> End If</b></p><p> Winsock1.Close '控件</p><p> start = True</p><p> Call SCanningPorts '調(diào)用自定義的過程</p>
56、;<p> stOpenPorts.Text = lstOpenPorts.Text & vbCrLf & "端口" & txtUB.Text & "-" & Text3.Text & "已經(jīng)掃描成功!"</p><p><b> End Sub</b></p&
57、gt;<p> Private Sub cmdStop_Click()</p><p> start = False</p><p><b> End Sub</b></p><p> Sub SCanningPorts() '自定義的過程</p>&l
58、t;p> Dim porttwo As Long</p><p> portnum = txtUB.Text</p><p> porttwo = Text3.Text</p><p> On Error GoTo viriio:</p><p><b> Do</b></p><p&
59、gt; portnum = portnum + 1</p><p><b> DoEvents</b></p><p> If start = True Then</p><p> Winsock1.Close</p><p><b> DoEvents</b></p>&l
60、t;p> Winsock1.LocalPort = portnum</p><p><b> DoEvents</b></p><p> txtcon.Text = portnum</p><p> Winsock1.Listen</p><p><b> DoEvents</b>&
61、lt;/p><p><b> Else</b></p><p> portnum = 0</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> Winsock1.Close</p
62、><p><b> DoEvents</b></p><p> Loop Until portnum >= porttwo</p><p> portnum = 0</p><p><b> viriio:</b></p><p> If Err.Number =
63、 10048 Then</p><p> lstOpenPorts.Text = lstOpenPorts.Text & vbCrLf & "端口" & Winsock1.LocalPort & "開放中"</p><p> Resume Next</p><p><b> En
64、d If</b></p><p><b> End Sub</b></p><p> Private Sub Form_Load()</p><p><b> End Sub</b></p><p><b> 測試</b></p><p&
65、gt;<b> 對該軟件進(jìn)行測試:</b></p><p> 達(dá)到開發(fā)目的,具備發(fā)現(xiàn)一個(gè)計(jì)算機(jī)或網(wǎng)絡(luò)的能力;具備發(fā)現(xiàn)一臺(tái)計(jì)算機(jī),就有發(fā)現(xiàn)目標(biāo)計(jì)算機(jī)正在運(yùn)行什么服務(wù)的能力;具備測試目標(biāo)計(jì)算機(jī)上的這些服務(wù),發(fā)現(xiàn)存在的漏洞的能力。</p><p><b> 本章小結(jié)</b></p><p> 開發(fā)了一款簡單的基于VB的網(wǎng)
66、絡(luò)端口掃描工具。并對其進(jìn)行了測試,在Windows NT/XP下穩(wěn)定運(yùn)行。</p><p><b> 結(jié)束語</b></p><p> 通過一個(gè)多月緊張有序的學(xué)習(xí)與研究,圓滿完成了本次課程研究。在本次課程研究中主要采取了百度加咨詢學(xué)長的方式。</p><p> 通過這次對端口掃描工具的研究,我真正體會(huì)到了端口掃描的重要性。這次課程設(shè)計(jì)使我
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---端口掃描工具設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)-掃描正在服務(wù)的tcp端口
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 《計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)》
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---網(wǎng)絡(luò)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)組建課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--網(wǎng)站設(shè)計(jì)
評論
0/150
提交評論