首页
社区
课程
招聘
[原创]ARP欺骗攻击与安全防护详解
发表于: 2020-12-19 18:59 13900

[原创]ARP欺骗攻击与安全防护详解

2020-12-19 18:59
13900

ARP欺骗攻击安全防护详解

目录

 

我们用GNS3模拟

 

在这里插入图片描述实验拓扑

 

winpcap 底层的网络数据包捕获工具yongbucaos

1
2
3
4
5
6
7
R1#configure terminal                全局配置模式
R1(config)#line console 0              进入到控制台模式
路由器开局优化指令:
R1(config-line)#logg synchronous     日志消息同步
R1(config-line)#exec-timeout 0 0     使控制台永不超时
R1(config)#no ip domain-lookup         禁用域名解析
0x603cc038

交换机的基本配置

关闭路由功能,使其变成二层交换机

1
no ip routing

配置管理地址

1
2
3
4
Core-SN(config)#interface vlan 1
Core-SN(config-if)#ip address 192.168.100.100 255.255.255.0
Core-SN(config-if)#no shutdown
Core-SN#show ip interface                  #查看地址的详细信息

把kali接入到现有的网络结构中

安装arpspoof

1
2
3
4
5
6
7
8
9
10
11
apt-cache                 #可以查询和显示已安装和可安装软件包的可用信息
    search -根据整则表带式搜索软件包列表
    apt-file 可以根据命令搜索软件包
 
apt-get intall apt-file     #安装apt-file 工具
apt-file update          #更新缓存
 
#列  apt-cache search arpspoof #查找是由那种软件包提供
 
apt-get install dsniff      #安装!
root@rocky:~# which arpspoof   #查找软件包存放路径

把kali接入到gns3环境中

1
2
3
4
5
6
7
更改网卡为vm2
临时配置IP
ifconfig eth0 192.168.100.6 netmask 255.255.255.0
配置临时网关
验证
ping 路由
ping 交换

把centos靶机接入网络(外网)

 

进入root用户

 

配置IP地址 192.168.194.10/24

1
ifconfig ens33 192.168.194.10 netmask 255.255.255.0

在路由器上配置NAT(三步曲)

先为kali配置临时网关

1
route add default gw 192.168.100.254   #为kali指定临时网关

配置NAT

1
2
3
4
5
6
7
8
9
10
11
12
1.配置感兴趣的流(即允许上网的流量)
R1(config)#access-list 1 permit 192.168.100.0 0.0.0.255
2、定义接口的NAT方向
R1(config)#interface FastEthernet1/0
R1(config-if)#description con ISP              #给f1/0添加描述ISP //可选可不选
R1(config-if)#ip nat outside
interface FastEthernet0/0
R1(config-if)#description conn LAN             #连接局域网
R1(config-if)#ip address 192.168.100.254 255.255.255.0
R1(config-if)#ip nat inside
3.定义PAT转换(NAT转换方式的一种,是最常用的共享单个IP地址上外网的方式,基于端口的复用)
R1(config)#ip nat inside source list 1 interface fa1/0 overload

4.验证:

1
2
3
show ip nat translations
GW#debug ip nat
GW#un all

ping 通 123.1.1.2

 

配置一个外网的服务器

 

1.搭建一个ftp服务

1
namp -p 21 123.1.1.2              #查看当前网站

打开抓包工具

在交换网络中实施sniffer (网络嗅探--抓包)

(1)xp---->访问外网的FTP服务

 

(2)嗅探者--kali(工具,wireshark)

 

结果:没有抓到

 

原因:

 

(1)HUB和交换机的区别,hub会将数据向所有的端口转发,而交换机则根据MAC地址表有选择地固定端口转发数据,所以,没有做相应的配置,连接交换机端口的sniffer并不能抓到网络上的数据包。

 

(2)HUB--工作在物理层,交换机--工作在数据链路层

 

(3)HUB--所有端口都在一个冲突域,共享带宽

 

交换机---每个端口都是一个冲突域,独占带宽

1
show mac-address 查看MAC地址表

通过 实施ARP spoof(ARP欺骗) 来劫持流量

 

ARP spoof 又称为 ARP poisoning (ARP毒化)

 

ARP欺骗本质上时一种中间人攻击方式(Man-in-the-Middle (MITM))

 

作为攻击者通过向受害者(victim)和网关主动发送ARP的应答报文去毒化对方的ARP缓存表

 

(1)去告诉受害者(victim)我是网关

 

(2)去告诉网关,我是受害者

 

从而达到劫持流量的目的

1
systemctl stop firewalld.servicev #关闭centos7 防火墙

ARP欺骗工具

1.arpspoof

 

2.Ethercap

ARP欺骗的实施

(1)扫描所在网络,确定受害者

 

nmap -sP 192.168.100.0/24

 

​ (2) 打开路由转发功能

1
2
3
4
5
编辑 /etc/sysctl.conf (内核参数配置文件)
 
vi +28 /etc/sysctl.conf
 
​    net.ipv4.ip_forward=1    #把井号键去掉

sysctl -p 使修改生效

中间人攻击

(3)使用arpspoof实施欺骗

 

0x01 去告诉受害者(victim)我是网关(254)

 

0x02 去告诉网关,我是受害者

通过arpspoof实施双向欺骗

1
2
arpspoof -i eth0 -t 192.168.100.99 -r 192.168.100.254
-r 实施双向欺骗

使用wireshark嗅探
在这里插入图片描述

 

结果:kali嗅探到用户名和密码

进一步探究

在win(受害者)查看arp缓存

1
arp -a    #查看arp缓存

在被攻击者端查看缓存可以看到经过kali
在这里插入图片描述

  • [ ] 在我们的网关也去查看缓存
1
R1# show ip arp

我们可以根据缓存找出攻击者

如何有效的防范ARP欺骗

加密

FTP--明文

 

FTP over TLS==FTPS

 

我们来开启Telnet服务,由于ftp配置麻烦,我们的思路使用telnet代替ftp模拟

 

思科设备上配置SSH

 

在路由器上配置远程登录,可以支持对设备的远程管理

step01 配置vty线路,并设置认证为用户认证

1
2
R1(config)#line vty 0 4      # //进入vty
R1(config-line)#login local  # //认证为用户认证

添加一个本地用户

1
2
R1(config)#username xzz privilege 15 password cisco
          用户名为xzz     权限为15级      密码为cisco

实施欺骗(抓取telnet)

在windows端telnet登录 路由器

1
C:\Users\Administrator> telnet 192.168.100.254

在这里插入图片描述
kali端实施arp欺骗,使用wirshark抓取流量。

1
2
arpspoof -i eth0 -t 192.168.100.99 -r 192.168.100.254 
#给大家特意 回顾欺骗命令

在这里插入图片描述选择TCP流
在这里插入图片描述

可以看到我们抓取到了telnet的用户名与密码

  • [ ] 在思科设备上配置SSH替代之前不安全的远程登录协议

    1
    原理:首先为设备使用公钥算法生成一对密钥

可能有人问怎么有用户名为什么有两个

 

很简单因为telnet协议是有回显字符的

step1:为设备配置主机名和域名后缀

1
R1(config)#ip domain-name pg.cn

step2:创建密钥对

1
R1(config)#crypto key generate rsa   #//生成rsa公钥算法

在这里插入图片描述

配置VTY允许SSH协议

1
2
R1(config)#line vty 0 4
R1(config-line)#transport input ssh    #//只允许SSH协议登录

在这里插入图片描述
现在只能使用ssh访问了,我们知道ssh是较为可靠的安全协议,利用 SSH协议可以有效防止远程管理过程中的信息泄露问题。
在这里插入图片描述

静态绑定

IP地址和MAC地址做静态绑定

 

注意:静态绑定要在这两步的前提下

1
2
R1(config)#line vty 0 4      # //进入vty
R1(config-line)#login local  # //认证为用户认证

添加一个本地用户

1
2
R1(config)#username xzz privilege 15 password cisco
          用户名为xzz     权限为15级      密码为cisco
windows 设备上 绑定

我们首先在windows设备上看一下绑定类型

1
arp -a   #查看arp缓存

在这里插入图片描述
绑定的网关是动态的,那么它就可以实施欺骗,让不法分子有机可乘

方法一:win xp绑定

(windows 7 设备后可能失效) "此方法个人认为不靠谱"

1
2
arp -s ip地址 MAC地址
arp -s 192.168.100.1 cc-01-85-45-54

绑定后类型将会变成静态的,静态的ARP表项不会受到冲击的

 

重启会丢失,可以写成批处理文件,放到启动项中

方法二:工具:netsh

首先要先查看网卡的编号

1
netsh i i show in   #查看网卡的编号

在这里插入图片描述

1
arp -a    #查看arp缓存地址

在这里插入图片描述

使用工具添加MAC地址绑定
1
2
netsh -c "i i" add neighbors 11 192.168.100.254 cc-01-29-a0-00-00
#建议使用管理员身份运行cmd
删除绑定
1
netsh -c "i i" delete neighbors 11 192.168.100.254

查看ARP缓存
在这里插入图片描述
可以看到绑定后为静态类型

 

重启后arp表不会丢失,一直存在。

 

(推荐使用方法二)

思科设备上绑定

首先查看arp缓存表

1
R1(config)# do show ip arp

在这里插入图片描述

1
2
arp ip 地址 MAC 地址 arpa 接口
R1(config)#arp 192.168.100.99 000c.291c.f44b arpa   //把受害者的IP地址与MAC地址绑定在思科设备中

在这里插入图片描述

 

可以看到没有了age老化时间

加固后进行arp欺骗攻击

在这里插入图片描述
并未获取到任何流量

 

在这里插入图片描述

ARP防火墙

常见于一些个人防护工具(如360安全卫士)

 

开源的ARP防火墙工具:arptables

 

下载:http://sourceforge.net/projects/ebtables/files/arptables/

 

用法类似于iptables

 

由于实验环境原因就不跟大家介绍了,大家可以自行了解一下

如何在交换网络中抓取报文

技术:端口镜像

相当于被检测端口的流量复制一份到观测口(连接了一台装有抓包工具的工作站)

 

当启用端口镜像后,观测口的流量只能收不能发。

 

在这里插入图片描述

交换机配置:

1
2
3
4
monitor session 1 source int fa0/0 both #指定要监视的端口
monitor session 1 destination int fa0/1 #指定观测口(kali)
 
show monitor session 1                   #查看监视会话

随后你就发现kali上不了网了,原因是kali称为了观测口(观测口不能上网)
在这里插入图片描述
登录一下ftp
在这里插入图片描述
我们抓包看一下

 

在这里插入图片描述抓取到了流量

扩展基础命令学习

ARP协议的工作原理

(2)内网的主机访问外网的流程

 

ping 192.168.194.10

 

0x01查主路由表

1
2
3
ip r s
kali > arp -a    #查看ARP缓存
arp -d 192.168.100.254   #删除ARP缓存中的条目
1
2
3
R1(config)#do show ip int br             #查看接口地址详细信息
do show ip arp
write                                   #保存配置 //特权模式下

思科的三种模式

1
2
3
4
5
> 用户模式
# 特权模式
# show clock            # // 查看系统时间
# clock set 13:22:23 15 Dec 2020   修改时间为2020年12月15号13时22分23秒
config# 全局模式
1
2
show ip translations                
show ip aceess                         #查看ACL列表

arp协议的作用:把IP地址解析成MAC地址

 

ps:在局域网中通信用到的地址其实是MAC地址

1
网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址。

​ ARP把已经得到的地址映射保存在高速缓存中,这样就使得该主机下次再和具有同样目的地址的主机通信时,可以直接从高速缓存中找到所需的硬件地址而不必再用广播方式发送ARP请求分组。

 

​ 当收到ARP应答报文,不会去验证,只会用最新的跳目替换旧的条目,更新ARP缓存

 

二层帧
在这里插入图片描述

思科设备修改系统时间

1
2
# clock set 16:12:05 19 Dec 2020
            时间      日  月  年

Ettercap工具的使用

arp欺骗工具Ettercap

图形化攻击可能麻烦些(并不能像命令行那样方便“我个人认为”),所以在这里给大家讲的精细一些

1
2
3
ettercap -i eth0 -G
-i 指定接口
-G 进入图形界面

在这里插入图片描述
在这里插入图片描述
点击对勾

  • [ ] 而后添加主机,我是直接就扫描出来了,可以在hosts list 中精细操作。
    在这里插入图片描述删除无关IP

在这里插入图片描述将IP添加到目标1与目标二

 

在这里插入图片描述开始欺骗攻击
在这里插入图片描述受害者访问ftp
在这里插入图片描述抓取到了受害者的用户名和口令
在这里插入图片描述

动态ARP检测

交换机中可以部署


[课程]Android-CTF解题方法汇总!

最后于 2020-12-25 14:58 被安全小蜘蛛编辑 ,原因: 为使文章更易懂
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 310
活跃值: (2267)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
nice
2020-12-20 00:46
0
游客
登录 | 注册 方可回帖
返回
//