什么是DNS隧道?检测指令





DNS隧道将域名系统变成了黑客的武器。DNS本质上是Internet上的庞大电话簿。DNS也是允许管理员查询DNS服务器数据库的基础协议。到目前为止,一切似乎都很清楚。但是狡猾的黑客意识到,可以通过向DNS协议中注入控制命令和数据来与受害计算机进行秘密通信。这个想法是DNS隧道的核心。



DNS隧道如何工作







Internet上的所有内容都有其自己的单独协议。 DNS支持相对简单的质询响应协议。如果要查看其工作原理,可以运行nslookup,这是提交DNS查询的主要工具。您可以简单地通过指定感兴趣的域名来请求地址,例如:







在我们的例子中,协议以域的IP地址作为响应。关于DNS协议,我提出了地址请求或所谓的。 “一种。还有其他类型的查询,DNS协议将以一组不同的数据字段作为响应,正如我们稍后将看到的那样,黑客可以利用它们。



DNS协议以一种或另一种方式,其核心是将请求传递到服务器并将其响应返回给客户端。如果攻击者在域名请求中添加了隐藏消息怎么办?例如,他将输入要传输的数据,而不是输入一个完全合法的URL:







假设攻击者控制了DNS服务器。然后,它可以传输数据(例如,个人数据),而不必被发现。毕竟,为什么DNS请求会变得不合法?



通过控制服务器,黑客可以欺骗响应并将数据发送回目标系统。这样一来,他们就可以将DNS响应各个字段中隐藏的消息传递给受感染机器上的恶意软件,并在特定文件夹中进行搜索等操作。



这种攻击的“隧道”部分是隐藏数据和命令,以免监视系统对其进行检测。黑客可以使用base32,base64等字符集,甚至可以加密数据。通过明文搜索的简单威胁检测实用程序不会注意到这种编码。



这就是DNS隧道!



DNS隧道攻击的历史



一切都有一个开始,包括出于黑客目的劫持DNS协议的想法。据我们所知,Oskar Pearson于1998年4月在Bugtraq邮件列表上进行了第一次讨论



到2004年,Dan Kaminsky在一次演讲中将DNS隧道作为一种黑客技术引入了Black Hat。因此,这个想法很快就发展成为一种真正的攻击工具。



如今,DNS隧道在潜在威胁的地图上占据了重要位置(并且经常要求安全博客作者对此进行解释)。



你听说过海龟这是网络犯罪团体(很可能是由国家赞助)正在进行的一项活动,劫持合法的DNS服务器,以便将DNS请求重定向到其自己的服务器。这意味着组织将收到“不良” IP地址,该地址指向由黑客(例如Google或FedEx)运行的假网页。同时,攻击者将能够获取用户的帐户和密码,而他们将在不知不觉中将其输入到这些假网站上。这不是DNS隧道传输,而是黑客控制DNS服务器的另一个令人讨厌的结果。



DNS隧道威胁







DNS隧道就像是坏消息阶段开始的指示器。哪个?我们已经介绍了一些内容,但让我们对其进行结构化:



  • () – DNS. - — — , – !
  • (Command and Control, C2) – DNS- , , (Remote Access Trojan, RAT).
  • IP-Over-DNS – , , IP- DNS-. FTP, Netcat, ssh .. . !


DNS-







检测DNS滥用的主要方法有两种:负载分析和流量分析。



分析负载时,防御方会在双向传输的数据中寻找异常,这可以通过统计方法检测到:看起来很奇怪的主机名,不经常使用的DNS记录类型或非标准编码。



分析流量时,与平均水平相比,估计到每个域的DNS查询数。使用DNS隧道的攻击者将向服务器生成大量流量。从理论上讲,大大优于普通的DNS消息传递。而且必须对此进行监视!



DNS隧道实用程序



如果您想进行自己的渗透测试并检查您的公司对此类活动的检测和响应程度,那么可以使用多种实用程序。它们都能够以IP-DNS方式进行隧道传输



  • -在许多平台(Linux,Mac OS,FreeBSD和Windows)上可用。允许您在目标计算机和主机计算机之间安装SSH Shell。这是设置和使用碘的良好指南
  • OzymanDNS是Dan Perin编写的Dan Kaminsky的DNS隧道项目。您可以通过SSH与它连接。
  • DNSCat2- “不要厌烦DNS隧道。” 创建一个加密的C2通道,用于发送/下载文件,启动Shell等。


DNS监控实用程序



下面列出了一些可用于检测隧道攻击的实用程序:



  • dnsHunter是为MercenaryHuntFramework和Mercenary-Linux编写的Python模块。读取.pcap文件,提取DNS查找,并执行地理位置匹配以辅助分析。
  • reassemble_dns是一个Python实用程序,可读取.pcap文件并解析DNS消息。


DNS隧道微常见问题解答



以问答形式提供的最有用的信息!



问:什么是隧道?

答:这只是通过现有协议传输数据的一种方式。基础协议提供专用的通道或隧道,然后将其用于隐藏实际传输的信息。



问:什么时候进行了第一次DNS隧道攻击?

答:我们不知道!如果您知道-请告诉我们。据我们所知,奥斯卡·皮尔桑(Oscar Pearsan)于1998年4月在Bugtraq邮件列表上发起了有关攻击的首次讨论。



问:哪些攻击与DNS隧道相似?

关于:DNS远非唯一可用于隧道的协议。例如,命令和控制(C2)恶意软件通常使用HTTP掩盖通信通道。与DNS隧道一样,黑客隐藏了他的数据,但在这种情况下,看起来就像是常规Web浏览器访问远程站点(由攻击者控制)的流量。如果未将程序配置为感知黑客入侵HTTP协议威胁,则可能无法通过监视程序来注意到这一点



希望我们提供有关DNS隧道检测的帮助吗?查看我们的Varonis Edge模块并尝试免费演示



All Articles