arp安全
以太網幀的type =0806 表示arp
arp攻擊:hack偽造arp應答包給target(當target使用arp廣播尋找目的mac時,回答mac=hack)
IP報文格式
20字節頭部+最多40字節選項,IP數據報最長65535字節
MTU 1500字節,幀頭6+6+2=14字節
常用ip頭內容:
前4位,協議(ipv4 ipv6),然后是4位的頭部長度,單位是4字節
標識字段用來唯一表示一個IP數據報,IP分片,根據標識和偏移重組,偏移量fragment offset的單位是8字節
checksum只校驗頭部
TTL,最大生存時間,即IP數據報被丟棄前,最多能經過幾個節點,每過一節點,TTL減1,減到0時丟棄
DoS攻擊
構造兩個分片,第一個分片的偏移為0;第二個分片的偏移是64800。為了重組,目標主機會分配64k的緩存,可通過不斷發包消耗目標內存。
tear drop攻擊
利用系統處理IP分片重疊的漏洞
前提:當產生IP分片重疊時,系統采取這種策略——由第一分片覆蓋重疊區域,並將第二分片的剩余部分重組到第一分片后。
先計算到底重疊長度,len=pre->end - p->offset;//pre代表前分片,p代表后分片
然后將指向第二個分片的指針朝后移動這個長度,p->offset += len;
接下來需要將第二個分片的剩余內容拷貝一下,以形成完整的數據報文。
首先需要計算第二個分片還剩余多少字節。unsigned short fp->len = p->end - p->offset;
接下來就可以從ptr開始,拷貝fp->len字節的內容,就完成了處理。
對於正常的重疊
對於不正常的重疊,fp->len 會產生溢出,len變成一個很大的數(2^16 + 負數),拷貝后,很容易把內存中系統內核部分覆蓋,導致崩潰。
微小碎片攻擊
包過濾防火牆,通過過濾SYN包,防止外部鏈接。假設防火牆filter的規則是:如果IP數據報的第一分片含有SYN,則拒絕這一分片,放行其他分片。
IP數據報最小分片長度為68字節,利用i選項字段填滿ip頭=60字節,,則第一分片數據部分可以只有8字節
第一分片只包含tcp頭的前8字節,而syn被放在了第二分片,從而避開了filter。此時第二分片的offset為1。
如何防御:
如果第二分片offset ==1 且是tcp協議,則丟棄第二分片
IP欺騙,留后門
- 假設hack要攻擊某主機x,x有一個terminal與某sever建立了連接。 假設tcp的seq是有規律的。
- hack 向server發syn洪泛,保證server在收到syn+ack后,不會發送RST
- hack 偽造ip(與server不同)向x-terminal發包,尋找seq的規律
- 冒充server_ip,根據seq規律,與x-terminal件里tcp連接
- 發包命令x-t將外界設置為信任,echo ++ > ./rhost
參考:
https://zhuanlan.zhihu.com/p/58610182
《TCP/IP詳解》