不用防火牆自動對付CC攻擊防範vbs

來源:互聯網
上載者:User

CC攻擊原理
  CC主要是用來攻擊頁面的.大家都有這樣的經曆,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,開啟頁面的速度會比較慢,對不?!一般來說,訪問的人越多,論壇的頁面越多,資料庫就越大,被訪問的頻率也越高,佔用的系統資源也就相當可觀,現在知道為什麼很多空間服務商都說大家不要上傳論壇,聊天室等東西了吧.
  一個靜態頁面不需要伺服器多少資源,甚至可以說直接從記憶體中讀出來發給你就可以了,但是論壇就不一樣了,我看一個文章,系統需要到資料庫中判斷我是否有讀讀文章的許可權,如果有,就讀出文章裡面的內容,顯示出來——這裡至少訪問了2次資料庫,如果資料庫的體積有200MB大小,系統很可能就要在這200MB大小的資料空間搜尋一遍,這需要多少的CPU資源和時間?如果我是尋找一個關鍵字,那麼時間更加可觀,因為前面的搜尋可以限定在一個很小的範圍內,比如使用者權限只查使用者表,文章內容只查文章表,而且查到就可以馬上停止查詢,而搜尋肯定會對所有的資料進行一次判斷,消耗的時間是相當的大.
  CC就是充分利用了這個特點,類比多個使用者(多少線程就是多少使用者)不停的進行訪問(訪問那些需要大量資料操作,就是需要大量CPU時間的頁面).
  攻擊現象:
  伺服器的流量瞬間可達到幾十M以上,網站打不開。重啟iis會發現流量馬上就降下來。查看IIS日誌會發現很多不同的IP都反覆訪問一個相同的檔案。查看C:WINDOWSsystem32LogFilesHTTPERR 會發現很多出錯的IIS日誌,如下:
  2007-08-22 06:05:28 61.140.127.206 61905 61.139.129.56 80 HTTP/1.1 GET /list.asp?
  ProdId=0961 503 30 ConnLimit pool21
  2007-08-22 06:05:28 221.8.137.99 3916 61.139.129.56 80 HTTP/1.1 GET /list.asp?ProdId=0961
  503 30 ConnLimit pool21
  2007-08-22 06:05:28 220.187.143.183 4059 61.139.129.56 80 HTTP/1.1 GET /list.asp?
  ProdId=0961 503 30 ConnLimit pool21
  2007-08-22 06:05:28 218.18.42.231 1791 61.139.129.56 80 HTTP/1.1 GET /list.asp?
  ProdId=0961 503 30 ConnLimit pool21
  2007-08-22 06:05:28 125.109.129.32 3030 61.139.129.56 80 HTTP/1.1 GET /list.asp?
  ProdId=0961 503 30 ConnLimit pool21
  2007-08-22 06:05:28 58.216.2.232 1224 61.139.129.56 80 HTTP/1.1 GET /list.asp?ProdId=0961
  503 30 ConnLimit pool21
  ...
  可以看出很多不同的IP都在訪問list.asp這個檔案。以上現象就是CC攻擊的特徵。根據發動CC攻擊所使用的肉機數量,小的攻擊可以導致網站很慢或者不穩定,大的攻擊可以讓網站一直都無法開啟。
  因這類攻擊,是類比正常使用者不斷請求一個網頁。所以一般的防火牆很難防禦。下面我們根據實際工作經驗,講一下如何不用防火牆來解決這個攻擊問題。
  因為CC攻擊都是使用的肉機或代理來訪問我們的伺服器的,它跟synflood攻擊不一樣。synfoold一直是不斷變化的虛假IP,而CC攻擊的IP都是真實的IP而基本上不變化的,只要我們用安全性原則把這些IP全部封掉就可以了。
  看過有網友介紹的方法,不過是手工一條一條地封,而攻擊IP一般都是數千個不同的IP。用手工封IP的辦法太麻煩。下面我們用程式來實現自動封這些IP!
  程式主要是讀取這個網站的iis日誌,分析出其中的IP地址,用安全性原則自動封閉。VBS代碼如下: 複製代碼 代碼如下:  '代碼開始
  Set fileobj=CreateObject("Scripting.filesystemobject")
  logfilepath="E:w3logW3SVC237ex070512old.log" '注意指定受攻擊網站的日誌路徑。
  '如果是虛擬機器主機,要查是哪個網站受攻擊,可以查看:C:WINDOWSsystem32LogFilesHTTPERR ,
  根據錯誤記錄檔很容易分析出來。
  writelog "netsh ipsec static add policy name=XBLUE"
  writelog "netsh ipsec static add filterlist name=denyip"
  overip=""
  f_name=logfilepath
  '指定記錄檔
  '程式功能:把logfiles中的IP提取成ipsec需要的過濾格式,匯入ipsec中過濾。適合某個網站受大量CC攻擊的情況。
  set fileobj88=CreateObject("Scripting.FileSystemObject")
  Set MYFILE=fileobj88.OpenTextFile(f_name,1,false)
  contentover=MYFILE.ReadAll()
  contentip=lcase(contentover)
  MYFILE.close
  set fileobj88=nothing
  on error resume next
  myline=split(contentip,chr(13))
  for i=0 to ubound(myline)-1
  myline2=split(myline(i)," ")
  newip=myline2(6)
  '指定分離的標識字串!
  if instr(overip,newip)=0 then '去除重複的IP。
  overip=overip&newip
  dsafasf=split(newip,".")
  if ubound(dsafasf)=3 then
  writelog "netsh ipsec static add filter filterlist=denyip srcaddr="&newip&" dstaddr=Me
  dstport=80 protocol=TCP"
  end if
  else
  wscript.echo newip &" is exits!"
  end if
  next
  writelog "netsh ipsec static add filteraction name=denyact action=block"
  writelog "netsh ipsec static add rule name=kill3389 policy=XBLUE filterlist=denyip
  filteraction=denyact"
  writelog "netsh ipsec static set policy name=XBLUE assign=y"
  Sub writelog(errmes) '匯出IPsec的策略檔案為一個bat檔案。
  ipfilename="denyerrorip.bat"
  Set logfile=fileobj.opentextfile(ipfilename,8,true)
  logfile.writeline errmes
  logfile.close
  Set logfile=nothing
  End Sub
  '代碼結束

  把上述代碼存為一個.vbs檔案,設定好其中日誌的路徑。雙擊運行即可,運行完畢後產生一個denyerrorip.bat檔案,這個是ipsec所需要的策略檔案,直接雙擊運行即可。
  運行完畢即可解決CC攻擊問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.