日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

安全第一 網(wǎng)絡(luò)端口掃描技術(shù)介紹

一:TCP/IP相關(guān)問題
連接端及標(biāo)記
IP地址和端口被稱作套接字,它代表一個(gè)TCP連接的一個(gè)連接端 。為了獲得TCP服務(wù),必須在發(fā)送機(jī)的一個(gè)端口上和接收機(jī)的一個(gè)端口上建立連接 。TCP連接用兩個(gè)連接端來區(qū)別,也就是(連接端1,連接端2) 。連接端互相發(fā)送數(shù)據(jù)包 。
一個(gè)TCP數(shù)據(jù)包包括一個(gè)TCP頭,后面是選項(xiàng)和數(shù)據(jù) 。一個(gè)TCP頭包含6個(gè)標(biāo)志位 。它們的意義分別為:
SYN: 標(biāo)志位用來建立連接,讓連接雙方同步序列號 。如果SYN=1而ACK=0,則表示該數(shù)據(jù)包為連接請求,如果SYN=1而ACK=1則表示接受連接 。
FIN: 表示發(fā)送端已經(jīng)沒有數(shù)據(jù)要求傳輸了,希望釋放連接 。
RST: 用來復(fù)位一個(gè)連接 。RST標(biāo)志置位的數(shù)據(jù)包稱為復(fù)位包 。一般情況下,如果TCP收到的一個(gè)分段明顯不是屬于該主機(jī)上的任何一個(gè)連接,則向遠(yuǎn)端發(fā)送一個(gè)復(fù)位包 。
URG: 為緊急數(shù)據(jù)標(biāo)志 。如果它為1,表示本數(shù)據(jù)包中包含緊急數(shù)據(jù) 。此時(shí)緊急數(shù)據(jù)指針有效 。
ACK: 為確認(rèn)標(biāo)志位 。如果為1,表示包中的確認(rèn)號時(shí)有效的 。否則,包中的確認(rèn)號無效 。
PSH: 如果置位,接收端應(yīng)盡快把數(shù)據(jù)傳送給應(yīng)用層 。
TCP連接的建立
TCP是一個(gè)面向連接的可靠傳輸協(xié)議 。面向連接表示兩個(gè)應(yīng)用端在利用TCP傳送數(shù)據(jù)前必須先建立TCP連接 。TCP的可靠性通過校驗(yàn)和,定時(shí)器,數(shù)據(jù)序號和應(yīng)答來提供 。通過給每個(gè)發(fā)送的字節(jié)分配一個(gè)序號,接收端接收到數(shù)據(jù)后發(fā)送應(yīng)答,TCP協(xié)議保證了數(shù)據(jù)的可靠傳輸 。數(shù)據(jù)序號用來保證數(shù)據(jù)的順序,剔除重復(fù)的數(shù)據(jù) 。在一個(gè)TCP會(huì)話中,有兩個(gè)數(shù)據(jù)流(每個(gè)連接端從另外一端接收數(shù)據(jù),同時(shí)向?qū)Ψ桨l(fā)送數(shù)據(jù)),因此在建立連接時(shí),必須要為每一個(gè)數(shù)據(jù)流分配ISN(初始序號) 。為了了解實(shí)現(xiàn)過程,我們假設(shè)客戶端C希望跟服務(wù)器端S建立連接,然后分析連接建立的過程(通常稱作三階段握手):
1: C --SYN XX?S
2: C ?-SYN YY/ACK XX 1------- S
3: C ----ACK YY 1--?S
1:C發(fā)送一個(gè)TCP包(SYN 請求)給S,其中標(biāo)記SYN(同步序號)要打開 。SYN請求指明了客戶端希望連接的服務(wù)器端端口號和客戶端的ISN(XX是一個(gè)例子) 。
2:服務(wù)器端發(fā)回應(yīng)答,包含自己的SYN信息ISN(YY)和對C的SYN應(yīng)答,應(yīng)答時(shí)返回下一個(gè)希望得到的字節(jié)序號(YY 1) 。
3:C 對從S 來的SYN進(jìn)行應(yīng)答,數(shù)據(jù)發(fā)送開始 。
一些實(shí)現(xiàn)細(xì)節(jié)
大部分TCP/IP實(shí)現(xiàn)遵循以下原則:
1:當(dāng)一個(gè)SYN或者FIN數(shù)據(jù)包到達(dá)一個(gè)關(guān)閉的端口,TCP丟棄數(shù)據(jù)包同時(shí)發(fā)送一個(gè)RST數(shù)據(jù)包 。
2:當(dāng)一個(gè)RST數(shù)據(jù)包到達(dá)一個(gè)監(jiān)聽端口,RST被丟棄 。
3:當(dāng)一個(gè)RST數(shù)據(jù)包到達(dá)一個(gè)關(guān)閉的端口,RST被丟棄 。
4:當(dāng)一個(gè)包含ACK的數(shù)據(jù)包到達(dá)一個(gè)監(jiān)聽端口時(shí),數(shù)據(jù)包被丟棄,同時(shí)發(fā)送一個(gè)RST數(shù)據(jù)包 。
5:當(dāng)一個(gè)SYN位關(guān)閉的數(shù)據(jù)包到達(dá)一個(gè)監(jiān)聽端口時(shí),數(shù)據(jù)包被丟棄 。
6:當(dāng)一個(gè)SYN數(shù)據(jù)包到達(dá)一個(gè)監(jiān)聽端口時(shí),正常的三階段握手繼續(xù),回答一個(gè)SYN ACK數(shù)據(jù)包 。
7:當(dāng)一個(gè)FIN數(shù)據(jù)包到達(dá)一個(gè)監(jiān)聽端口時(shí),數(shù)據(jù)包被丟棄 。"FIN行為"(關(guān)閉得端口返回RST,監(jiān)聽端口丟棄包),在URG和PSH標(biāo)志位置位時(shí)同樣要發(fā)生 。所有的URG,PSH和FIN,或者沒有任何標(biāo)記的TCP數(shù)據(jù)包都會(huì)引起"FIN行為" 。二:全TCP連接和SYN掃描器
全TCP連接
全TCP連接是長期以來TCP端口掃描的基礎(chǔ) 。掃描主機(jī)嘗試(使用三次握手)與目的機(jī)指定端口建立建立正規(guī)的連接 。連接由系統(tǒng)調(diào)用connect()開始 。對于每一個(gè)監(jiān)聽端口,connect()會(huì)獲得成功,否則返回-1,表示端口不可訪問 。由于通常情況下,這不需要什么特權(quán),所以幾乎所有的用戶(包括多用戶環(huán)境下)都可以通過connect來實(shí)現(xiàn)這個(gè)技術(shù) 。

推薦閱讀