fin埠
⑴ tcp協議中syn ack fin各有什麼作用
TCP的三次握手是怎麼進行的了:發送端發送一個SYN=1,ACK=0標志的數據包給接收端,請求進行連接,這是第一次握手;接收端收到請求並且允許連接的話,就會發送一個SYN=1,ACK=1標志的數據包給發送端,告訴它,可以通訊了,並且讓發送端發送一個確認數據包,這是第二次握手;最後,發送端發送一個SYN=0,ACK=1的數據包給接收端,告訴它連接已被確認,這就是第三次握手。之後,一個TCP連接建立,開始通訊。
*SYN:同步標志
同步序列編號(Synchronize Sequence Numbers)欄有效。該標志僅在三次握手建立TCP連接時有效。它提示TCP連接的服務端檢查序列編號,該序列編號為TCP連接初始端(一般是客戶端)的初始序列編號。在這里,可以把TCP序列編號看作是一個范圍從0到4,294,967,295的32位計數器。通過TCP連接交換的數據中每一個位元組都經過序列編號。在TCP報頭中的序列編號欄包括了TCP分段中第一個位元組的序列編號。
*ACK:確認標志
確認編號(Acknowledgement Number)欄有效。大多數情況下該標志位是置位的。TCP報頭內的確認編號欄內包含的確認編號(w+1,Figure-1)為下一個預期的序列編號,同時提示遠端系統已經成功接收所有數據。
*RST:復位標志
復位標志有效。用於復位相應的TCP連接。
*URG:緊急標志
緊急(The urgent pointer) 標志有效。緊急標志置位,
*PSH:推標志
該標志置位時,接收端不將該數據進行隊列處理,而是盡可能快將數據轉由應用處理。在處理 telnet 或 rlogin 等交互模式的連接時,該標志總是置位的。
*FIN:結束標志
帶有該標志置位的數據包用來結束一個TCP回話,但對應埠仍處於開放狀態,准備接收後續數據
三次握手Three-way Handshake
一個虛擬連接的建立是通過三次握手來實現的
1. (B) --> [SYN] --> (A)
假如伺服器A和客戶機B通訊. 當A要和B通信時,B首先向A發一個SYN (Synchronize) 標記的包,告訴A請求建立連接.
注意: 一個 SYN包就是僅SYN標記設為1的TCP包(參見TCP包頭Resources). 認識到這點很重要,只有當A受到B發來的SYN包,才可建立連接,除此之外別無他法。因此,如果你的防火牆丟棄所有的發往外網介面的SYN包,那麼你將不能讓外部任何主機主動建立連接。
2. (B) <-- [SYN/ACK] <--(A)
接著,A收到後會發一個對SYN包的確認包(SYN/ACK)回去,表示對第一個SYN包的確認,並繼續握手操作.
注意: SYN/ACK包是僅SYN 和 ACK 標記為1的包.
3. (B) --> [ACK] --> (A)
B收到SYN/ACK 包,B發一個確認包(ACK),通知A連接已建立。至此,三次握手完成,一個TCP連接完成
Note: ACK包就是僅ACK 標記設為1的TCP包. 需要注意的是當三此握手完成、連接建立以後,TCP連接的每個包都會設置ACK位
這就是為何連接跟蹤很重要的原因了. 沒有連接跟蹤,防火牆將無法判斷收到的ACK包是否屬於一個已經建立的連接.一般的包過濾(Ipchains)收到ACK包時,會讓它通過(這絕對不是個好主意). 而當狀態型防火牆收到此種包時,它會先在連接表中查找是否屬於哪個已建連接,否則丟棄該包
四次握手Four-way Handshake
四次握手用來關閉已建立的TCP連接
1. (B) --> ACK/FIN --> (A)
2. (B) <-- ACK <-- (A)
3. (B) <-- ACK/FIN <-- (A)
4. (B) --> ACK --> (A)
注意: 由於TCP連接是雙向連接, 因此關閉連接需要在兩個方向上做。ACK/FIN 包(ACK 和FIN 標記設為1)通常被認為是FIN(終結)包.然而, 由於連接還沒有關閉, FIN包總是打上ACK標記. 沒有ACK標記而僅有FIN標記的包不是合法的包,並且通常被認為是惡意的
⑵ 埠狀態filtered和closed有什麼區別
埠狀態filtered和closed的區別是:過濾狀態和關閉狀態。埠的過濾狀態,其實就是導通狀態。而關閉狀態,很清楚就是斷開狀態。
⑶ 埠狀態:FIN_WAIT_1是什麼意思是埠被佔用了么
不是 ,只是一個埠狀態,前提是這個埠在使用
⑷ 說明TCP中的SYN、RST、FIN中可能出現的掃描攻擊
在TCP報文的報頭中,有幾個標志欄位:
1、 SYN:同步連接序號,TCP SYN報文就是把這個標志設置為1,來請求建立連接;
2、 ACK:請求/應答狀態。0為請求,1為應答;
3、 FIN:結束連線。如果FIN為0是結束連線請求,FIN為1表示結束連線;
4、 RST:連線復位,首先斷開連接,然後重建;
5、 PSH:通知協議棧盡快把TCP數據提交給上層程序處理。
可能出現的掃描:(33/ppt11 - 43/ppt11 介紹了下面各種掃描的做法及優缺點)
§基本的TCP connect()掃描
§TCP SYN掃描(半開連接掃描, half open)
§TCP Fin掃描(秘密掃描,stealth)
§TCP ftp proxy掃描(bounce attack)
§用IP分片進行SYN/FIN掃描(躲開包過濾防火牆)
§UDP recvfrom掃描
§UDP ICMP埠不可達掃描
§Reverse-ident掃描
(針對TCP中SYN、RST、FIN標志欄位可能出現的攻擊,記一下名稱應該就可以了)
埠掃描攻擊:
攻擊者計算機便可以通過發送合適的報文,判斷目標計算機哪些TCP或UDP埠是開放的,過程如下:
1、 發出埠號從0開始依次遞增的TCP SYN或UDP報文(埠號是一個16比特的數字,這樣最大為65535,數量很有限); 2、 如果收到了針對這個TCP報文的RST報文,或針對這個UDP報文的ICMP不可達報文,則說明這個埠沒有開放; 3、 相反,如果收到了針對這個TCP SYN報文的ACK報文,或者沒有接收到任何針對該UDP報文的ICMP報文,則說明該TCP埠是開放的,UDP埠可能開放(因為有的實現中可能不回應ICMP不可達報文,即使該UDP埠沒有開放)。 這樣繼續下去,便可以很容易的判斷出目標計算機開放了哪些TCP或UDP埠,然後針對埠的具體數字,進行下一步攻擊,這就是所謂的埠掃描攻擊。
TCP SYN拒絕服務攻擊;
1、 攻擊者向目標計算機發送一個TCP SYN報文; 2、 目標計算機收到這個報文後,建立TCP連接控制結構(TCB),並回應一個ACK,等待發起者的回應; 3、 而發起者則不向目標計算機回應ACK報文,這樣導致目標計算機一致處於等待狀態。
分片IP報文攻擊:
為了傳送一個大的IP報文,IP協議棧需要根據鏈路介面的MTU對該IP報文進行分片,通過填充適當的IP頭中的分片指示欄位,接收計算機可以很容易的把這些IP分片報文組裝起來。
目標計算機在處理這些分片報文的時候,會把先到的分片報文緩存起來,然後一直等待後續的分片報文,這個過程會消耗掉一部分內存,以及一些IP協議棧的數據結構。如果攻擊者給目標計算機只發送一片分片報文,而不發送所有的分片報文,這樣攻擊者計算機便會一直等待(直到一個內部計時器到時),如果攻擊者發送了大量的分片報文,就會消耗掉目標計算機的資源,而導致不能相應正常的IP報文,這也是一種DOS攻擊。
SYN比特和FIN比特同時設置:
正常情況下,SYN標志(連接請求標志)和FIN標志(連接拆除標志)是不能同時出現在一個TCP報文中的。而且RFC也沒有規定IP協議棧如何處理這樣的畸形報文,因此,各個操作系統的協議棧在收到這樣的報文後的處理方式也不同,攻擊者就可以利用這個特徵,通過發送SYN和FIN同時設置的報文,來判斷操作系統的類型,然後針對該操作系統,進行進一步的攻擊。
⑸ 網路中的ACK; SYN; FIN都是什麼
SYN表示建立連接,
FIN表示關閉連接,
ACK表示響應
第一次握手:主機A發送位碼內為syn=1,隨機產生容seq number=1234567的數據包到伺服器,主機B由SYN=1知道,A要求建立聯機;
第二次握手:主機B收到請求後要確認聯機信息,向A發送ack number=(主機A的seq+1),syn=1,ack=1,隨機產生seq=7654321的包;
第三次握手:主機A收到後檢查ack number是否正確,即第一次發送的seq number+1,以及位碼ack是否為1,若正確,主機A會再發送ack number=(主機B的seq+1),ack=1,主機B收到後確認seq值與ack=1則連接建立成功。 完成三次握手,主機A與主機B開始傳送數據。
⑹ TCP FIN屬於典型埠掃描類型嗎
是的,TCP FIN屬於典型埠掃描類型。
參見http://blog.sina.com.cn/s/blog_547d50640100d7g6.html
⑺ UDP埠和TCP埠各是什麼作用都有哪些
」也就是說,不管TCP還是UDP,都含有網路服務必須的源埠和目的埠信息,以建立和實現網路傳輸服務。這時,你的疑問就來了:既然都用於傳輸,為何要搞兩個不同的協議呢?這就需要從網路中不同服務的需求來談起。 在網路中,有些服務,如HTTP、FTP等,對數據的可靠性要求較高,在使用這些服務時,必須保證數據包能夠完整無誤的送達;而另外一些服務,如DNS、即時聊天工具等,並不需要這么高的可靠性,高效率和實時性才是它們所關心的。根據這兩種服務不同的需求,也就誕生了面向連接的TCP協議,以及面向無連接的UDP協議。 這里的連接(Connection)和無連接(Connectionless)是網路傳輸中常用的術語,它們的關系可以用一個形象地比喻來說明,就是打電話和寫信。 打電話時,一個人首先必須撥號(發出連接請求),等待對方響應,接聽電話(建立了連接)後,才能夠相互傳遞信息。通話完成後,還需要掛斷電話(斷開連接),才算完成了整個通話過程。寫信則不同,你只需填寫好收信人的地址信息,然後將信投入郵局,就算完成了任務。此時,郵局會根據收信人的地址信息,將信件送達指定目的地。 我們可以看到,這兩者之間有很大不同。打電話時,通話雙方必須建立一個連接,才能夠傳遞信息。連接也保證了信息傳遞的可靠性,因此,面向連接的協議必然是可靠的。無連接就沒有這么多講究,它不管對方是否有響應,是否有回饋,只管將信息發送出去。就像信件一旦進了郵箱,在它到達目的地之前,你沒法追蹤這封信的下落;接收者即使收到了信件,也不會通知你信件何時到達。在整個通訊過程中,沒有任何保障。因此我們常說,面向無連接的協議也是不可靠的。當然,郵局會盡力將右鍵送到目的地,99%的情況信件會安全到達,但在少數情況下也有例外。 面向連接的協議比面向無連接的協議在可靠性上有著顯著的優勢,但建立連接前必須等待接收方響應,傳輸信息過程中必須確認信息是否傳到,斷開連接時需要發出響應信號等,無形中加大了面向連接協議的資源開銷。具體到TCP和UDP協議來說,除了源埠和目的埠,TCP還包括序號、確認信號、數據偏移、控制標志(通常說的URG、ACK、PSH、RST、SYN、FIN)、窗口、校驗和、緊急指針、選項等信息,UDP則只包含長度和校驗和信息。UDP數據報比TCP小許多,這意味著更小的負載和更有效的使用帶寬。許多即時聊天軟體採用UDP協議,與此有莫大的關系。
⑻ FIN,PSH,ACK三個狀態位,表示什麼意思
*FIN:結束標志
帶有該標志置位的數據包用來結束一個TCP回話,但對應埠仍處於開放狀態,准備接收後續數據。
*SYN:同步標志
同步序列編號(Synchronize Sequence Numbers)欄有效。該標志僅在三次握手建立TCP連接時有效。它提示TCP連接的服務端檢查序列編號,該序列編號為TCP連接初始端(一般是客戶端)的初始序列編號。在這里,可以把 TCP序列編號看作是一個范圍從0到4,294,967,295的32位計數器。通過TCP連接交換的數據中每一個位元組都經過序列編號。在TCP報頭中的序列編號欄包括了TCP分段中第一個位元組的序列編號。
*ACK:確認標志
確認編號(Acknowledgement Number)欄有效。大多數情況下該標志位是置位的。TCP報頭內的確認編號欄內包含的確認編號(w+1,Figure-1)為下一個預期的序列編號,同時提示遠端系統已經成功接收所有數據。