我们都知道,dns服务器的作用在于解析域名,将人容易记忆的域名与机器理解的ip地址联系起来。我们用域名访问一个网站的时候,主机首先会访问dns服务器,得到所要访问网站的ip地址,然后主机再根据这个IP地址来访问网站。
DNS劫持又称域名劫持,是指通过某些手段取得某域名的解析控制权,修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址。
dns劫持的方法有很多,下面简单介绍一下几种dns劫持的方法:
正常的DNS服务器递归查询过程可能被利用成DDOS攻击。假设攻击者已知被攻击机器的IP地址,然后攻击者使用该地址作为发送解析命令的源地址。这样当使用DNS服务器递归查询后,DNS服务器响应给最初用户,而这个用户正是被攻击者。那么如果攻击者控制了足够多的肉鸡,反复的进行如上操作,那么被攻击者就会受到来自于DNS服务器的响应信息DDOS攻击。
如果攻击者拥有着足够多的肉鸡群,那么就可以使被攻击者的网络被拖垮至发生中断。利用DNS服务器攻击的重要挑战是,攻击者由于没有直接与被攻击主机进行通讯,隐匿了自己行踪,让受害者难以追查原始的攻击来。
方法二:DNS缓存感染
攻击者使用DNS请求,将数据放入一个具有漏洞的的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给用户,从而把用户客户对正常域名的访问引导到入侵者所设置挂马、钓鱼等页面上,或者通过伪造的邮件和其他的server服务获取用户口令信息,导致客户遭遇进一步的侵害。
方法三:DNS信息劫持
TCP/IP体系通过序列号等多种方式避免仿冒数据的插入,但入侵者如果通过监听客户端和DNS服务器的对话,就可以猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。攻击者在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。假设当提交给某个域名服务器的域名解析请求的DNS报文包数据被截获,然后按截获者的意图将一个虚假的IP地址作为应答信息返回给请求者。原始请求者就会把这个虚假的IP地址作为它所要请求的域名而进行访问,这样他就被欺骗到了别处而无妨连接想要访问的那个域名。
方法四:DNS重定向
攻击者将DNS名称查询重定向到恶意DNS服务器上,被劫持域名的解析就完全在攻击者的控制之下。
方法五:ARP欺骗
ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。ARP攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP病毒,则感染该ARP病毒的系统将会试图通过”ARP欺骗”手段截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。
ARP欺骗通常是在用户局域网中,造成用户访问域名的错误指向。如果IDC机房也被ARP病毒入侵后,则也可能出现攻击者采用ARP包压制正常主机、或者压制DNS服务器,以使访问导向错误指向的情况。
方法六:本机劫持
本机的计算机系统被木马或流氓软件感染后,也可能会出现部分域名的访问异常。如访问挂马或者钓鱼站点、无法访问等情况。本机DNS劫持方式包括hosts文件篡改、本机DNS劫持、SPI链注入、BHO插件等方式。
在本篇文章中,只浅谈一下后面几种方法。
首先,我们要用一个无线网卡来伪造ap。
启动伪ap前的准备
Ifconfig –a 查看当前网卡情况
Ifconfig wlan0 up 激活无线网卡
Airmon-ng start wlan0 将你的无线网卡开启“Monitor”模式
如果这里有其他进程干扰的话就先把干扰进程kill掉再进行。在设置监听模式前先输入airmon-ng checkkill结束进程。
探测目标ap,为伪ap的假设做准备,airodump-ngwlan0mon.
在上面探测ap中,我们可以了解到WiFi名称(ssid)、加密方式以及信道等信息。
接下来我们就可以启动伪ap了。airbase-ng wlan0mon -e "xiaoqin00" -c 6 (这里环境不同,启动
这个时候我们就可收到我们伪造的ap了,但是这个ap无法行使正常的功能,你连接的话它会一直保持获取ip中的状态。
接下来就需要我们配置和这个伪ap配套的dhcp了。
apt-get install udhcpd
修改/etc/udhcpd.conf配置文件,自定义IP池、网关、DNS、interface等等。
推荐用gedit工具来编辑文件:
gedit /etc/udhcpd.conf
修改IP池
192.168.x.y
192.168.x.z
修改执行dhcp功能的接口
可以用过ifconfig -a或者iwconfig命令来查看接口
修改DNS、网关、netmask等
修改/etc/default/udhcpd,修改dhcpd功能为yes。
DHCPD_ENABLE="yes"
开启dhcp服务,service udhcpd start。
配置好dhcp后,我们还需要解决流量问题,这里192.168.2.0/24中的流量需要通过主机网卡eth0与外界进行交互。我们用iptables来解决这个。
再接着就是配置dns服务了。这里我们使用msf中的fakedns来提供dns服务。
我们将xiaoqin00.com的域名劫持到192.168.2.1上。
当这都配置好后,我们来连接这个伪ap。现在,只要被攻击者一进入www.xiaoqin00.com,他就会被劫持到错误的站点,这算是钓鱼的一种方法吧。
当你完成这些之前,如果目标主机已经连接上WiFi,可以对它的WiFi用mdk3等工具进行ddos攻击强制目标断开连接。
*在智能手机中,如果两个WiFi一样,那么手机会保持当前连接并对新出现的WiFi自动进行屏蔽。
*构造伪dhcp服务器有很多种方法,不过有些方法对环境有要求,而且在kali2.0中有些方法并不奏效。
我们可以使用ettercap或者arpspoof来实现dns劫持。
本机dns劫持的操作比较简单,就是将目标主机的dns缓存给偷偷篡改掉。上面我们已经知道了dns的查询过程是先查询本地dns文件,找不到的话再去服务器查询。所以这种本机dns劫持的效果还是挺给力的。
就像这样,进入hosts文件改掉dns。等机主上机时,如果他要访问www.xiaoqin00.com的话,它的会话会被劫持到192.168.2.1上。
当然,你也可以破解路由器,直接更改路由器的dns设置。
本文出自 “天下皆白,哼” 博客,请务必保留此出处http://xiaoqin00.blog.51cto.com/10468367/1717685
原文地址:http://xiaoqin00.blog.51cto.com/10468367/1717685