漏洞简介:

该漏洞为DNS 放大攻击,是 DDoS 攻击,攻击者利用 DNS 服务器中的漏洞将小查询转换为可能破坏目标服务器的更大负载。

在 NXNSAttack 的情况下,远程攻击者可以通过向易受攻击的解析器发送 DNS 查询来放大网络流量,而要查询的权威域名服务器由攻击者所控制。攻击者的服务器响应虚假域名服务器名称(NS记录)指向受害者 DNS 域,导致解析器生成对受害者 DNS 服务器的查询。攻击可导致放大系数超过 1620。

DNS解析过程:

假设从浏览器访问www.mircrosoft.com,需要去得到它的ip地址。首先是查看自己的浏览器缓存,再查看存根解析器(OS内)的缓存,如果有转发器,还会去查看转发器的缓存,再去查看递归解析器的缓存。①递归解析器向根域名服务器发出查询。②根域名服务器作出NS 响应,告诉.com域 的顶级域名服务器。③递归解析器接着向.com顶级域名服务器发出查询。④DNS顶级域名服务器 进行NS记录的响应,告诉microsoft.com 的权威域名服务器的地址。⑤DNS解析器向 权威域名服务器发出查询,权威域名服务器,作出A记录的响应。

具体解析过程,可看博客之前DNS的相关内容。

攻击原理:

1.攻击者作为客户端,向解析器发出查询rand123.sub.attacker.com 的ip地址

2.解析器向攻击者控制的权威域名服务器发出查询。

3.攻击者控制权威域名服务器,应答好多个rand x.vitcim.com 假冒的ns记录,指向受害者的域名。

4.解析器根据返回的ns记录向受害者权威域名服务器做出查询。大大占用受害者的资源,形成放大攻击,可造成DDOS攻击。

复现代码:

poc:https://github.com/sischkg/nxnsattack

防御措施:

在流量设备侧对DNS响应包中对满足如下条件的包进行拦截

  • 含有大量的NS转发查询请求
  • 复数指向同一服务器的二级/多级子域名请求

不响应非信任服务器的 DNS 查询结果

  • 同传统的防护策略采用流量黑白名单进行
本文参考NXNSAttack: Recursive DNS Inefficiencies and Vulnerabilities这篇论文,具体可去查看这篇论文。

参考链接:

论文地址

NXNSAttack漏洞简析的更多相关文章

  1. NETGEAR 系列路由器命令执行漏洞简析

    NETGEAR 系列路由器命令执行漏洞简析 2016年12月7日,国外网站exploit-db上爆出一个关于NETGEAR R7000路由器的命令注入漏洞.一时间,各路人马开始忙碌起来.厂商忙于声明和 ...

  2. XXE漏洞简析

    0x00.什么是XXE? XML外部实体注入(XML External Entity Injection) XML基础 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型. ...

  3. CSV文件注入漏洞简析

    “对于网络安全来说,一切的外部输入均是不可信的”.但是CSV文件注入漏洞确时常被疏忽,究其原因,可能是因为我们脑海里的第一印象是把CSV文件当作了普通的文本文件,未能引起警惕. 一.漏洞定义 攻击者通 ...

  4. 简析.NET Core 以及与 .NET Framework的关系

    简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...

  5. 简析 .NET Core 构成体系

    简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...

  6. RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

  7. Java Android 注解(Annotation) 及几个常用开源项目注解原理简析

    不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...

  8. PHP的错误报错级别设置原理简析

    原理简析 摘录php.ini文件的默认配置(php5.4): ; Common Values: ; E_ALL (Show all errors, warnings and notices inclu ...

  9. Android 启动过程简析

    首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...

随机推荐

  1. multiset容器erase函数的误用

    <从缺陷中学习C/C++>第3章库函数问题,本章主要介绍库函数的使用中会遇到的问题.使用库函数可以降低软件开发的难度,提高代码编写的效率.本节为大家介绍multiset容器erase函数的 ...

  2. laravel 批量删除

    <button id="delAll">批量删除</button>//给按钮一个id属性 <input type="checkbox&quo ...

  3. [c++] 细节

    \r退格:printf("asdflkj\r111")输出111flkj(https://blog.csdn.net/tyshtang/article/details/436770 ...

  4. [笔记] c和指针

    1.简介 2.基本概念 3.指针 计算机内存的最小单位是位(bit),每个位可以容纳值0或1,单独的位用处不大,通常许多位合成一组作为一个单位,以存储较大范围的值 每个字节包含8位,可以存储无符号值0 ...

  5. IT菜鸟之虚拟机VMware的使用

    虚拟机安装完成了,以下是虚拟机的使用. 双击快捷方式,打开vmware虚拟机. 点击创建新虚拟机,这里可以选择创建方式,可以点击典型并一路下一步创建,我们这里讲自定义创建. 这里选择兼容版本,大家可以 ...

  6. LNMP/LAMP

    LNMP/LAMP 环境: 名称 Linux Nginx MySQL PHP Apache 版本 Centos7 nginx-1.14.1 mysql-5.6.25 php-5.6.36 Apache ...

  7. 一、MegaCli命令介绍

    一.MegaCli命令介绍 MegaCli是一款管理维护硬件RAID软件,可以用来查看raid信息等MegaCli 的Media Error Count: 0 Other Error Count: 0 ...

  8. 使用Selenium从IEEE与谷歌学术批量爬取BibTex文献引用

    搞科研的小伙伴总是会被期刊严苛的引用文献格式搞的很头疼.虽然常用的文献软件可以一键导出BibTex,但由于很多论文在投稿之前都会先发上Arxiv占坑,软件就很可能会把文献引出为来自Arxiv.我用的是 ...

  9. Navigation activity回退到fragment失败

    我有一个activity--MainActivity, 布局中设置了一个 <androidx.fragment.app.FragmentContainerView android:layout_ ...

  10. AlertDailog中的which问题

    在做一个AlertDialog的点击事件设置的时候: AlertDialog.Builder(this).apply { var numberIndex = 0 setTitle("choo ...