作者 主題: TCP Chargen DoS攻擊及其對策  (閱讀 5928 次)

0 會員 與 1 訪客 正在閱讀本文。

Anonymous

  • 訪客
TCP Chargen DoS攻擊及其對策
« 於: 2001-10-20 08:33 »
============================================================
鍾昌翰 chjong@csie.nctu.edu.tw
本文件可自由轉載於各種媒體
============================================================

RFC0864中定義了chargen之服務,其UDP/TCP皆使用Port 19. UDP chargen server若收到
一個封包,就會回一個封包回去;而TCP chargen server若發現與client的連線存在,就會
不斷的發送封包給client

UDP chargen範例:
[ccbsd7]/u/gcp/88/8817537 > echo "hello"|nc -u CHARGEN_SERVER 19
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghi
?


TCP chargen範例:
[ccbsd7]/u/gcp/88/8817537 > telnet CHARGEN_SERVER 19
Trying 140.0.0.0...
Connected to haydn.ntu.edu.tw.
Escape character is '^]'.
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefg

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijk
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijkl
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklm
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmn
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`abcdefghijklmno
^C^]
telnet> c
Connection closed.

傳統上,UDP chargen常被用來做為DDoS中放大網路流量之用.但是,其實TCP的chargen
也可拿來使用DoS之用,而且對於網路造成的影響更大.

攻擊法:
使得Client端(如Outlook/Browser)連接一個URL,其中為有提供chargen/TCP的主機
http://CHARGEN_HOST:19/

攻擊範例:
在html裡置放自動會Load(使用Java/Script)之http://CHARGEN_HOST:19/之URL,則
此主機就會瘋狂的透過http proxy server(如果此web browser有設定http proxy)
向CHARGEN_HOST主機抓取大量的資料.而CHARGEN_HOST可以由惡意程式中自動指定
或者使用Scanning技術來設定

原理:
當client連往port 19的TCP/chargen服務,主機就會回傳大量的資料
再配合包裝成http的型式,就可以讓browser收到大量的封包而消耗大量的記憶體

攻擊強度:
1)win2000的client端IE,每秒鐘會被消耗超過1MB的Virtual Memory,也就是過了數百秒之後
此client就呈現反應遲鈍,VM都被用光,然後Win2000會增大VM的大小,就會將C槽整個占滿
在實際的測試中,會造成win2000無法進行圖形的列印(因為無暫存磁碟空間)
2)client所使用的proxy也會被拖垮
3)可以搭配其它種的client端攻擊使用

測試方法
若主機的Port 19有開啟,則此主機可用來配合此種攻擊

解決方法:
請關閉chargen服務或使用封包過濾器防火牆將Port 19封包過慮