【正文】
that his fondness for me tended to increase as an inver se function of my proximity. He gave me a fancy riding crop for a goingaway presentto hasten the process of affection, I suppose. Still, it was a very nice cropsilverchased, beautifully tooledand I made good use of it. I had decided to go looking for an assemblage of all my simple pleasures in one small nook of Shadow. It was a long rideI will not bore you with the detailsand it was pretty far from Amber, as such things go. This time, I was not looking for a place where I would be especially important. That can get either boring or difficult fairly quickly, depending on how responsible you want to be. I wanted to be an irresponsible nonentity and just enjoy myself. Texorami was a wide open port city, with sultry days and long nights, lots of good music, gambling around the cloc k, duels every morning and inbetween mayhem for those who couldn39。 ( 3)學校可以學術交流為目的復制、贈送和交換學位論文。文中除了特別加以標注的地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學院或其他教學機構的學位或證書而使用過的材料。 [9]周明天 ,汪文勇 .TCP/IP 網(wǎng)絡原理與技術 [M].北京 :清華大學出 版社, 1998。 [5]武裝 .網(wǎng)絡端口掃描及對策研究 [J].電子技術應用 ,2021,(6):1923。 參考文獻 [1]程鵝 ,董小國 .端口掃描技術及檢測 [J].華南金融電腦 .2021,(7):109112。只有發(fā)現(xiàn)并填補了網(wǎng)絡系統(tǒng)存在的各種安全漏洞,才能更有效地保護計算機網(wǎng)絡,真正將網(wǎng)絡帶來的優(yōu)勢發(fā)揮出來。 ③ 端口掃描子系統(tǒng)也可以利用綜合掃描系統(tǒng)的報警信息,對有些主機進行特定的掃描,查看正在受攻擊的端口或漏洞是否真的存在。 在綜合掃描系統(tǒng)中通過使用端口掃描系統(tǒng)來交換信息協(xié)同工作,可以使入侵檢測得到更好的效果。僅僅借助單一的漏洞掃描等工具進行的安全評估是不完整的、有局限性的,它不能夠很好地表現(xiàn)信息系統(tǒng)的安全特征,因此需要一種既能夠有效收集系統(tǒng)中各主機的安全信息,又能夠及時發(fā)現(xiàn)網(wǎng)絡中發(fā)送信息的源地址相關信息的工具為安全評估提供支持。在經(jīng)過編程測試后發(fā)現(xiàn)是延時設置過小的原因。 AfxMessageBox(成功寫入 !)。 定義兩個結構體 A 和 B, A 表示結果樹中的 IP 地址, B 表示每個 IP 下面掃描出來的端口信息。 FILE* fp = fopen(Fname,w)。 GetModuleFileName(NULL,pR,MAX_PATH)。通過全局變量判斷程序是否處于掃描狀態(tài),如果沒有則創(chuàng)建一個命為“ ”的文本文件來保存掃描結果。m_OK) EnableWindow(TRUE),以使界面上的按鈕有效,可以重新開 始掃描。 第 17 頁 共 22 頁 終止掃描 在掃描完成后選擇 “停止掃描 ”按鈕,掃描器會終止掃描并將相關的資源釋放掉以結束對系統(tǒng)資源的占用。 } ******省略部分代碼 ****** { AfxMessageBox(IP 地址 不能為空 !)。讀取起始 ip 到 m_StartIP,結束 ip 到m_EndIP 中,并判斷起始 IP 是否不大于結束 IP,如果成功就返回 true,否則返回 false。 } while ( A != NULL ) { 這里通過一個 if 循環(huán)來獲得自定義端口列表中選取的端口。 } } 該系統(tǒng)不僅可以提供端口范圍選擇,還可以讓用戶自定義端口列表,所以當用戶選 擇自定義端口列表來掃描的時候,程序就通過一個循環(huán)從自定義端口列表樹中獲得用戶勾選的端口等待掃描。 if ( m_IsChecked ) { if ( m_PortFrom m_PortTo ) { AfxMessageBox(起始端口 不應該大于 結束端口 !)。 第 15 頁 共 22 頁 hTreeInsertItem(CSPORT,A,TVI_LAST)。 lpTCPheaderth_flag==0x12) { CString StrIP = sourceip。)。amp。 if(ret!=SOCKET_ERROR) { //分析數(shù)據(jù)包 IPHEADER *lpIPheader。 ******省略部分代碼 ****** char RecvBuf[256]={0}。 DWORD lpcbBytesReturned = 0。在收到返回信息的時候接受并分析數(shù)據(jù)包是否為應用程序返回的信息。 首先判斷 IP 頭部 , 要求目的地址是本機、協(xié)議號是 TCP 協(xié)議。 int ret=bind(rawsock, (struct sockaddr *)amp。 另外在構造 TCP 頭的時候 , 第 13 頁 共 22 頁 還 添加 了 TCP 選項 SACK, 保證 TCP 連接請求被接受。 return false。 int settimeout = 500。為此可以表示接收所有的數(shù)據(jù)。當發(fā)送原始 套接字包時 (如 TCP SYN 數(shù)據(jù)包 ),操作系統(tǒng)核心并不知道,也沒有此數(shù)據(jù)發(fā)送或者連接建立的記錄。 (iErr!=0)) //連接成功后返回連接信息 第 12 頁 共 22 頁 { ******省略部分代碼 ****** //連接成功則將收到的數(shù)據(jù)插入結果樹中 InsertToTree (hTree,strIP,CSPort)。timeout)等待接受數(shù)據(jù)和同步函數(shù)。addr_in,sizeof(addr_in))。 //設置 sock 為非阻塞 iErr=ioctlsocket(sock,FIONBIO,(unsignedlong*)amp。//設置緩沖變量 IPANDPORT* lpInfor=(IPANDPORT*)lp。 所以在掃描本地主機的時候不用發(fā)送 SYN 包。 closesocket(sock)。 TCP/IP 協(xié)議棧中不會記錄該連接請求 , 所以對于服務器端返回的 SYN|ACK 包 , TCP/IP 協(xié)議棧會自動發(fā)送 RST, 不用在程序中實現(xiàn) SYN 探測的第二步。 iErr=ioctlsocket(sock,FIONBIO,(unsigned long*)amp。 } //大多數(shù)掃描技術要發(fā)送原始套接 字包來進行探測。 =lpInforNETIP。 第 10 頁 共 22 頁 IPANDPORT* lpInfor=(IPANDPORT*)lp。 (3)在對目標 IP 進行端口掃描的時候,一方面要考慮到在 掃描的時候在目標主機上留下較少的掃描記錄,另一方面要能在較小的 權限下對目標進行掃描。 } 圖 3 SYN 掃描連接示意圖 如圖 3 所示, 在半打開掃描技術中,掃描主機自動向目標計算機的指定端口發(fā)送 SYN 數(shù)據(jù)段,表示發(fā)送建立連接請求。 BOOL IsLocalIP(ULONG scanIP, ULONG* LocalIPlist, int num) { for (int i=0。 //對目標 IP,端口發(fā)送 SYN 包 . } all++。 if ( IsLocalIP(, lpLIP,numadapter) ) scanlocal(amp。 if ( k % 300 == 0 ) { //等待監(jiān)聽線程 WaitForMultipleObjects(numadapter1,hListen,FALSE,DelayTime)。 iNum 。 for (StartIP = EndIP 。 int all=0。 // 設置顯示掃描進度條的大小 // Fill LocalIP FillLocalIPList(*lpLocalIP)。 if ( hListen[] == NULL ) { AfxMessageBox(創(chuàng)建偵聽線程失敗 !)。 HANDLE* hListen=*handle。 (1)DWORD WINAPI ScanStart(LPVOID lpvoid) { 是 否 填充本地 IP 列表 讀取 IP 和端口 保存掃描結果 開始 Scanstart 主函數(shù) 本地 IP? 獲得掃描結果 結束 獲得掃描結果 保存掃描結果 結束 第 7 頁 共 22 頁 CDWordArrayamp。 程序實現(xiàn)流程 程序實現(xiàn)的流程如圖 2 所示: 圖 2 程序實現(xiàn)流程圖 主函數(shù)首先創(chuàng)建一個偵聽線程以準備獲得返回信息。 3 端口掃描器的 實現(xiàn) 功能模塊簡介 所完成的 端口掃描器的界面如圖 1 所示,相關功能 介紹如下: 圖 1 端口掃描器功能界面 目標 IP 范圍選擇模塊:選擇起始 IP 和結束 IP 以確定目標 IP 的范圍。 (2)端口選擇 需求 當我們在使用掃描軟件對目標主機進行掃描的時候,有的時候是有目的性地掃描目標主機的某一個端口,然而在大部分時候卻需要掃描批量端口或者是一些重要的指定端口。在采用 SYN 刺探方式進行掃描的基礎上成為一個基于 半打開 的實用、簡單、方便的端口掃描工具 。用收到包的時間減去發(fā)送時間 戳即得到分組時延。可以考慮用一種變通的方式嵌入時間戳。雖然 TCP 協(xié)議規(guī)定了時間戳選項 (類型 8), 用該選項中嵌入時間戳 , 服務器返回包的選項部分含有發(fā)送的時間戳。 第二步 : 因為不需要建立正常的 TCP 連接 , 所以對應答 ACK 包的服務器發(fā)送 RST 包 , 保證服務器端關閉半連接。 第 4 頁 共 22 頁 SYN 包探測 第一步 : 客戶端向服務器的工作端口發(fā)送 SYN, 服務器返回 SYN|ACK 包或 RST 包。通過網(wǎng)絡 上別人的一些測試和實驗發(fā)現(xiàn) , 對 Inter 中發(fā)布的 60 個 HTTP 代理服務器進行探測。所有的 URG, PSH 和 FIN, 或者沒有任何標記的 TCP 數(shù)據(jù)包都會引起 “FIN行為 ”。 (2)當一個包含 ACK 的數(shù)據(jù)包到達一個監(jiān)聽端口時 , 數(shù)據(jù)包被丟棄 , 同時發(fā)送一個 RST 數(shù)據(jù)包。 TCP 端口掃描技術通過發(fā)送一些特殊的 TCP 包 判斷目標主機和端口狀態(tài)。 SYN技術詳解 TCP 包探測原理 高效的探測方法需要解決 3 個問題 : (1)用幾個包判斷主機和端口狀態(tài) ; (2)占用雙方的資源少 ; (3)準確的分組時延計算方法。因此現(xiàn)在的狀態(tài)稱為 “半連接 ”。 它的工作原理大致如下:握手的第一步,一臺計算機首先請求和另外一臺計算機建立連接,它通過發(fā)送一個 SYN 請求來完成,也即前面提到的 SYN 標記位置位。這里僅提到其中的四個標記位: SYN(同步 ), ACK(確認 ), RST(復位 )和 FIN(完成 )。 掃描器通過選用遠程 TCP/IP 不同的端口的服務,并記錄目標給予的回答,通過這種方法,可以搜集到很多關于目標主機的各種有用的信息。端口掃描也可以通過捕獲本地主機或服務器的流入流出 IP 數(shù)據(jù)包來監(jiān)視本地主機的運行情況,它僅能對接收到的數(shù)據(jù)進行分析,幫助我們發(fā)現(xiàn) 目標主機的某些內(nèi)在的弱點,而不會提供進入一個系統(tǒng)的詳細步驟。這些公司的掃描器以硬件為主,其特點是執(zhí)行速度快,不像軟件一樣受到安裝主機系統(tǒng)性能的限制。 國外安全掃描技術的歷史可以追溯到 20 世紀 90 年代,當時 因特網(wǎng)剛剛起步,但是在過去的十多年內(nèi),掃描技術飛速發(fā)展,迄今為止,其掃描技術己經(jīng)非常完善,但是在全面性、隱蔽性和智能性上還有待提高。對目標計算機進行端口掃描,能得到許多有用的信息。而端口是主機與外界通訊交流的數(shù)據(jù)出入口,即是 “門窗 ”。 Network secu