C1imber's Blog

Ettercap实现局域网dns劫持

字数统计: 1k阅读时长: 3 min
2018/03/21 Share

Ettercap实现局域网dns劫持百度

很久之前做过的一个实验,利用kali的Ettercap进行局域网的dns劫持,今天实验课老师碰巧又提到了,于是又做了做,这是一个很好玩的实验

环境准备

1.kali2.0操作系统,本人用的32位的,装在vm12虚拟机中,连接自己的RT3070的无线网卡(网卡一定要是kali2.0支持的型号),同时开启apache服务,进行dns劫持

2.自己的真实机,连接本机电脑的无线网卡

3.RT3070网卡和本机电脑网卡连接同一wifi,保证kali和自己的PC在同一局域网,用kali对自己的PC进行DNS缓存投毒

4.用到的软件:kali中的Ettercap,一个集成工具,里面包括了局域网主机扫描,arp欺骗,DNS劫持等功能

5.浏览器:谷歌浏览器

原理

DNS,全称为域名解析协议,是一种将域名解析为ip地址的协议,基于UDP的53端口。比如我们在浏览器访问百度域名,会先向dns服务器发送一次dns请求报文,询问百度的ip地址,dns服务器经过查询(或递归查询)会将百度的域名以及对应的ip地址以dns响应报文的形式发回给我们,然后我们才可以与所对应的ip建立TCP连接进行网络通信。dns劫持建立在arp欺骗的基础上,关于arp的文章之前有写过,链接:arp协议分析&python编程实现arp欺骗抓图片,通过arp欺骗可以监听受害者机器到网关之间的流量,如果可以过滤协议为UDP,端口为53端口的数据报文,也就是DNS报文,并且将dns响应中的域名所对应的ip地址改写成我们服务器的ip,受害者机器就会与我们的机器进行连接通信,这就是dns投毒的基本原理,kali的Ettercap就可以做到这一点,当然明白了攻击原理,自己编程实现也是可以的,python的scapy库便可以做到,之后有时间会尝试写一下

具体操作

1.开启ip转发功能,默认是关闭的

echo "1"> /proc/sys/net/ipv4/ip_forward

mark

2.查看kali的ip为192.168.0.106,并且修改Ettercap的配置文件,添加一条dns解析记录(A记录)

* A 192.168.0.106

mark
mark
意思是将所有域名都解析到我们kali的ip上

3.service apache2 start开启apache服务,并在/var/www/html下新建index.html,就是我们攻击后想要看到的效果页面,自己简单写了个有意思的页面,效果如下
mark
mark
4.准备工作都做好了,接下来使用Ettercap开始我们的攻击,启动Ettercap图形界面

ettercap -G

点击Sniff–>Unified sniffing
mark
在这选择wlan0无线网卡,因为kali上网使用的是无线网卡,如果虚拟机插网线桥接,这里选eth0
mark
接下来点击Hosts–>Scan for hosts,扫描局域网中存活的ip,寻找攻击目标
mark
显示扫到5个主机,点击Hosts list查看
mark
mark
在ip列表里可以看到网关ip192.168.0.1,还有我们的物理机ip192.168.0.103,接下来开始arp欺骗,具体操作将192.168.0.1Add to Target1,将受害PCip192.168.0.103Add to Target2,然后点击Mitm–>ARP poisoning
mark
勾选第一个
mark
ARP欺骗便开始了
mark
下面开始dns劫持,点击Plugins–>Manage the plugins
mark
选择dns_spood插件,便开始dns欺骗了
mark
我们这时访问百度,就会看到dns已经被劫持,嘿嘿嘿
mark
mark
同时欺骗了室友的电脑和手机也成功,差点没被打死。。。。就是皮

最后说一下,dns劫持这种攻击不仅限于恶作剧,利用这种攻击,我们还可以诱导受害者进入我们构造的恶意软件下载页面,下载恶意软件以让我们对对方的电脑做一些事情

老铁们遇到dns劫持这种恶作剧,打开cmd命令行输入

ipconfig /flushdns

刷新dns缓存即可,然后找到那个皮的人。。。

CATALOG
  1. 1. Ettercap实现局域网dns劫持百度
    1. 1.0.1.
    2. 1.0.2. 环境准备
    3. 1.0.3. 原理
    4. 1.0.4. 具体操作