激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

基于Perl的DoS工具設計與實(shí)現

時(shí)間:2024-10-05 15:28:01 計算機軟件畢業(yè)論文 我要投稿
  • 相關(guān)推薦

基于Perl的DoS工具設計與實(shí)現

  摘 要:本文設計并實(shí)現了一個(gè)基于Perl腳本語(yǔ)言的Dos攻擊工具,利用半連接原理攻擊WEB服務(wù)。本攻擊工具分掃描模塊和攻擊模塊,具有HTTP DoS,HTTPS DoS,Cache avoidance和HTTPReady Bypass攻擊功能。充分利用系統的超線(xiàn)程性能和Perl腳本特性,代碼量少,對Linux下的WEB服務(wù)攻擊效果較好。

  【關(guān)鍵詞】Dos Perl 攻擊 工具

  在Linux下使用Perl腳本語(yǔ)言設計開(kāi)發(fā)的DoS攻擊工具,可以利用單一機器占用網(wǎng)絡(luò )帶寬很少的情況下對目標服務(wù)器的WEB服務(wù)發(fā)動(dòng)攻擊。它通過(guò)向目標服務(wù)器發(fā)送半HTTP連接來(lái)消耗服務(wù)器資源,且所需數據包相對于一般的洪泛式DoS攻擊工具要少很多,所以具有一定的隱蔽性。目標服務(wù)器采用超線(xiàn)程技術(shù)則發(fā)動(dòng)的攻擊會(huì )更有效,因為隨著(zhù)攻擊的進(jìn)行服務(wù)器會(huì )限制它所允許的線(xiàn)程數,若攻擊者的機器上也采用超線(xiàn)程則攻擊效果會(huì )大大增強。

  1 攻擊原理

  通過(guò)發(fā)送半連接(HTTP請求)來(lái)保持連接的暢通,并周期性發(fā)送HTTP Headers來(lái)避免套接口關(guān)閉來(lái)達到消耗目標主機資源,關(guān)閉WEB服務(wù)的目的。由于有效地將攻擊連接偽裝為合法連接從而躲過(guò)了偵測系統的防御。同時(shí)當攻擊正在進(jìn)行時(shí),日志文件并不會(huì )被寫(xiě)入,直到連接請求完畢。所以攻擊者能夠使目標在一段時(shí)間內服務(wù)無(wú)法被訪(fǎng)問(wèn),同時(shí)攻擊行為不會(huì )被管理員發(fā)現。

  2 主要模塊劃分

  Perl腳本語(yǔ)言開(kāi)發(fā)的DoS工具主要由兩大部分組成,分別是掃描模塊和攻擊模塊。掃描模塊包括目標主機掃描模塊,攻擊主機掃描模塊,目標主機連接超時(shí)時(shí)間測試掃描模塊。攻擊模塊包括常規HTTP Dos攻擊模塊,HTTPS Dos攻擊模塊,HTTPReady Bypass模塊, Cache avoidance模塊。

  2.1 掃描模塊

  2.1.1 目標主機掃描模塊

  探測目標主機的服務(wù)是否可用及是否采用超線(xiàn)程技術(shù),通過(guò)向目標服務(wù)器發(fā)送合法請求來(lái)實(shí)現。

  2.1.2 本地主機掃描模塊

  探測攻擊者的主機是否采用超線(xiàn)程技術(shù)。由于超線(xiàn)程技術(shù)的特點(diǎn),使得擁有超線(xiàn)程技術(shù)的攻擊者的攻擊效果會(huì )比未擁有的要好很多。

  2.1.3 目標主機連接超時(shí)時(shí)間測試掃描模塊

  找出目標機器服務(wù)的連接超時(shí)時(shí)間,這個(gè)時(shí)間對于攻擊來(lái)說(shuō)至關(guān)重要,將攻擊者發(fā)送的半連接超時(shí)時(shí)間設置得與被攻擊者的越接近,攻擊效果越好,但必須小于被攻擊者的連接超時(shí)時(shí)間,否則攻擊失效。

  2.2 攻擊模塊

  2.2.1 HTTP DoS攻擊模塊

  通過(guò)向目標周期性地發(fā)送請求,導致目標服務(wù)器無(wú)法響應合法用戶(hù)請求。攻擊目標的超時(shí)時(shí)間越短它的資源被消耗得也越快。連接數與攻擊目標的連接數越接近越好,因為這能減少的嘗試次數以及相關(guān)的帶寬。

  2.2.2 HTTPS DoS攻擊模塊

  實(shí)現方式與HTTP DoS攻擊模塊相似,不同之處在于本模塊需要對數據通過(guò)協(xié)議加密后再發(fā)送。

  2.2.3 HTTPReady Bypass模塊

  通過(guò)將發(fā)送的請求消息從GET改為POST來(lái)實(shí)現。這是在HTTP DoS失效的情況下使用,實(shí)現方法為把GET請求方法改為POST請求方法,這樣就可以繞過(guò)HTTPReady的保護。

  2.2.4 Cache avoidance模塊

  本通過(guò)改變請求消息頭使得目標服務(wù)器的溢出,從而拒絕服務(wù)。

  3 難點(diǎn)實(shí)現

  3.1 掃描模塊

  本工具的掃描模塊分為目標主機掃描模塊,攻擊者主機掃描模塊,目標主機連接時(shí)間掃描模塊。

  3.1.1 攻擊主機掃描模塊

  此模塊的主要任務(wù)是通過(guò)調用Config模塊來(lái)檢測主機是否使用超線(xiàn)程技術(shù),代碼為:

  $Config{usethreads}

  如果使用則執行代碼:

  $usemultithreading = 1;

  use threads;

  use threads::shared;

  攻擊者的主機是否采用采用超線(xiàn)程技術(shù)對于攻擊效果而言影響比較大,因為攻擊原理是向目標主機發(fā)送半HTTP Request請求從而導致目標主機拒絕服務(wù),所以攻擊連接數對攻擊效果的影響至關(guān)重要,連接數越多攻擊效果越好,所以擁有超線(xiàn)程技術(shù)的主機才產(chǎn)生的攻擊效果會(huì )更好。

  3.1.2 目標主機掃描模塊

  此模塊的主要任務(wù)是檢測目標主機的HTTP服務(wù)是否可用,具體方法為向服務(wù)器發(fā)送一個(gè)合法的GET請求消息:

  if ($cache) {

  $rand = "?" . int( rand(99999999999999) );

  }else {

  $rand = "";

  }

  my $primarypayload =

  "GET /$rand HTTP/1.1\r\n"

  . "Host: $sendhost\r\n"

  . "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n"

  . "Content-Length: 42\r\n";

  如果套接字建立成功而且請求得到合法響應,則說(shuō)明目標服務(wù)器的服務(wù)工作正常,則可以進(jìn)行下一步操作。   3.1.3 目標主機連接時(shí)間掃描模塊

  此模塊的主要功能為探測目標服務(wù)器上的超時(shí)時(shí)間,這個(gè)選項是手動(dòng)。了解目標機器的超時(shí)時(shí)間是非常必要的,因為攻擊目標的超時(shí)時(shí)間越短則資源被消耗得也越快,但如果設置得小于被攻擊電腦的連接超時(shí)時(shí)間,則又容易導致攻擊效果銳減。以下為具體實(shí)現代碼:

  for ( my $i = 0 ; $i <= $#times ; $i++ ) {

  print "Trying a $times[$i] second delay: \n";

  sleep( $times[$i] );

  if ( print $sock "X-a: b\r\n" ) {

  print "\tWorked.\n";

  $delay = $times[$i]

  }

  其中變量sock只指的HTTP Request的底層通信連接,這里為T(mén)CP連接,當然,如果需要改變?yōu)閁DP連接可以直接修改相關(guān)代碼。最后,測試的大致超時(shí)時(shí)間為變量delay的值,單位為秒。

  3.2 攻擊模塊

  攻擊模塊包括HTTP DoS攻擊模塊,HTTPS DoS攻擊模塊,HTTPReady Bypass模塊,cache avoidence模塊。它的攻擊流程如圖1所示。

  3.2.1 HTTP DoS

  這個(gè)攻擊模塊是本工具的基本攻擊模塊,它通過(guò)設置三個(gè)參數:-timeout,-num,-tcpto然后借由這些參數向服務(wù)器發(fā)動(dòng)襲擊,timeout參數是指目標服務(wù)器HTTP Request的超時(shí)時(shí)間,這里也把它作為發(fā)送攻擊的間隔時(shí)間。這樣設置使得攻擊者所發(fā)起的HTTP Request符合規范,攻擊的隱蔽性大大增強,而且還不會(huì )導致主機負載過(guò)高而向管理員告警。這里使用GET請求方法向目標發(fā)起連接。實(shí)現攻擊的前提是要在攻擊者與目標服務(wù)器間建立完整的TCP連接。

  3.2.2 HTTPS DoS

  此模塊針對采用了HTTPS協(xié)議的WEB服務(wù)器。它通過(guò)用IO::SOCKET::SSL構造一個(gè)符合SSL3.0協(xié)議的sock對象來(lái)偽裝自己,從而欺騙主機,成功發(fā)送HTTP Request半連接,實(shí)現為:

  if ($ssl) {

  if (

  $sock = new IO::Socket::SSL(

  PeerAddr => "$host",

  PeerPort => "$port",

  Timeout => "$tcpto",

  Proto => "tcp",

  }

  )

  {…}

  }

  3.2.3 Cache avoidance

  根據RFC2616的描述,HTTP1.1通常應用于能通過(guò)采用緩存技術(shù)提高性能的分布式信息系統。HTTP/1.1中緩存可以在許多情況下排除發(fā)送請求和發(fā)送完整響應。前者減少了網(wǎng)絡(luò )回路的數量;利用一個(gè)“過(guò)期(expiration)”機制來(lái)達到此目的。后者減少了網(wǎng)絡(luò )應用的帶寬;用“驗證(validation)”機制來(lái)達到此目的。利用這個(gè)特點(diǎn),我們新增了一個(gè)功能,即Cache avoidance。核心思路就是發(fā)送大量服務(wù)器地址相同但是URL中請求文件的文件名不同的GET請求消息來(lái)消耗網(wǎng)絡(luò )資源。因為這樣可以“繞過(guò)”緩存機制,使得攻擊者發(fā)送的每一個(gè)請求都會(huì )到達目標機器,而且由于頁(yè)面不存在,每一次請求都會(huì )消耗目標WEB服務(wù)器的資源,最終導致DoS。具體的實(shí)現方法利用了Perl強大的正則表達式和srand()函數以及rand()函數。具體代碼如下:

  if ($cache) {

  $rand = "?" . int( rand(99999999999999) );

  }

  my $primarypayload =

  "GET /$rand HTTP/1.1\r\n"

  . "Host: $sendhost\r\n"

  . "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n"

  . "Content-Length: 42\r\n";

  4 功能、性能測試

  4.1 功能測試

  4.1.1 系統平臺

  Fedora 14。

  4.1.2 目標服務(wù)器系統

  版本為httpd-2.2.10-2的Apache服務(wù)器。

  4.1.3 測試環(huán)境

  在一臺物理主機上建立一個(gè)虛擬機,它的操作系統為Fedora 14,物理主機的操作系統為Windows XP sp3。

  各個(gè)模塊的功能測試如表1所示。

  測試結果表明攻擊效果較好,但HTTPS DoS有時(shí)會(huì )攻擊失效,這還需要改進(jìn)?傮w而言,攻擊效率較高,設計思路清晰,特別是在攻擊時(shí)不會(huì )造成目標服務(wù)器負載明顯上升,也不會(huì )造成內存使用明顯增加,而且還不會(huì )對其它無(wú)關(guān)聯(lián)服務(wù)造成損害,這是設計之初沒(méi)有想到的意外驚喜。

  4.2 性能測試

  4.2.1 測試環(huán)境

  FEDORA 14,INTEL(R) CORE(TM) DUO CPU T2350 @ 1.86GHZ 1.86GHZ,1.96GB內存。

  4.2.2 具體過(guò)程

  建立500個(gè)SOCKET連接,DOS 服務(wù)器192.168.1.123的80端口,設置CONNECTION的超時(shí)時(shí)間為200秒。如果不知道連接超時(shí)時(shí)間,那么就用下面的命令,讓COBRA自動(dòng)完成。

  SLOWLORIS.PL -DNS 192.168.1.123 -PORT 80 -TEST。

  這是一個(gè)慢啟動(dòng)的過(guò)程,得出測試數據需要一定的時(shí)間。所以建議首先用NMAP之類(lèi)的工具得出目標機器的WEB服務(wù)器操作系統版本,然后根據自己的經(jīng)驗估計一個(gè)時(shí)間。TIMEOUT值太大,可能被服務(wù)器主動(dòng)斷開(kāi)連接,太短發(fā)送的數據包就越多,攻擊者的主機壓力太大。DOS效果如表2所示。

  由于作者時(shí)間、精力、水平有限,所以只能列出少部分能夠被攻陷和不能夠被攻陷的服務(wù)器操作系統名稱(chēng)。能夠攻陷的有:Apache 1.x, Apache 2.x, dhttpd, lighttpd。目前還無(wú)法攻陷的有:IIS6.0, IIS7.0,nginx, Cherokee, Squid。值得注意的是本工具運行在Windows系列操作系統上的攻擊效果不太好,主要是限制了最大連接數,所以應盡量運行在類(lèi)似UNIX的操作系統上。

  5 結論

  本文詳細闡述了Perl語(yǔ)言開(kāi)發(fā)的針對WEB服務(wù)的DoS工具的設計與實(shí)現。從測試結果中可以得知,此工具基本達到了設計要求,能夠實(shí)現利用單一機器對目標服務(wù)器的WEB服務(wù)進(jìn)行打擊,打擊隱蔽性非常高,對目標服務(wù)器CPU、內存的負載影響非常小,而且在攻擊時(shí)日志文件不會(huì )產(chǎn)生記錄。但由于一些技術(shù)上的問(wèn)題,本工具對于一些應用較廣的WEB服務(wù)器的攻擊還是不能很好實(shí)現,還需要在以后的版本中加以改進(jìn),其亮點(diǎn)就在于用Perl編寫(xiě),利用它的一些強大功能使得工具小巧精悍,其中的Cache avoidance模塊極具特色,它利用了HTTP協(xié)議的一些特點(diǎn)而造成目標網(wǎng)絡(luò )資源的大量消耗。

  參考文獻

  [1]Wang Y,Lin C,Li Q L, et al.A queueing analysis for the denial of service (DoS)attacks in computer networks[J].Computer Networks,2007, 51(12):3564-3573.

  [2]陳誠,孫一品,鐘求喜等.基于通用多核平臺的入侵檢測系統研究[J].計算機科學(xué),2012,39(3):71-74. DOI:10.3969/j.issn.1002-137X.2012(03):015.

  [3]Jonsson E.An integrated framework for security and dependability[C]//Proceedings of the 1998 workshop on New security paradigms.ACM,1998:22-29.

【基于Perl的DoS工具設計與實(shí)現】相關(guān)文章:

基于JSP網(wǎng)頁(yè)自動(dòng)生成工具的設計與實(shí)現03-18

基于PQRM的PACS系統設計與實(shí)現03-07

基于PCI總線(xiàn)的CAN卡的設計與實(shí)現03-18

基于MVC模式的BBS系統設計與實(shí)現03-08

基于A(yíng)SP的網(wǎng)絡(luò )考試系統的設計與實(shí)現03-07

基于FPGA的TS over lP的設計與實(shí)現03-21

探析網(wǎng)上交談工具的設計與實(shí)現03-18

基于JSP的BBS設計與實(shí)現JSP+SQL03-08

基于MX21的PMP系統的設計與實(shí)現11-22

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频