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配置文件:

leafpad /etc/ettercap/etter.dns

在这里插入图片描述

A:所有域名指向192.168.83.157(kali的IP)
PTR:所有地址都指向域名

攻击靶机

使用ettercap图形化界面:

ettercap -G

选择网络接口:
在这里插入图片描述
选择eth0

列举主机列表:
在这里插入图片描述
开启扫描网络,发现主机:
在这里插入图片描述
添加劫持目标:
在这里插入图片描述

target 1 放网关, target 2 放目标主机(可以是多个)。
target1和target2内容可以互换
在这里插入图片描述
选择DNS欺骗插件:
在这里插入图片描述

双击选择dns_spoof
在这里插入图片描述
选择攻击模块:
在这里插入图片描述

在这里插入图片描述
开启dns劫持攻击:
在这里插入图片描述

靶机反应

靶机没有网络了:
在这里插入图片描述

这是因为靶机使用的是https的协议,是加密的

但是靶机访问http站点,就会跳转到
在这里插入图片描述

更换靶机访问页面的内容

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

leafpad /var/www/html/index.html

换成自定义的内容,这里我尝试更改为
在这里插入图片描述
靶机再次访问http网址,就会变成:
在这里插入图片描述

Ettercap替换网页内容

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

编写过滤器

编写过滤器脚本:

1
2
3
4
5
6
7
8
9
10
11
12
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 -G

操作和DNS劫持相同:
选择接口eth0
在这里插入图片描述
发现主机
在这里插入图片描述
网关添加到target1,目标添加到target2
在这里插入图片描述

加载过滤器并开始攻击

加载过滤器脚本:
在这里插入图片描述

选择我们编译过的过滤器脚本
在这里插入图片描述

选择远程攻击模块:
在这里插入图片描述
在这里插入图片描述

开始攻击
在这里插入图片描述

靶机反应

访问http的网页就会弹窗。
在这里插入图片描述

ARP劫持监控靶机访问内容

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

发现主机

开启图形化界面

ettercap -G

操作和DNS劫持相同:
选择接口eth0
在这里插入图片描述
发现主机
在这里插入图片描述
网关添加到target1,目标添加到target2
在这里插入图片描述

加载插件并开始攻击

在这里插入图片描述
选择remote_browsef

选择远程攻击模块:
在这里插入图片描述
在这里插入图片描述
开始攻击
在这里插入图片描述

自动加载靶机图片

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