攻击者借助代理服务器生成指向受害主机的合法请求,实现DOS,和伪装就叫:cc(ChallengeCollapsar)。有关cc的详细资料它的源码包,中有详细的介绍.在这次的测试中,使用了六台匿名代理服务器,对 202.202.202.202 上的测试环境进行攻击。
使用的代理服务器;
207.68.98.5:8080
211.238.165.163:80
211.101.6.3:8080
61.178.185.56:80
61.180.161.248:80
219.149.233.179:8080
-----------------------------------------------------------------
**************** Web attrack **************************
-----------------------------------------------------------------
Thread数设置为400;攻击稳定之后,在202.202.202.202建起的连接有420个
发起攻击 20秒 之后,系统负载上升到15,后稳在12左右
------- 攻击地址 -------------------------------------------------
http://202.202.202.202/acid_stat_iplink.php
addr_type=2">http://202.202.202.202/acid_stat_uaddr.php?addr_type=2
<20ICMP">http://202.202.202.202/acid_qry_mai...mit=Last%20ICMP
-----------------------------------------------------------------
-------202.202.202.202上 top 的典型结果 ------------------------------
12748 root 6 0 4676 4672 4320 S 99.9 0.2 1:18 1 httpd
21048 mysql 9 0 25484 24M 1928 S 99.9 1.2 1:03 0 mysqld
16356 cax 14 0 2052 2052 828 R 21.4 0.0 0:11 0 top
16370 root 9 0 3020 972 748 D 3.3 0.0 0:01 1 snort
10 root 9 0 0 0 0 SW 0.4 0.0 0:02 1 kjournald
1 root 8 0 504 504 456 S 0.0 0.0 0:04 0 init
2 root 9 0 0 0 0 SW 0.0 0.0 0:00 0 keventd
-----------------------------------------------------------------
------攻击发起者的网络流量(已达到2M电信网络的最大值)-----------------
(ppp0+sit0+vmnet1+vmnet8+eth0)* input * output
time kbytes packets Merrs kbytes packets Merrs colls
23:18:45 342 1060 0 80 1129 0 0
23:18:46 316 1047 0 82 1149 0 0
23:18:47 337 1038 0 77 1104 0 0
23:18:48 256 937 0 73 1026 0 0
23:18:49 273 893 0 64 948 0 0
23:18:50 247 910 0 73 992 0 0
23:18:51 345 1000 0 68 1062 0 0
------------------------------------------------------------------
IDS中基本没有记录,除了源IP地址外,从数据报头看不到明显的特征;从9.80上返回的
数据包头部Window字段超过80%的为 0x1920即6432.数据包的数据段内容有:
代码:
------- web 攻击时一个完整的连接建立过程,和请求时的数据段---------------------
211.101.6.3:31952 -> 202.202.202.202:8086 TCP TTL:117 TOS:0x0 ID:60213 IpLen:20 DgmLen:48 DF
******S* Seq: 0x487F9CDA Ack: 0x0 Win: 0xFFFF TcpLen: 28
TCP Options (4) => MSS: 1380 NOP NOP SackOK
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/25-23:12:23.151831 0:12:3F:24:C1:84 -> 0:13:1A:4F:81:40 type:0x800 len:0x3E
202.202.202.202:8086 -> 211.101.6.3:31952 TCP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:48 DF
***A**S* Seq: 0xF5DB9C77 Ack: 0x487F9CDB Win: 0x16D0 TcpLen: 28
TCP Options (4) => MSS: 1460 NOP NOP SackOK
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/25-23:12:23.185910 0:13:1A:4F:81:40 -> 0:12:3F:24:C1:84 type:0x800 len:0x3C
211.101.6.3:31952 -> 202.202.202.202:8086 TCP TTL:117 TOS:0x0 ID:60225 IpLen:20 DgmLen:40 DF
***A**** Seq: 0x487F9CDB Ack: 0xF5DB9C78 Win: 0xFFFF TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/25-23:12:23.187659 0:13:1A:4F:81:40 -> 0:12:3F:24:C1:84 type:0x800 len:0x19E
211.101.6.3:31952 -> 202.202.202.202:8086 TCP TTL:117 TOS:0x0 ID:60226 IpLen:20 DgmLen:400 DF
***AP*** Seq: 0x487F9CDB Ack: 0xF5DB9C78 Win: 0xFFFF TcpLen: 20
47 45 54 20 2F 31 37 2F 61 63 69 64 5F 71 72 79 GET ....acid_qry
5F 6D 61 69 6E 2E 70 68 70 3F 6E 65 77 3D 31 26 _main.php?new=1&
6C 61 79 65 72 34 3D 49 43 4D 50 26 63 61 6C 6C layer4=ICMP&call
65 72 3D 6C 61 73 74 5F 69 63 6D 70 26 6E 75 6D er=last_icmp&num
5F 72 65 73 75 6C 74 5F 72 6F 77 73 3D 2D 31 26 _result_rows=-1&
73 75 62 6D 69 74 3D 4C 61 73 74 25 32 30 49 43 submit=Last%20IC
4D 50 20 48 54 54 50 2F 31 2E 30 0D 0A 56 69 61 MP HTTP/1.0..Via
3A 20 31 2E 31 20 50 52 4F 58 59 0D 0A 55 73 65 : 1.1 PROXY..Use <-- 使用代理服务器的特征
72 2D 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 r-Agent: Mozilla <-- 浏览器类型,用户可定制
2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62 6C 65 /4.0 (compatible
3B 20 4D 53 49 45 20 36 2E 30 3B 20 57 69 6E 64 ; MSIE 6.0; Wind
6F 77 73 20 35 2E 31 29 0D 0A 48 6F 73 74 3A 20 ows 5.1)..Host:
32 30 32 2E 31 30 38 2E 39 2E 38 30 3A 38 30 38 202.202.202.202....
36 0D 0A 41 63 63 65 70 74 3A 20 2A 2F 2A 0D 0A ...Accept: */*..
52 65 66 65 72 65 72 3A 20 68 74 74 70 3A 2F 2F Referer: http://
77 77 77 2E 77 68 69 74 65 68 6F 75 73 65 2E 6E www.whitehouse.n<-- 用户可定制的字段
65 74 0D 0A 41 63 63 65 70 74 2D 4C 61 6E 67 75 et..Accept-Langu
61 67 65 3A 20 7A 68 2D 63 6E 0D 0A 41 63 63 65 age: zh-cn..Acce
70 74 2D 45 6E 63 6F 64 69 6E 67 3A 20 67 7A 69 pt-Encoding: gzi
70 2C 20 64 65 66 6C 61 74 65 0D 0A 50 72 61 67 p, deflate..Prag
6D 61 3A 20 6E 6F 2D 63 61 63 68 65 0D 0A 43 6F ma: no-cache..Co
6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 nnection: Keep-A
6C 69 76 65 0D 0A 0D 0A live....
-------- End of web --------------------------------------------------
可以使用 iptables 的 strings 模块来对包含数据段(payload)中包含 PROXY 的请求做限制.
--------------------------------------------------------------
*************** 对 smtp(25) **********************************
--------------------------------------------------------------
在202.202.202.202 上运行smtpsvr, cc.exe 中指定AttrackList为 http://202.202.202.202:25, 开启1000个
Thread.
攻击时,在9.80上看到已建立的连接稳在 1300 个,系统负载没有在 1 左右.
------- 攻击发起者的网络流量 ------------------------------------------
(ppp0+sit0+vmnet1+vmnet8+eth0)* input * output
time kbytes packets Merrs kbytes packets Merrs colls
22:23:20 153 921 0 70 1002 0 0
22:23:21 351 1039 0 88 1166 0 0
22:23:22 333 1145 0 91 1494 0 0
22:23:23 207 866 0 58 1000 0 0
22:23:24 209 842 0 64 970 0 0
22:23:25 228 903 0 70 1094 0 0
22:23:26 179 863 0 60 1009 0 0
----------------------------------------------------------------------
----- 检查了IDS中的记录,一共有6条相关的记录 ------------------------------
#64411-(1-67861) [snort] (portscan) TCP Decoy Portscan 2005-10-25 22:11:12 219.149.233.179 >
202.202.202.202 Raw IP
#64412-(1-67860) [snort] (portscan) TCP Portsweep 2005-10-25 22:11:12 219.149.233.179 >
202.202.202.202 Raw IP
#64413-(1-67859) [snort] (portscan) TCP Portsweep 2005-10-25 22:10:21 211.101.6.3 >
202.202.202.202 Raw IP
----------------------------------------------------------------------
抓包之后从数据包头部看不到明显的特征.
代码
------- 攻击 smtp 时一个完整的连接建立过程,和请求时的数据段---------------------
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/26-00:46:33.331445 0:13:1A:4F:81:40 -> 0:12:3F:24:C1:84 type:0x800 len:0x4A
211.238.165.163:46854 -> 202.202.202.202:25 TCP TTL:52 TOS:0x0 ID:7533 IpLen:20 DgmLen:60 DF
******S* Seq: 0xFD17D0C8 Ack: 0x0 Win: 0x16D0 TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 904613 0 NOP WS: 0
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/26-00:46:33.331456 0:12:3F:24:C1:84 -> 0:13:1A:4F:81:40 type:0x800 len:0x4A
202.202.202.202:25 -> 211.238.165.163:46854 TCP TTL:64 TOS:0x0 ID:0 IpLen:20 DgmLen:60 DF
***A**S* Seq: 0x58577A09 Ack: 0xFD17D0C9 Win: 0x16A0 TcpLen: 40
TCP Options (5) => MSS: 1460 SackOK TS: 3657680 904613 NOP WS: 0
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/26-00:46:33.545696 0:13:1A:4F:81:40 -> 0:12:3F:24:C1:84 type:0x800 len:0x42
211.238.165.163:46854 -> 202.202.202.202:25 TCP TTL:52 TOS:0x0 ID:7534 IpLen:20 DgmLen:52 DF
***A**** Seq: 0xFD17D0C9 Ack: 0x58577A0A Win: 0x16D0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 904633 3657680
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
10/26-00:46:33.545919 0:12:3F:24:C1:84 -> 0:13:1A:4F:81:40 type:0x800 len:0x80
202.202.202.202:25 -> 211.238.165.163:46854 TCP TTL:64 TOS:0x0 ID:46575 IpLen:20 DgmLen:114 DF
***AP*** Seq: 0x58577A0A Ack: 0xFD17D0C9 Win: 0x16A0 TcpLen: 32
TCP Options (3) => NOP NOP TS: 3657701 904633
32 32 30 20 31 32 36 2E 63 6F 6D 20 43 6F 72 65 220 yy410.com po
6D 61 69 6C 20 53 4D 54 50 28 41 6E 74 69 20 53 ster SMTP(Anti S
70 61 6D 29 20 53 79 73 74 65 6D 20 28 31 32 36 pam) System (410
63 6F 6D 5B 30 33 30 39 30 31 5D 29 0D 0A com[030901])..
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
------------ End of smtp --------------------------------------------
小结: cc使单台主机具有了ddos攻击的可能;攻击者可以在受害主机上隐藏自己,但是可以通过察看proxy的日志来获得用户的真
实IP,但对广大的使用动态IP的用户来说,这样的查找并没有多大的意义.cc的攻击兼有ddos和连接耗尽的特点;当用户使用较多的
代理服务器时,就很难查找了;可以在服务器被攻击时限制单IP的连接数量来阻止.
-------- CC 攻击原理 -- 来自源码包 ------------------------------------
1. 为什么我使用CC没有什么效果?
CC是通过模拟多用户访问来达到拒绝服务的效果的,也就是说如果你模拟的用户数目不能达到服务器的最大用户,就达不到拒绝服
务的效果,比如xfocus只要600用户就能拒绝,某台超级SMTP服务器需要4000+的线程才能拒绝服务。
2. 为什么我的CC一运行就出错?
说实话,这是我的错误,我最早的版本是有一个BUG的,其实就是代码里面的hostnow溢出,所以你换个现在的版本就没有问题了
3. CC的攻击效果取决于什么?
你使用的有效的代理数目,线程数,你选择的攻击的页面,还有服务器的性能。
4. CC为什么要使用代理,直接连接效果不是更好吗?
使用代理的理由很多
第一是为了安全
第二是很多系统的防火墙都会检测出有人PORT-FLOOD,使用代理就不存在被检测成PORT-FLOOD的问题。
第三是利用了代理的特性,代理有个特性就是接到用户请求以后一定会读取页面,不管用户是否已经断开,这样大大提高了我们的
攻击效率,如果我们直接连接必须保持住连接对方服务器才运行,我们通过代理只要把请求发给代理就可以断开,剩下的是代理的
事情了。所以我们电脑完成的只是连接代理-〉发送请求-〉断开,而不是有些朋友认为的需要等待数据返回,所以程序才能达到如
此的高线程。
5. 为什么我用1000线不能D下来的服务器,别人500线就可以呢?
这个就是页面选择的问题了,如果选择静态页面,效果可以说很不好,因为服务器读取一个静态页面不需要多少时间就能完成,比
如一个页面服务器的读取时间为0.0002S那么这说明该服务器的该页面理论处理能力为5000个页面,如果读取时间为0.2S那么说
明该服务器该页面的理论处理能力只有5个,显然攻击效果明显不一样。如果我一秒发起500个连接,对于第一个页面,服务器在
0.1S里面就处理完了,我怎么攻击也是没有效果的,对于第二个页面,服务器在一秒内只处理了5个连接,还有495个连接在队列
中,这样服务器就有495个连接被占用了,2秒就是990个,1分钟就有29700个连接在队列,如果服务器允许的并发连接数目小于
这个数字,那么任何人都无法连接到服务器了,服务器这时的CPU资源和内存资源也都满负荷了。
6. 如何选择一个好的页面?
从第五条我们可以知道,一个能让服务器运行时间越久的页面越是服务器的薄弱点,大家知道木桶理论,木桶能装多少水不决定于
木桶最高的地方有多高,而是木桶最低的地方的高度,那么我们选择一个服务器运行时间最久的页面作为对象,这一般是选择数据
查询次数多、查询量大、查询时间长的页面。
7. 很多论坛同时在线都有2000多人,为什么CC模拟500人攻击就不行了?
因为2000多人在线不是同时请求访问服务器的,2000多人很可能在某一秒只有200人在请求服务器页面,有1000多人在看帖子,
还有100多人在点连接,还有一些人只是在线,其实在看其他的网站。
8. 我听说CC还可以攻击SMTP、FTP等服务器?
是的,通过精心选择参数,CC可以非常有效的攻击FTP服务器,我曾经用Microsoft的FTP服务器ftp.microsoft.com做过试验,效果非常的好,但是CC的目的不是教大家如何攻击,如果这里详细说明这样成为一个傻瓜式的攻击软件了,我相信能看懂源代码的朋友一定明白怎么回事。对于SMTP服务器其实就是PORT-Flood攻击了,也是通过参数的选择来实现的。
9. CC有什么好的防御方法吗?
有,对于HTTP请求可以使用COOKIE和SESSION认证来判断是否是CC的请求页面,防止多代理的访问请求,而且CC通过代理攻击,
代理在转发数据的时候会向HTTP服务器提交一个x-forward-ip(好像是,这就是为什么我们有时使用了代理,对方服务器一样知
道我们的真实IP)这样也是一个非常好的判断方法,因为网络上的代理虽然多,但是大部分都是非匿名的,就是说会发送
x-forward-ip的代理。