pythonddos防御_浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击...
01 前言
以前做DDOS的實驗都是用python來編寫工具的,開始不會編寫結構不會算校驗和的時候就用scapy寫,后來學會了報文結構開始自己構造各種報文,但是用python寫成之后雖然是能實現基本功能,但是性能太差,其不到攻擊效果,然后又開始學c語言,用c語言重寫了syn flood攻擊工具,今天我把python和c的源碼都發出來,分享給大家,如果是學習就用python的代碼,因為比較方便修改其中的內容,如果是做壓力測試的話就用c的代碼,性能比較好威力也比較大。話不多說直接上代碼了。
02 python攻擊代碼
環境:ubuntu/kali +python 2.7.11
使用方法如下:mode有三種模式 syn攻擊、ack攻擊、混合攻擊,雖說是支持多線程但是多個線程反而不如單線程快,估計是我的多線程弄得有些問題,麻煩這方面比較懂的朋友幫我指點一下。
我電腦是i7-6700單線程也只能這點速度。cpu1已經使用89%了
看一下抓包情況吧,因為只是測試用我也沒帶tcp的options字段,報文長度也不夠64字節,不過也能傳到目的地址。
下面是代碼: (閱讀原文可直接復制粘貼代碼)
03 C語言攻擊代碼
環境:ubuntu/kali gcc version 6.1.1 20160802 (Debian 6.1.1-11)
使用方法:支持兩個參數 目的ip和目的端口
性能:限制發包速度的是帶寬(我這是100M的網,除去報文的前導碼和幀間隔極限速度差不多就是9m左右了),cpu利用才27%,我在1000Mbps的網速下測試,單線程的話速度能到40m左右,cpu占用率大約85%左右。所以說在這件事上(syn flood)C的性能要好過python10倍以上。
抓包情況:c的攻擊代碼模擬了真實的chrome發起tcp請求的情況,不僅僅是標準的ip頭+tcp頭還加上了tcp options字段,mss最大段大小、sack選擇確認、window scale 窗口規模因子,大小總共66字節。
C語言代碼:我以前沒怎么寫過c,所以寫的比較糟糕,不過湊合還是能用的,各位可以拿去在修改修改,計算校驗和的部分是我在網上抄來的,產生隨機數的種子srand不能用time(),這樣會造成很多報文隨機數部分重復(時間精度是秒),我用的是clock(),這是cpu時間隨機數每個都不會重復。pstcphdr是tcp的偽首部,只參與計算校驗和而不真的發送,代碼中用了linux定義好的Ip.h和tcp.h中的結構,這可能是程序比較快的原因之一。
(閱讀原文可直接復制粘貼代碼)
0×04 結語
還有些注意事項,就是測試的時候不要通過家用路由器(或者一切NAT設備),不然偽造的源地址全都會被替換成真實的,如果你帶寬大的話c語言那個攻擊代碼威力還是很大的,我測試環境下發包30MB/s,能讓一臺空閑的雙路E5+32G 的web服務器拒絕服務,也能讓同等配置的DNS服務器拒絕服務(DNS 服務器一般也會開放TCP 53端口)。所以各位不要亂去攻擊別人,就測測自己的服務器抗壓能力就好了。
總結
以上是生活随笔為你收集整理的pythonddos防御_浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt 判断ctrl键被按下_惊雷!证监会
- 下一篇: 十佳运动员有奖评选系统_2019年度国际