DNS中一些有趣的知识

  1. 国际化的域名:https://www.cnblogs.com/xgqfrms/p/13155343.html
  2. punycode:https://zh.wikipedia.org/wiki/国际化域名编码
  3. IDN Spoof漏洞自动化挖掘:https://xz.aliyun.com/t/3534
  4. DNSCrypt:https://zh.wikipedia.org/zh-cn/DNSCrypt
  5. DNS知识大杂烩:https://pan.icu/51

随机子域名攻击
就是在DNS服务商配置了泛域名解析,攻击者伪造大量不存在的前缀的DNS请求,导致权威服务器承受流量过大而gg。
例如:用户配置*.test.com解析,然后攻击者伪造a.test.comb.test.com...等不存在的域名进行DNS请求。
一般DNS服务商都会部署DNS缓存服务器 -> 权威服务器的多层缓存架构。
那么攻击者只要攻击DNS缓存服务器,使DNS缓存服务器代替攻击者向权威服务器发起查询请求。
服务商可以从DNS缓存服务器,通过一定的限流算法(令牌、漏桶),从source ip和destination ip两个角度来限制流量。
或者攻击者的攻击特征(即伪造的域名都比较有规则,那么就可以禁掉对应的DNS请求)比较明显,就可以根据攻击特征溯源到攻击者的IP(可能有多台)然后禁掉,或者直接禁掉这个不存在域名的请求。

参考文章:
http://blog.nsfocus.net/protection-suggestions-of-random-subdomain-attack/
http://cybatk.com/2017/03/25/rsd-attack/
https://pic.huodongjia.com/ganhuodocs/2017-11-17/1510904631.86.pdf

流量放大
通过向DNS服务商伪造DNS请求(一个请求包会获得数倍于其的响应包)导致攻击的流量被放大🔍。
为什么DNS请求会被伪造呢?
首先DNS协议是基于无连接的UDP协议,它不像TCP协议需要通过三次握手🤝确认双方身份,如果身份不正确(IP、Port不对)就会发送RST包结束连接。但是TCP协议的第一次握手确认,即SYN+ACK包也可以被回应,那为什么不使用这种攻击方式呢?这种方式没有DNS请求的流量放大效果,只需要发送一个TCP头就够了。
关于TCP协议,还有一种专门用于攻击服务端的SYN泛洪攻击手段,就是利用三次握手需要在真正建立连接前,占用服务端的一个半连接队列的socket,通过向服务端不断发送伪造的SYN包建立连接,打爆服务端的半连接队列。

posted @ 2023-05-10 00:43  yghr  阅读(49)  评论(0)    收藏  举报