国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

基于Perl的DoS工具設(shè)計(jì)與實(shí)現(xiàn)

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

基于Perl的DoS工具設(shè)計(jì)與實(shí)現(xiàn)

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

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

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

  1 攻擊原理

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

  2 主要模塊劃分

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

  2.1 掃描模塊

  2.1.1 目標(biāo)主機(jī)掃描模塊

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

  2.1.2 本地主機(jī)掃描模塊

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

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

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

  2.2 攻擊模塊

  2.2.1 HTTP DoS攻擊模塊

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

  2.2.2 HTTPS DoS攻擊模塊

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

  2.2.3 HTTPReady Bypass模塊

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

  2.2.4 Cache avoidance模塊

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

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

  3.1 掃描模塊

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

  3.1.1 攻擊主機(jī)掃描模塊

  此模塊的主要任務(wù)是通過調(diào)用Config模塊來檢測主機(jī)是否使用超線程技術(shù),代碼為:

  $Config{usethreads}

  如果使用則執(zhí)行代碼:

  $usemultithreading = 1;

  use threads;

  use threads::shared;

  攻擊者的主機(jī)是否采用采用超線程技術(shù)對于攻擊效果而言影響比較大,因?yàn)楣粼硎窍蚰繕?biāo)主機(jī)發(fā)送半HTTP Request請求從而導(dǎo)致目標(biāo)主機(jī)拒絕服務(wù),所以攻擊連接數(shù)對攻擊效果的影響至關(guān)重要,連接數(shù)越多攻擊效果越好,所以擁有超線程技術(shù)的主機(jī)才產(chǎn)生的攻擊效果會更好。

  3.1.2 目標(biāo)主機(jī)掃描模塊

  此模塊的主要任務(wù)是檢測目標(biāo)主機(jī)的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";

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

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

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

  3.2.2 HTTPS DoS

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

  if ($ssl) {

  if (

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

  PeerAddr => "$host",

  PeerPort => "$port",

  Timeout => "$tcpto",

  Proto => "tcp",

  }

  )

  {…}

  }

  3.2.3 Cache avoidance

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

  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 系統(tǒng)平臺

  Fedora 14。

  4.1.2 目標(biāo)服務(wù)器系統(tǒng)

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

  4.1.3 測試環(huán)境

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

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

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

  4.2 性能測試

  4.2.1 測試環(huán)境

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

  4.2.2 具體過程

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

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

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

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

  5 結(jié)論

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

  參考文獻(xiàn)

  [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]陳誠,孫一品,鐘求喜等.基于通用多核平臺的入侵檢測系統(tǒng)研究[J].計(jì)算機(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è)計(jì)與實(shí)現(xiàn)】相關(guān)文章:

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

基于PQRM的PACS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)03-07

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

基于MVC模式的BBS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)03-08

基于ASP的網(wǎng)絡(luò)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)03-07

基于FPGA的TS over lP的設(shè)計(jì)與實(shí)現(xiàn)03-21

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

基于JSP的BBS設(shè)計(jì)與實(shí)現(xiàn)JSP+SQL03-08

基于MX21的PMP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)11-22