TCP/IP协议-概念、应用、开发、Hack
生活随笔
收集整理的這篇文章主要介紹了
TCP/IP协议-概念、应用、开发、Hack
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
TCP/IP協(xié)議
? ? Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。
? ? TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉藴省f(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求。通俗而言:TCP負責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設(shè)備規(guī)定一個地址。
? ??
? ? 數(shù)據(jù)幀:幀頭+IP數(shù)據(jù)包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
? ? IP數(shù)據(jù)包:IP頭部+TCP數(shù)據(jù)信息(IP頭包括源和目標主機IP地址、類型、生存期等)
? ? TCP數(shù)據(jù)信息:TCP頭部+實際數(shù)據(jù) (TCP頭包括源和目標主機端口號、順序號、確認號、校驗字等)
2 IP地址
? ? 在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現(xiàn),我們稱它為主機。為了實現(xiàn)各主機間的通信,每臺主機都必須有一個唯一的網(wǎng)絡(luò)地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現(xiàn)混亂。
? ? Internet的網(wǎng)絡(luò)地址是指連入Internet網(wǎng)絡(luò)的計算機的地址編號。所以,在Internet網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標識一臺計算機。
? ? 我們都已經(jīng)知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網(wǎng)絡(luò)上的每一臺計算機,靠的就是能唯一標識該計算機的網(wǎng)絡(luò)地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協(xié)議語言表示的地址。
? ? 在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點分開,用四個字節(jié)來表示,而且,用點分開的每個字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數(shù)表示法。
3 OSI參考模型
? ? OSI參考模型是ISO的建議,它是為了使各層上的協(xié)議國際標準化而發(fā)展起來的。OSI參考模型全稱是開放系統(tǒng)互連參考模型(Open System Interconnection Reference Model)。這一參考模型共分為七層:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層;
? ? 物理層(Physical Layer)主要是處理機械的、電氣的和過程的接口,以及物理層下的物理傳輸介質(zhì)等。
? ? 數(shù)據(jù)鏈路層(Data Link Layer)的任務(wù)是加強物理層的功能,使其對網(wǎng)絡(luò)層顯示為一條無錯的線路。
? ? 網(wǎng)絡(luò)層(Network Layer)確定分組從源端到目的端的路由選擇。路由可以選用網(wǎng)絡(luò)中固定的靜態(tài)路由表,也可以在每一次會話時決定,還可以根據(jù)當(dāng)前的網(wǎng)絡(luò)負載狀況,靈活地為每一個分組分別決定。
? ? 傳輸層(Transport Layer)從會話層接收數(shù)據(jù),并傳輸給網(wǎng)絡(luò)層,同時確保到達目的端的各段信息正確無誤,而且使會話層不受硬件變化的影響。通常,會話層每請求建立一個傳輸連接,傳輸層就會為其創(chuàng)建一個獨立的網(wǎng)絡(luò)連接。但如果傳輸連接需要一個較高的吞吐量,傳輸層也可以為其創(chuàng)建多個網(wǎng)絡(luò)連接,讓數(shù)據(jù)在這些網(wǎng)絡(luò)連接上分流,以提高吞吐量。而另一方面,如果創(chuàng)建或維持一個獨立的網(wǎng)絡(luò)連接不合算,傳輸層也可將幾個傳輸連接復(fù)用到同一個網(wǎng)絡(luò)連接上,以降低費用。除了多路復(fù)用,傳輸層還需要解決跨網(wǎng)絡(luò)連接的建立和拆除,并具有流量控制機制。
? ? 會話層(Session Layer)允許不同機器上的用戶之間建立會話關(guān)系,既可以進行類似傳輸層的普通數(shù)據(jù)傳輸,也可以被用于遠程登錄到分時系統(tǒng)或在兩臺機器間傳遞文件。
? ? 表示層(Presentation Layer)用于完成一些特定的功能,這些功能由于經(jīng)常被請求,因此人們希望有通用的解決辦法,而不是由每個用戶各自實現(xiàn)。
? ? 應(yīng)用層(Application Layer)中包含了大量人們普遍需要的協(xié)議。不同的文件系統(tǒng)有不同的文件命名原則和不同的文本行表示方法等,不同的系統(tǒng)之間傳輸文件還有各種不兼容問題,這些都將由應(yīng)用層來處理。此外,應(yīng)用層還有虛擬終端、電子郵件和新聞組等各種通用和專用的功能。
1 協(xié)議測試
全面的測試應(yīng)包括局域網(wǎng)和互聯(lián)網(wǎng)兩個方面,因此應(yīng)從局域網(wǎng)和互聯(lián)網(wǎng)兩個方面測試,以下是在實際工作中利用命令行測試TCP/IP配置步驟:
1). 單擊“開始”/“運行”,輸入CMD按回車,打開命令提示符窗口。
2).首先檢查IP地址、子網(wǎng)掩碼、默認網(wǎng)關(guān)、DNS服務(wù)器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網(wǎng)絡(luò)配置,觀查是否正確。
3).輸入ping 127.0.0.1,觀查網(wǎng)卡是否能轉(zhuǎn)發(fā)數(shù)據(jù),如果出現(xiàn)“Request timed out”(請求超時),表明配置出錯或網(wǎng)絡(luò)有問題。
4).Ping一個互聯(lián)網(wǎng)地址,看是否有數(shù)據(jù)包傳回,以驗證與互聯(lián)網(wǎng)的連接性。
5). Ping 一個局域網(wǎng)地址,觀查與它的連通性。
6).用nslookup測試DNS解析是否正確,輸入如nslookup ,查看是否能解析。
如果你的計算機通過了全部測試,則說明網(wǎng)絡(luò)正常,否則網(wǎng)絡(luò)可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設(shè)置丟棄ICMP數(shù)據(jù)包,造成你的ping命令無法正常返回數(shù)據(jù)包,不防換個網(wǎng)站試試。
2 協(xié)議重置
如果需要重新安裝 TCP/IP 以使TCP/IP 堆棧恢復(fù)為原始狀態(tài)。可以使用NetShell 實用程序重置TCP/IP 堆棧,使其恢復(fù)到初次安裝操作系統(tǒng)時的狀態(tài)。具體操作如下:
1).單擊 開始--> 運行,輸入"CMD" 后單擊"確定";
2).在命令行模式輸入命令
netsh int ip reset C:\resetlog.txt
(其中,Resetlog.txt記錄命令結(jié)果的日志文件,一定要指定,這里指定了Resetlog.txt 日志文件及完整路徑。)
運行結(jié)果可以查看C:\resetlog.txt
運行此命令的結(jié)果與刪除并重新安裝TCP/IP 協(xié)議的效果相同。
注意
本操作具有一定的風(fēng)險性,請在操作前備份重要數(shù)據(jù),并根據(jù)操作熟練度酌情使用。
? ? SYN(synchronous)是TCP/IP建立連接時使用的握手信號。在客戶機和服務(wù)器之間建立正常的TCP網(wǎng)絡(luò)連接時,客戶機首先發(fā)出一個SYN消息,服務(wù)器使用SYN+ACK應(yīng)答表示接收到了這個消息,最后客戶機再以ACK消息響應(yīng)。這樣在客戶機和服務(wù)器之間才能建立起可靠的TCP連接,數(shù)據(jù)才可以在客戶機和服務(wù)器之間傳遞。
? ? TCP連接的第一個包,非常小的一種數(shù)據(jù)包。
2 ACK
? ? Acknowledgement,即確認字符,在數(shù)據(jù)通信中,接收站發(fā)給發(fā)送站的一種傳輸類控制字符。表示發(fā)來的數(shù)據(jù)已確認接收無誤。
? ? 在TCP/IP協(xié)議中,如果接收方成功的接收到數(shù)據(jù),那么會回復(fù)一個ACK數(shù)據(jù)。通常ACK信號有自己固定的格式,長度大小,由接收方回復(fù)給發(fā)送方。其格式取決于采取的網(wǎng)絡(luò)協(xié)議。當(dāng)發(fā)送方接收到ACK信號時,就可以發(fā)送下一個數(shù)據(jù)。如果發(fā)送方?jīng)]有收到信號,那么發(fā)送方可能會重發(fā)當(dāng)前的數(shù)據(jù)包,也可能停止傳送數(shù)據(jù)。具體情況取決于所采用的網(wǎng)絡(luò)協(xié)議。
? ? TCP報文格式中的控制位由6個標志比特構(gòu)成,其中一個就是ACK,ACK為1表示確認號有效,為0表示報文中不包含確認信息,忽略確認號字段。
? ? ACK也可用于AT24cxx這一系列的EEPROM中。
? ? 在USB傳輸中,ACK事務(wù)包用來向主機/設(shè)備報告包正確的傳輸。
3 FIN
? ? FIN(ISH)為TCP報頭的碼位字段,該位置為1的含義為發(fā)送方字節(jié)流結(jié)束,用于關(guān)閉連接。
? ? 當(dāng)兩端交換帶有FIN標志的TCP報文段并且每一端都確認另一端發(fā)送的FIN包時,TCP連接將會關(guān)閉。FIN位字面上的意思是連接一方再也沒有更多新的數(shù)據(jù)發(fā)送。然而,那些重傳的數(shù)據(jù)會被傳送,直到接收端確認所有的信息。
? ? SYN 攻擊包括大量此類的包,由于這些包看上去來自實際不存在的站點,因此無法有效進行處理。每個機器的欺騙包都要花幾秒鐘進行嘗試方可放棄提供正常響應(yīng)。
攻擊性質(zhì)
? ? SYN攻擊屬于DDoS攻擊的一種,它利用TCP協(xié)議缺陷,通過發(fā)送大量的半連接請求,耗費CPU和內(nèi)存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火墻等網(wǎng)絡(luò)系統(tǒng),事實上SYN攻擊并不管目標是什么系統(tǒng),只要這些系統(tǒng)打開TCP服務(wù)就可以實施。服務(wù)器接收到連接請求(syn= j),將此信息加入未連接隊列,并發(fā)送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態(tài)。當(dāng)服務(wù)器未收到客戶端的確認包時,重發(fā)請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內(nèi)偽造大量不存在的IP地址,向服務(wù)器不斷地發(fā)送syn包,服務(wù)器回復(fù)確認包,并等待客戶的確認,由于源地址是不存在的,服務(wù)器需要不斷的重發(fā)直至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標系統(tǒng)運行緩慢,嚴重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓。
攻擊原理
? ? 歸納起來,主要有兩大類,一類是通過防火墻、路由器等過濾網(wǎng)關(guān)防護,另一類是通過加固TCP/IP協(xié)議棧防范。
? ? SYN Flood利用TCP協(xié)議缺陷,發(fā)送了大量偽造的TCP連接請求,使得被攻擊方資源耗盡,無法及時回應(yīng)或處理正常的服務(wù)請求。一個正常的TCP連接需要三次握手,首先客戶端發(fā)送一個包含SYN標志的數(shù)據(jù)包,其后服務(wù)器返回一個SYN/ACK的應(yīng)答包,表示客戶端的請求被接受,最后客戶端再返回一個確認包ACK,這樣才完成TCP連接。在服務(wù)器端發(fā)送應(yīng)答包后,如果客戶端不發(fā)出確認,服務(wù)器會等待到超時,期間這些半連接狀態(tài)都保存在一個空間有限的緩存隊列中;如果大量的SYN包發(fā)到服務(wù)器端后沒有應(yīng)答,就會使服務(wù)器端的TCP資源迅速耗盡,導(dǎo)致正常的連接不能進入,甚至?xí)?dǎo)致服務(wù)器的系統(tǒng)崩潰。
攻擊器
? ? SYN攻擊實現(xiàn)起來非常的簡單,互聯(lián)網(wǎng)上有大量現(xiàn)成的SYN攻擊工具。
? ? windows系統(tǒng)下的SYN工具
? ? 以synkill.exe為例,運行工具,選擇隨機的源地址和源端囗,并填寫目標機器地址和TCP端囗,激活運行,很快就會發(fā)現(xiàn)目標系統(tǒng)運行緩慢。如果攻擊效果不明顯,可能是目標機器并未開啟所填寫的TCP端囗或者防火墻拒絕訪問該端囗,此時可選擇允許訪問的TCP端囗,通常,windows系統(tǒng)開放tcp139端囗,UNIX系統(tǒng)開放tcp7、21、23等端囗。
檢測攻擊
? ? 檢測SYN攻擊非常的方便,當(dāng)你在服務(wù)器上看到大量的半連接狀態(tài)時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統(tǒng)自帶的netstat 工具來檢測SYN攻擊:
# netstat -n -p TCP
tcp 0 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV -
tcp 0 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV -
tcp 0 0 10.11.11.11:23 222.220.13.25:47393 SYN_RECV -
tcp 0 0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV -
tcp 0 0 10.11.11.11:23 232.115.18.38:278 SYN_RECV -
tcp 0 0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV -
...
上面是在LINUX系統(tǒng)中看到的,很多連接處于SYN_RECV狀態(tài)(在WINDOWS系統(tǒng)中是SYN_RECEIVED狀態(tài)),源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。
我們也可以通過下面的命令直接查看在LINUX環(huán)境下某個端囗的未連接隊列的條目數(shù):
#netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
324
顯示TCP端囗22的未連接數(shù)有324個,雖然還遠達不到系統(tǒng)極限,但應(yīng)該引起管理員的注意。
防范技術(shù)
? ? 一類是通過防火墻、路由器等過濾網(wǎng)關(guān)防護,另一類是通過加固TCP/IP協(xié)議棧防范
注冊表設(shè)置
? ? 在“開始->運行->鍵入regedit”
? ? 啟用 SYN 攻擊保護的命名值位于注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters之下。值名稱:SynAttackProtect。推薦值:2。
? ? 以下部分中的所有項和值均位于注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 之下。
? ? 指定必須在觸發(fā) SYN flood 保護之前超過的 TCP 連接請求閾值。值名稱:TcpMaxPortsExhausted。推薦值:5。
? ? 啟用 SynAttackProtect 后,該值指定 SYN_RCVD 狀態(tài)中的 TCP 連接閾值,超過 SynAttackProtect 時,觸發(fā) SYN flood 保護。值名稱:TcpMaxHalfOpen。推薦值數(shù)據(jù):500。
? ? 啟用 SynAttackProtect 后,指定至少發(fā)送了一次重傳的 SYN_RCVD 狀態(tài)中的 TCP 連接閾值。超過 SynAttackProtect 時,觸發(fā) SYN flood 保護。值名稱:TcpMaxHalfOpenRetried。推薦值數(shù)據(jù):400
豐富帶寬資源
? ? 不難看出syn攻擊消耗帶寬資源所以要想防御synflood一個豐富的帶寬資源是必要的,通常的流量攻擊,攻擊者也是利用肉雞的帶寬資源來達到攻擊堵死網(wǎng)絡(luò)的,所以這個是一個前提
防火墻
? ? 利用防火墻來進行防護攻擊是目前最有效的方法,當(dāng)然前提是攻擊在防護帶寬范圍之內(nèi),也就是為什么第二條推薦帶寬資源,這是保證在防火墻前面不會造成堵塞,來達到防火墻的防護目的。
一 協(xié)議概述
<一> 概念
1 基本概念? ? Transmission Control Protocol/Internet Protocol的簡寫,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。
? ? TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉藴省f(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求。通俗而言:TCP負責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺聯(lián)網(wǎng)設(shè)備規(guī)定一個地址。
? ??
? ? 數(shù)據(jù)幀:幀頭+IP數(shù)據(jù)包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
? ? IP數(shù)據(jù)包:IP頭部+TCP數(shù)據(jù)信息(IP頭包括源和目標主機IP地址、類型、生存期等)
? ? TCP數(shù)據(jù)信息:TCP頭部+實際數(shù)據(jù) (TCP頭包括源和目標主機端口號、順序號、確認號、校驗字等)
2 IP地址
? ? 在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現(xiàn),我們稱它為主機。為了實現(xiàn)各主機間的通信,每臺主機都必須有一個唯一的網(wǎng)絡(luò)地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現(xiàn)混亂。
? ? Internet的網(wǎng)絡(luò)地址是指連入Internet網(wǎng)絡(luò)的計算機的地址編號。所以,在Internet網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標識一臺計算機。
? ? 我們都已經(jīng)知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網(wǎng)絡(luò)上的每一臺計算機,靠的就是能唯一標識該計算機的網(wǎng)絡(luò)地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協(xié)議語言表示的地址。
? ? 在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點分開,用四個字節(jié)來表示,而且,用點分開的每個字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數(shù)表示法。
3 OSI參考模型
? ? OSI參考模型是ISO的建議,它是為了使各層上的協(xié)議國際標準化而發(fā)展起來的。OSI參考模型全稱是開放系統(tǒng)互連參考模型(Open System Interconnection Reference Model)。這一參考模型共分為七層:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層;
? ? 物理層(Physical Layer)主要是處理機械的、電氣的和過程的接口,以及物理層下的物理傳輸介質(zhì)等。
? ? 數(shù)據(jù)鏈路層(Data Link Layer)的任務(wù)是加強物理層的功能,使其對網(wǎng)絡(luò)層顯示為一條無錯的線路。
? ? 網(wǎng)絡(luò)層(Network Layer)確定分組從源端到目的端的路由選擇。路由可以選用網(wǎng)絡(luò)中固定的靜態(tài)路由表,也可以在每一次會話時決定,還可以根據(jù)當(dāng)前的網(wǎng)絡(luò)負載狀況,靈活地為每一個分組分別決定。
? ? 傳輸層(Transport Layer)從會話層接收數(shù)據(jù),并傳輸給網(wǎng)絡(luò)層,同時確保到達目的端的各段信息正確無誤,而且使會話層不受硬件變化的影響。通常,會話層每請求建立一個傳輸連接,傳輸層就會為其創(chuàng)建一個獨立的網(wǎng)絡(luò)連接。但如果傳輸連接需要一個較高的吞吐量,傳輸層也可以為其創(chuàng)建多個網(wǎng)絡(luò)連接,讓數(shù)據(jù)在這些網(wǎng)絡(luò)連接上分流,以提高吞吐量。而另一方面,如果創(chuàng)建或維持一個獨立的網(wǎng)絡(luò)連接不合算,傳輸層也可將幾個傳輸連接復(fù)用到同一個網(wǎng)絡(luò)連接上,以降低費用。除了多路復(fù)用,傳輸層還需要解決跨網(wǎng)絡(luò)連接的建立和拆除,并具有流量控制機制。
? ? 會話層(Session Layer)允許不同機器上的用戶之間建立會話關(guān)系,既可以進行類似傳輸層的普通數(shù)據(jù)傳輸,也可以被用于遠程登錄到分時系統(tǒng)或在兩臺機器間傳遞文件。
? ? 表示層(Presentation Layer)用于完成一些特定的功能,這些功能由于經(jīng)常被請求,因此人們希望有通用的解決辦法,而不是由每個用戶各自實現(xiàn)。
? ? 應(yīng)用層(Application Layer)中包含了大量人們普遍需要的協(xié)議。不同的文件系統(tǒng)有不同的文件命名原則和不同的文本行表示方法等,不同的系統(tǒng)之間傳輸文件還有各種不兼容問題,這些都將由應(yīng)用層來處理。此外,應(yīng)用層還有虛擬終端、電子郵件和新聞組等各種通用和專用的功能。
二 應(yīng)用
1 協(xié)議測試
全面的測試應(yīng)包括局域網(wǎng)和互聯(lián)網(wǎng)兩個方面,因此應(yīng)從局域網(wǎng)和互聯(lián)網(wǎng)兩個方面測試,以下是在實際工作中利用命令行測試TCP/IP配置步驟:
1). 單擊“開始”/“運行”,輸入CMD按回車,打開命令提示符窗口。
2).首先檢查IP地址、子網(wǎng)掩碼、默認網(wǎng)關(guān)、DNS服務(wù)器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網(wǎng)絡(luò)配置,觀查是否正確。
3).輸入ping 127.0.0.1,觀查網(wǎng)卡是否能轉(zhuǎn)發(fā)數(shù)據(jù),如果出現(xiàn)“Request timed out”(請求超時),表明配置出錯或網(wǎng)絡(luò)有問題。
4).Ping一個互聯(lián)網(wǎng)地址,看是否有數(shù)據(jù)包傳回,以驗證與互聯(lián)網(wǎng)的連接性。
5). Ping 一個局域網(wǎng)地址,觀查與它的連通性。
6).用nslookup測試DNS解析是否正確,輸入如nslookup ,查看是否能解析。
如果你的計算機通過了全部測試,則說明網(wǎng)絡(luò)正常,否則網(wǎng)絡(luò)可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設(shè)置丟棄ICMP數(shù)據(jù)包,造成你的ping命令無法正常返回數(shù)據(jù)包,不防換個網(wǎng)站試試。
2 協(xié)議重置
如果需要重新安裝 TCP/IP 以使TCP/IP 堆棧恢復(fù)為原始狀態(tài)。可以使用NetShell 實用程序重置TCP/IP 堆棧,使其恢復(fù)到初次安裝操作系統(tǒng)時的狀態(tài)。具體操作如下:
1).單擊 開始--> 運行,輸入"CMD" 后單擊"確定";
2).在命令行模式輸入命令
netsh int ip reset C:\resetlog.txt
(其中,Resetlog.txt記錄命令結(jié)果的日志文件,一定要指定,這里指定了Resetlog.txt 日志文件及完整路徑。)
運行結(jié)果可以查看C:\resetlog.txt
運行此命令的結(jié)果與刪除并重新安裝TCP/IP 協(xié)議的效果相同。
注意
本操作具有一定的風(fēng)險性,請在操作前備份重要數(shù)據(jù),并根據(jù)操作熟練度酌情使用。
三 單個的名詞含義
1 SYN? ? SYN(synchronous)是TCP/IP建立連接時使用的握手信號。在客戶機和服務(wù)器之間建立正常的TCP網(wǎng)絡(luò)連接時,客戶機首先發(fā)出一個SYN消息,服務(wù)器使用SYN+ACK應(yīng)答表示接收到了這個消息,最后客戶機再以ACK消息響應(yīng)。這樣在客戶機和服務(wù)器之間才能建立起可靠的TCP連接,數(shù)據(jù)才可以在客戶機和服務(wù)器之間傳遞。
? ? TCP連接的第一個包,非常小的一種數(shù)據(jù)包。
2 ACK
? ? Acknowledgement,即確認字符,在數(shù)據(jù)通信中,接收站發(fā)給發(fā)送站的一種傳輸類控制字符。表示發(fā)來的數(shù)據(jù)已確認接收無誤。
? ? 在TCP/IP協(xié)議中,如果接收方成功的接收到數(shù)據(jù),那么會回復(fù)一個ACK數(shù)據(jù)。通常ACK信號有自己固定的格式,長度大小,由接收方回復(fù)給發(fā)送方。其格式取決于采取的網(wǎng)絡(luò)協(xié)議。當(dāng)發(fā)送方接收到ACK信號時,就可以發(fā)送下一個數(shù)據(jù)。如果發(fā)送方?jīng)]有收到信號,那么發(fā)送方可能會重發(fā)當(dāng)前的數(shù)據(jù)包,也可能停止傳送數(shù)據(jù)。具體情況取決于所采用的網(wǎng)絡(luò)協(xié)議。
? ? TCP報文格式中的控制位由6個標志比特構(gòu)成,其中一個就是ACK,ACK為1表示確認號有效,為0表示報文中不包含確認信息,忽略確認號字段。
? ? ACK也可用于AT24cxx這一系列的EEPROM中。
? ? 在USB傳輸中,ACK事務(wù)包用來向主機/設(shè)備報告包正確的傳輸。
3 FIN
? ? FIN(ISH)為TCP報頭的碼位字段,該位置為1的含義為發(fā)送方字節(jié)流結(jié)束,用于關(guān)閉連接。
? ? 當(dāng)兩端交換帶有FIN標志的TCP報文段并且每一端都確認另一端發(fā)送的FIN包時,TCP連接將會關(guān)閉。FIN位字面上的意思是連接一方再也沒有更多新的數(shù)據(jù)發(fā)送。然而,那些重傳的數(shù)據(jù)會被傳送,直到接收端確認所有的信息。
四 編程
五 黑客攻擊與防御
1 SYN攻擊? ? SYN 攻擊包括大量此類的包,由于這些包看上去來自實際不存在的站點,因此無法有效進行處理。每個機器的欺騙包都要花幾秒鐘進行嘗試方可放棄提供正常響應(yīng)。
攻擊性質(zhì)
? ? SYN攻擊屬于DDoS攻擊的一種,它利用TCP協(xié)議缺陷,通過發(fā)送大量的半連接請求,耗費CPU和內(nèi)存資源。SYN攻擊除了能影響主機外,還可以危害路由器、防火墻等網(wǎng)絡(luò)系統(tǒng),事實上SYN攻擊并不管目標是什么系統(tǒng),只要這些系統(tǒng)打開TCP服務(wù)就可以實施。服務(wù)器接收到連接請求(syn= j),將此信息加入未連接隊列,并發(fā)送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態(tài)。當(dāng)服務(wù)器未收到客戶端的確認包時,重發(fā)請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,SYN攻擊能達到很好的效果,通常,客戶端在短時間內(nèi)偽造大量不存在的IP地址,向服務(wù)器不斷地發(fā)送syn包,服務(wù)器回復(fù)確認包,并等待客戶的確認,由于源地址是不存在的,服務(wù)器需要不斷的重發(fā)直至超時,這些偽造的SYN包將長時間占用未連接隊列,正常的SYN請求被丟棄,目標系統(tǒng)運行緩慢,嚴重者引起網(wǎng)絡(luò)堵塞甚至系統(tǒng)癱瘓。
攻擊原理
? ? 歸納起來,主要有兩大類,一類是通過防火墻、路由器等過濾網(wǎng)關(guān)防護,另一類是通過加固TCP/IP協(xié)議棧防范。
? ? SYN Flood利用TCP協(xié)議缺陷,發(fā)送了大量偽造的TCP連接請求,使得被攻擊方資源耗盡,無法及時回應(yīng)或處理正常的服務(wù)請求。一個正常的TCP連接需要三次握手,首先客戶端發(fā)送一個包含SYN標志的數(shù)據(jù)包,其后服務(wù)器返回一個SYN/ACK的應(yīng)答包,表示客戶端的請求被接受,最后客戶端再返回一個確認包ACK,這樣才完成TCP連接。在服務(wù)器端發(fā)送應(yīng)答包后,如果客戶端不發(fā)出確認,服務(wù)器會等待到超時,期間這些半連接狀態(tài)都保存在一個空間有限的緩存隊列中;如果大量的SYN包發(fā)到服務(wù)器端后沒有應(yīng)答,就會使服務(wù)器端的TCP資源迅速耗盡,導(dǎo)致正常的連接不能進入,甚至?xí)?dǎo)致服務(wù)器的系統(tǒng)崩潰。
攻擊器
? ? SYN攻擊實現(xiàn)起來非常的簡單,互聯(lián)網(wǎng)上有大量現(xiàn)成的SYN攻擊工具。
? ? windows系統(tǒng)下的SYN工具
? ? 以synkill.exe為例,運行工具,選擇隨機的源地址和源端囗,并填寫目標機器地址和TCP端囗,激活運行,很快就會發(fā)現(xiàn)目標系統(tǒng)運行緩慢。如果攻擊效果不明顯,可能是目標機器并未開啟所填寫的TCP端囗或者防火墻拒絕訪問該端囗,此時可選擇允許訪問的TCP端囗,通常,windows系統(tǒng)開放tcp139端囗,UNIX系統(tǒng)開放tcp7、21、23等端囗。
檢測攻擊
? ? 檢測SYN攻擊非常的方便,當(dāng)你在服務(wù)器上看到大量的半連接狀態(tài)時,特別是源IP地址是隨機的,基本上可以斷定這是一次SYN攻擊。我們使用系統(tǒng)自帶的netstat 工具來檢測SYN攻擊:
# netstat -n -p TCP
tcp 0 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV -
tcp 0 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV -
tcp 0 0 10.11.11.11:23 222.220.13.25:47393 SYN_RECV -
tcp 0 0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV -
tcp 0 0 10.11.11.11:23 232.115.18.38:278 SYN_RECV -
tcp 0 0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV -
...
上面是在LINUX系統(tǒng)中看到的,很多連接處于SYN_RECV狀態(tài)(在WINDOWS系統(tǒng)中是SYN_RECEIVED狀態(tài)),源IP地址都是隨機的,表明這是一種帶有IP欺騙的SYN攻擊。
我們也可以通過下面的命令直接查看在LINUX環(huán)境下某個端囗的未連接隊列的條目數(shù):
#netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
324
顯示TCP端囗22的未連接數(shù)有324個,雖然還遠達不到系統(tǒng)極限,但應(yīng)該引起管理員的注意。
防范技術(shù)
? ? 一類是通過防火墻、路由器等過濾網(wǎng)關(guān)防護,另一類是通過加固TCP/IP協(xié)議棧防范
注冊表設(shè)置
? ? 在“開始->運行->鍵入regedit”
? ? 啟用 SYN 攻擊保護的命名值位于注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters之下。值名稱:SynAttackProtect。推薦值:2。
? ? 以下部分中的所有項和值均位于注冊表項 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 之下。
? ? 指定必須在觸發(fā) SYN flood 保護之前超過的 TCP 連接請求閾值。值名稱:TcpMaxPortsExhausted。推薦值:5。
? ? 啟用 SynAttackProtect 后,該值指定 SYN_RCVD 狀態(tài)中的 TCP 連接閾值,超過 SynAttackProtect 時,觸發(fā) SYN flood 保護。值名稱:TcpMaxHalfOpen。推薦值數(shù)據(jù):500。
? ? 啟用 SynAttackProtect 后,指定至少發(fā)送了一次重傳的 SYN_RCVD 狀態(tài)中的 TCP 連接閾值。超過 SynAttackProtect 時,觸發(fā) SYN flood 保護。值名稱:TcpMaxHalfOpenRetried。推薦值數(shù)據(jù):400
豐富帶寬資源
? ? 不難看出syn攻擊消耗帶寬資源所以要想防御synflood一個豐富的帶寬資源是必要的,通常的流量攻擊,攻擊者也是利用肉雞的帶寬資源來達到攻擊堵死網(wǎng)絡(luò)的,所以這個是一個前提
防火墻
? ? 利用防火墻來進行防護攻擊是目前最有效的方法,當(dāng)然前提是攻擊在防護帶寬范圍之內(nèi),也就是為什么第二條推薦帶寬資源,這是保證在防火墻前面不會造成堵塞,來達到防火墻的防護目的。
總結(jié)
以上是生活随笔為你收集整理的TCP/IP协议-概念、应用、开发、Hack的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个web左侧菜单例子
- 下一篇: DES算法详解和代码 - IP置换