DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器

DNS反射放大攻击分析

摘自:http://www.shaojike.com/2016/08/19/DNS%E6%94%BE%E5%A4%A7%E6%94%BB%E5%87%BB%E7%AE%80%E5%8D%95%E5%88%86%E6%9E%90/

简介

DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器。

简单对比下正常的DNS查询和攻击者的攻击方式:

正常DNS查询:
源IP地址 —–DNS查询—-> DNS服务器 —–DNS回复包—-> 源IP地址

DNS攻击:
伪造IP地址 —–DNS查询—-> DNS服务器 —–DNS回复包—-> 伪造的IP地址(攻击目标)

分析

从服务器上抓了一些攻击包,根据这些数据包可以来看看这种攻击都是什么特点。

  • 全部是大量的DNS响应请求(Response请求)

  • 通常里面包含一些不存在或者生僻的域名,经过循环查询从而放大DNS流量

  • 会将将 OPT RR 字段中的 UDP 报文大小设置为很大的值(如 4096)

通过这样放大了攻击流量。发送的 DNS 查询请求数据包大小一般为 60 字节左右,而查询返回结果的数据包大小通常为 3000 字节以上,因此,使用该方式进行放大攻击能够达到 50 倍以上的放大效果。

  • 大量的流量都来自正常的DNS服务器

攻击者通过伪造IP向正常的DNS服务器发送这些恶意的查询请求,将流量引入受害者的服务器,受害者查不到攻击者的真实IP

解决方案

      1. 如果没有必要可以关闭DNS服务(废话么不是
      2. 如果有DNS服务,做好响应限制,DNS服务不应对互联网上的域名解析服务,而只响公司内部网络DNS解析请求
      3. 限制DNS响应数据包大小的阈值,直接丢弃超大的响应数据包

DNS反射放大攻击

      DNS反射放大攻击的原理也是类似的。网络上有大量的开放DNS解析服务器,它们会响应来自任何地址的解析请求。我们发出的解析请求长度是很小的,但是收到的结果却是非常大的,尤其是查询某一域名所有类型的DNS记录时,返回的数据量就更大,于是可以利用这些解析服务器来攻击某个目标地址的服务器,而且是利用被控制的机器发起伪造的解析请求,然后解析结果返回给被攻击目标。由于DNS解析一般是UDP请求,不需要握手,源地址属性易于伪造,而且部分“肉鸡”在平时本来就是合法的IP地址,我们很难验证请求的真实性和合法性。DNSSEC是一种可以防止缓存投毒的机制,另外,如果DNS本身抗压能力不行,而且对方请求量过大的话,也会影响到DNS本身的服务。目前此类攻击的规模在数百Gbps级别。

时间: 2024-10-13 23:20:34

DNS反射放大攻击分析——DNS反射放大攻击主要是利用DNS回复包比请求包大的特点,放大流量,伪造请求包的源IP地址为受害者IP,将应答包的流量引入受害的服务器的相关文章

我的 IP 地址(View IP address)

插件介绍: 很多时候我们需要使用到IP地址,这个名词可能人人都知道,但是你知道怎么查看你自己的IP地址吗?今天为大家推荐一款查看IP地址的插件.我的 IP 地址(View IP address),此应用程序显示有关您的 IP 地址,例如地理定位. ISP. DNS,详细的信息 whois,路由. 托管. 域的邻居,DNSBL,BGP 和 ASN 信息. 使用说明: 将我的 IP 地址(View IP address)添加至chrome,并在扩展器中启动它. 功能介绍: -像 ISP. ASN.

关于公共IP地址(公网ip):您需要知道的

目录:? 什么是公共ip地址?? 私有IP与公共IP地址? 公共IP地址范围? 如何查找您的公共IP地址? 动态ip? 隐藏您的公共IP地址 什么是公共ip地址? 公共IP地址是您的家庭或企业路由器从ISP接收的IP地址.任何可公开访问的网络硬件都需要公共IP地址,例如家庭路由器以及托管网站的服务器.公共IP地址是插入公共互联网的所有设备的不同之处.每个访问互联网的设备都使用唯一的IP地址.实际上,公共IP地址有时被称为Internet IP. 这是每个互联网服务提供商用于将互联网请求转发到特定

ubuntu14.04静态ip地址与动态ip地址配置

有时我们希望Ubuntu14.04的ip地址为静态ip地址,使得ubuntu中的ip地址不变,这样会方便在嵌入式设备和主机Ubuntu进行用网口进行调试. 静态ip地址的配置方法:在/etc/network/interfaces文件中,修改内容为 # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static #iface eth0

python编写IP地址与十进制IP转换脚本

IP地址与十进制IP转换 #!/usr/bin/env python #encoding=utf-8 import re import sys import os def ten_to_two(ten_num): two_str = '' while ten_num != 1: a = ten_num % 2 two_str = two_str + str(a) ten_num = ten_num / 2 else: two_str = two_str + str(1) two_str = tw

PHP获取IP地址及根据IP判断城市实现城市切换或跳转

PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: ? <? //PHP获取当前用户IP地址方法 $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $xp_UserIp = ($xp_UserIp) ? $xp_

linux c 网络编程:用域名获取IP地址或者用IP获取域名 网络地址转换成整型 主机字符顺序与网络字节顺序的转换

用域名获取IP地址或者用IP获取域名 #include<stdio.h> #include<sys/socket.h> #include<netdb.h> int main(int argc,char **aggv) { struct hostent *host; char hostname[]="www.163.com"; char hostname2[]="www.baidu.com"; struct in_addr in;

(转)ip地址,手机ip查询

页面地址:http://www.ip138.com/ 外链地址(实际主页面里面有)http://www.ip138.com/iplink.htm 外链地址里面的内容: <FORM METHOD=get ACTION="http://www.ip138.com/ips1388.asp" name="ipform" target="_blank"><tr><td align="center">I

清除被隐藏网卡占用的IP地址,本机IP地址被占用

清除被隐藏网卡及占用的IP地址,本机IP地址被占用当主机中的网卡更换或换了一个插槽时,还要用到原来网卡的IP地址,但系统提示IP地址已经被本机中网卡占用,而主机里确实只有刚插入的网卡,这个原因就是以前插入的网卡占用了该IP地址,但它隐藏了,我们删不到它,在XP/2K3系统中解决方法如下: 方法一.在运行中输入regedit,打开注册表编辑器,找到"HKEY-LOCAL-MACHINE\System\ControlSet001\coontrol\sessionmanage\Environment,

浮动IP地址(Float IP)与 ARP欺骗技术

浮动IP地址: 一个网卡是可以添加多个IP的. 就是多个主机工作在 同一个集群中,即两台主机以上.每台机器除了自己的实IP外,会设置一个浮动IP,浮动IP与主机的服务(HTTP服务/邮箱服务)绑在一起的.即应用服务在哪台机器上启动,浮动IP也在这台机器上激活,这台机器看上去就有两个IP地址.对于客户端它只需访问浮动IP即可. 即使主机端的机器由于故障发生切换,客户端只要连接上浮动IP,就可以找到主机端的服务. 好处就是一旦其中一台机器不能工作了,可以很快的将服务切换到另外一台主机上.提高系统的冗