欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

程序员文章站 2022-07-16 21:11:12
...

Ettercap

简介

Ettercap是一个综合性的中间人攻击工具,使用它可以进行ARP欺骗、拦截器、DNS欺骗等常见的中间人攻击。

常用指令

1.用户界面类型
-T, –text 使用只显示字符的界面
-q, –quiet 安静模式,不显示抓到的数据包内容
-G, –gtk 使用GTK+ GUI,开启图形化模式

2.日志选项
-w, –write 将嗅探到的数据写入pcap文件
-L, –log 此处记录所有流量

3.通用选项
-i, –iface 使用该网络接口
-I, –liface 显示所有的网络接口
-P, –plugin 开始该插件
-F, –filter 加载过滤器 (内容过滤器)

4.嗅探与攻击选项
-M, mitm <方法:ARGS> 执行mitm攻击

DNS劫持

修改靶机的DNS表格,使靶机访问的所有http协议的url,都指向我们设置好的IP地址。

设置kali机

kali开启apache服务:

service apache2 start

浏览器访问http://192.168.83.157/会看到Apache的首页(192.168.83.157为kali的ip)。

Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
编辑ettercap配置文件:

leafpad /etc/ettercap/etter.dns

Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗A:所有域名指向192.168.83.157(kali的IP)
PTR:所有地址都指向域名

攻击靶机

使用ettercap图形化界面:

ettercap -G

选择网络接口:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
选择eth0

列举主机列表:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
开启扫描网络,发现主机:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
添加劫持目标:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗target 1 放网关, target 2 放目标主机(可以是多个)。
target1和target2内容可以互换
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
选择DNS欺骗插件:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗双击选择dns_spoof
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
选择攻击模块:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
开启dns劫持攻击:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

靶机反应

靶机没有网络了:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗这是因为靶机使用的是https的协议,是加密的

但是靶机访问http站点,就会跳转到
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

更换靶机访问页面的内容

如果想换成其他网站内容,需要编辑kali中的html文件:

leafpad /var/www/html/index.html

换成自定义的内容,这里我尝试更改为
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
靶机再次访问http网址,就会变成:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

Ettercap替换网页内容

替换掉靶机访问的http网页的部分内容,可以加入一段js代码,实现我们想要的功能。

编写过滤器

编写过滤器脚本:

if (ip.proto == TCP && tcp.dst == 80){
    if (search(DATA.data, "Accept-Encoding")){
        replace("Accept-Encoding", "Accept-Nothing");
    }
}

if (ip.proto == TCP && tcp.src == 80) {
    if (search(DATA.data, "<head>")) {
        replace("<head>", "<head><script>alert('hahahaha')</script>");
        msg("inject head");
    }
}

此脚本会把网页的title换成一个弹框。我们把脚本命名为head.filter

编译过滤器脚本:

etterfilter head.filter -o head.ef

会输出一个head.ef文件
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

发现靶机

开启图形化界面

ettercap -G

操作和DNS劫持相同:
选择接口eth0
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
发现主机
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
网关添加到target1,目标添加到target2
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

加载过滤器并开始攻击

加载过滤器脚本:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗选择我们编译过的过滤器脚本
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

选择远程攻击模块:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

开始攻击
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

靶机反应

访问http的网页就会弹窗。
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

ARP劫持监控靶机访问内容

通过ARP欺骗,建立 靶机 --> kali攻击机 --> 网关 的连接。得到靶机访问的内容。

发现主机

开启图形化界面

ettercap -G

操作和DNS劫持相同:
选择接口eth0
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
发现主机
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
网关添加到target1,目标添加到target2
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

加载插件并开始攻击

Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
选择remote_browsef

选择远程攻击模块:
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗
开始攻击
Ettercap中间人攻击——DNS劫持、替换网页内容与ARP欺骗

自动加载靶机图片

apt-get install driftnet
driftnet -i eth0

会开启一个黑窗口

靶机反应

当靶机访问http网站的时候,kali也会自动加载这个http网站。
并且,driftnet会加载http的图片。

写在最后

博主目前只会处理靶机http协议的网页内容,对于https协议的网页,博主尝试了sslstrip+ettercap的解决方案。但是劫持了https之后,靶机访问https协议的网页会显示“无法建立安全连接”。感觉是证书的问题呀。大家有解决方案嘛?求助!!!
最后放几篇sslstrip+ettercap处理https协议网页的方案吧。方法都一样,大家可以借鉴。

https://www.cnblogs.com/diligenceday/p/8076478.html#_label3
https://www.cnblogs.com/h4ck0ne/p/5154688.html
https://www.i0day.com/1238.html