中间人攻击及防御_2 | 学习笔记

本文涉及的产品
云防火墙,500元 1000GB
简介: 快速学习 中间人攻击及防御_2

开发者学堂课程【网络安全攻防 - Web渗透测试中间人攻击及防御_2学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/630/detail/9933


中间人攻击及防御_2


内容介绍

一、背景

二、静态 IP/MAC 绑定


一、背景

A 机器想要去访问 http//www.bigpig.co:8080/网站,它要把数据包交给网关,要跟网关建立链路,建立连接,A 机器只知道网关的 IP,它地址中有设置网关的 IP,所以它需要向网关发出 arp 请求,mac 地址,虽然可能 A 机器有网关的 mac 地址,但是由于中间人持续的发出信息它是网关,它的 mac 地址,从而告诉 A 机器,它就会欺骗,从而一旦中间人选择它俩作为欺骗对象,它俩都会欺骗。

image.png

解决这个问题有两个方向,一个是从客户端出发,另一个是从服务器端出发,根本解决这个问题的方法在于关注不了太多客户端,客户端安一些防火墙防 arp 攻击就可以,或通过一些手动的方式。主要运维的对象是网站,只要保证在用户访问网站的时候,他的密码不被窃取就可以。所以从两个角度,左边的角度是对客户端,对上网的行为的这些行为,这些方式自己有一些基本的保护,首先以 windows,不相信任何人的网关地址,主动告诉的不相信,自己把网关的地址记下来,变成静态的,当打开 windows 的 arp 缓存时看缓存表,大部分都是动态的,动态的就是它有生命周期,它一定时间就会被替换,另外如果对方更新,也会替换,动态就是只要对方变了,就换掉,不管是自己觉察到变的,还是别人主动告诉变的,都换掉,解决方法就是变成静态,-d 是删除,输入 arp -d 10.30.162.1,现在中间人攻击是开着的,上一个命令结果是43-99,但是被中间人骗了,是94-d1,思路就是要让地址变成静态的,固定的这种行为。


二、静态 IP/MAC 绑定

1、背景:

Windows 下静态 IP/MAC 绑定,以防 ARP 攻击。

添加 IP: 192.168.1.200 MAC:00-aa-00-62-C6-09为例。

2、方法一:通过“arp-s“命令来实现

(1) 绑定 IP/MAC

DOS 界面下,输入命令[arp -S 192.168.1.200 00-aa-00-62-c6-09]回车即可。192.168.1.200是 IP,00-aa-00-62-c6-09是 MAC。

PS :该添加为临时添加,系统重启后,即失效。

但是这个名不一定好用,因为 windows 上接口特别多,如果没有把接口使用正确,就绑定到别的地方,不起作用。

image.png

(2)查看是否绑定成功

DOS 界面下,输入命令[arp-a ]参看添加成功后的 ARP 表项。

出现 internet 地址192.168.1.200,物理地址00-aa-00-62-c6-09,类型是静态,就证明绑定成功了。

(3)删除绑定的 IP/MAC

DOS 界面下,输入命令[arp -d 192.168.1.200]删除指定的 ARP 表项。

(4)IP/MAC 绑定不成功故障处理

输入"arp -S "后回车若出现提示"ARP 项添加失败:拒绝访问”。

3、方法二:通过"netsh "命令来实现

建议使用 netsh 命令进行操作,网关的 ip 和 mac 做静态的绑定。

(1)查看网口的 Idx 值

DOS 界面下,输入命令[netsh i i show in] , 查看本地网卡对应的"Idx"值,接下来会使用到。

PS: [netsh i i show in]为[netsh interface ipv4 show interfaces ]的缩写。

C: \users\ Administrator>netsh i i show in

Dx  Met   MTU          状态        名称

1  50 4294967295  connected  Loopback Pseudo Interface 1  

12  50   1500     disconnected  无线网络连接

14  20   1500     connected     本地连接

15   5   1500     disconnected  无线网络连接3

19  20  1500 connected  UMware Network Adapter UMnet1  

20  20  1500 connected  UMware Network Adapter UMnet8

21   20  1500      disconnected  本地连接2

C: \users\ Administrator

是本地连接,打开网络连接,更改设备,详细信息。

image.png

(2)绑定 IP/MAC

DOS 界面下,输入命令[netsh-c "i i" add ne 18 192.168.1.200 00-aa-00-62-C6-09] , 绑定 IP 与 MAC,默认是永久生效,即使重启系统。其中18是 idx 值,store=active 临时生效,重启失效,store 下列其中一个值:active:地址将在下一次启动时出现,persistent:地址持久有效,此为默认值,该值默认为永久有效。

PS:

A、[netsh-c "ii" add ne]为[netsh -C interface ipv4" add neighbors]的缩写。

B、若只需临时绑定ARP表项,跟上参数: store=active ,即: [netsh-c "ii" add ne 18 192.168.1.200 00-aa-00-62-C6-09 store=active] 。C、命令中的[""]在拼音输入模式下输入。

C: \Users \Administrator>netsh -c i i ad ne 14 10.30.162.1 cc-2d-e0-1e-43-99 store =persistent

如果现实对象已存在。先输入 arp -d 10.30.162.1删除。再输入-a 就可以看到静态的。中间人攻击目前是开着的,它的攻击行为都是失效的,不会得到错误网关的地址,重启也是一样生效的。

(3)查看是否绑定成功

DOS 界面下,输入命令[arp-a ]参看添加成功后的ARP表项。

(4)删除绑定的 IP/MAC

DOS 界面下,输入命令[netsh -C "i i" delete neighbors 18]删除绑定的 ARP 表项。如果是临时添加,重启系统就可,如果是永久添加,就需要通过该方法来删除。

PS:"18"是 Idx 值。

C: \Users\Administrator>netsh -c i i ad ne 14 10.30.162.1 cc-2d-eØ-1e-43-99 store=persistent 是永久的,是在本次生效的。active 是下一次生效。

C: \Users\Administrator>arp-a 再次查看是否被骗,对于客户端的保护,只能如此,因为客户端不是重点关注对象,一些arp保护软件或防攻击软件自然能够去防御,即把网关做死。

现在是被攻击的状态:

[ root@gg ~]# ip n

Neigh Netns ntable

[ root@gg ~]# ip neigh

10.30.162.142 dev eth0 lladdr 68:f7:28:52:db:bf STALE

10.30.162.109 dev eth0 lladdr 00:21:cc:68:fb:61 REACHABL E

10.З0.162.155 dеv еth0 llаddr Ѳ0:0с:29:24:94:d1 ЅТАLЕ

10.30.162.1 dev eth0 lladdr 00:0c:29:24;94:d1 REACHABLE

10.30.162.6 dev eth0 lladdr 68:f7:28:55:e5:d7 STALE

[ root@gg ~]#

[root@gg ~]# arp -a

? (10.30.162.142) at 68:f7:28:52:db:bf [ether] on  eth0

? (10.30.162.109) at 00:21:cc:68:fb:61 [ether] on eth0

? (10.30.162.155) at 00:0c:29:24:94:d1 [ether] on eth0

gateway (10.30.162.1) at 00:0c:29:24:94:d1 [ether] on eth0

? (10.30.162.6) at 68:f7:28:55:e5:d7 [ether] on eth0

至少现在是被攻击的状态,arp的命令是通用的,临时的要用 arp-s,在 windows 上使用这个命令还是有一些问题:

[ root@gg ~]# arp -S 10.30.162.1 cc:2d:e0:1e:43:99

[root@gg ~]# arp -a

? (10.30.162.142) at 68:f7:28:52:db:bf [ether] on eth0

? (10.30.162.109) at 00:21:cc:68:fb:61 [ether] on eth0

? (10.30.162.155) at 00:0c:29:24:94:d1 [ether] on eth0

gateway ( 10.30.162.1) at cc:2d:e0:1e:43:99 [ ether] PERM on eth0

? (10.30.162.6) at 68:f7:28:55:e5:d7 [ether] on eth0

使用 ip neigh:

[ root@gg ~]# ip neigh

10.30.162.142 dev eth0 lladdr 68:f7 :28:52:db:bf STALE

10.30.162.109 dev eth0 lladdr 00:21:cc:68:fb:61 REACHABL E

10.З0.162.155 dеv еth0 llаddr 00:0с:29:24:94:d1 ЅТАLЕ

10.30.162.1 dev eth0 lladdr cc:2d:e0: 1e:43:99 PlERMANENT

10. 30162.6 dev eth0 lladdr 68·f7·28·55·e5·d7 STALЕ

43:99 PERMANENT 是永久的。

[root@gg ~]# arp -a

? (10.30.162.142) at 68:f7:28:52:db:bf [ether] on eth0

? (10.30.162.109)

at 00:21:cc:68:fb:61 [ether] on eth0

? (10.30.162.155) at 00:0c:29:24:94:d1 [ether] on eth0

gateway (10.30. 162.1)at cc:2d:e0:1e:43:99 [ether] PERM on eth0

? (10.30.162.6) at 68:f7:28:55:e5:d7 [ether] on eth0

也可以看到 PERM,永久的。

总之这些命令都是临时的,欺骗不了,但虽然是临时的,也可以将【root@gg ~ arp -s 10.30.162.1 cc:2d:e0:le:43:99】这行命令写入 ac.login 里面,保证开机时可以自动启动,这个网关行为不会上当受骗。windows 就是用netsh 命令做绑定,静态化,前提是要看接口,因为有好多借口,而 linux 可以使用 arp -s 这个命令。一旦失去保护的情况:

[root@gg ~]# ip neigh

10.30.162.142 dev eth0 lladdr 68:f7:28:52:db:bf STALE

10.30.162.109 dev eth0 lladdr 00:21:cc:68: fb:61 REACHABLE

10.30.162.155

dev eth0 lladdr 00:0c:29:24:94:d1 STALE

10.30.162.1 dev eth0 lladdr cc:2d:e0: 1e:43:99 PERMANENT

10.30.162.6 dev eth0 lladdr 68:f7 :28:55:e5:d7 STALE

[root@gg ~]# arp -d 10.30.162.1 把 mac 缓存删除

再次输入可以看到已经上当了:

[root@gg ~]# ip neigh

10.30.162.142 dev eth0 lladdr 68:f7:28:52:db:bf STALE

10.30.162.109 dev eth0 lladdr 00:21:cc:68:fb:61 REACHABLE

10.30.162.155 ,dev eth0 lladdr 00:0c:29:24:94:d1 STALE

10.30.162.1 dev eth0 lladdr 00:0c:29:24:94:d1 REACHABLE

10.30.162.6 dev eth0 lladdr 68:f7 :28:55:e5:d7 STALE

因为中间人攻击一直在欺骗别人。无论输入多少次,都是假网关的 mac 地址。除非保护起来,变成静态的。

Windows 状态是保护起来的,arp-a 是静态的,在 windows 上输入用户密码。如果还是被骗,最好重启一下,保证可以真正意义上的生效。特别是 windows,普通用户用不了这个命令,只能安装相应的防火墙,arp 的防火墙,防攻击的防火墙,linux 比较容易,直接 arp-s 静态绑定即可。

相关文章
|
jenkins 持续交付 Docker
docker 升级后或者重装后,启动容器提示:Error response from daemon: Unknown runtime specified docker-runc...
docker 升级后或者重装后,启动容器提示:Error response from daemon: Unknown runtime specified docker-runc...
901 0
docker 升级后或者重装后,启动容器提示:Error response from daemon: Unknown runtime specified docker-runc...
|
编译器 Python
【ArcGIS教程】ArcPython(1)——PyCharm安装与环境配置
【ArcGIS教程】ArcPython(1)——PyCharm安装与环境配置
【ArcGIS教程】ArcPython(1)——PyCharm安装与环境配置
|
物联网 开发者
NB-IoT 的低功耗方案 | 学习笔记
快速学习 NB-IoT 的低功耗方案
NB-IoT 的低功耗方案 | 学习笔记
|
机器学习/深度学习 传感器 算法
【光学】基于Matlab模拟拉盖尔 - 高斯( Laguerre-Gaussian,LG) 光束光场的光强和相位
【光学】基于Matlab模拟拉盖尔 - 高斯( Laguerre-Gaussian,LG) 光束光场的光强和相位
|
传感器 机器人 知识图谱
PS2小车—舵机基本原理
  最近几年国内机器人开始起步发展,很多高校、中小学都开始进行机器人技术教学。小型的机器人、模块化的机器人、组件式的机器人是教学机器人的首选。在这些机器人产品中,舵机是很关键,使用较多的部件。根据控制方式,舵机应该称为微型伺服马达。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。舵机接受一个简单的控制指令就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品使用。
701 0
PS2小车—舵机基本原理
|
缓存 资源调度 前端开发
electron踩坑系列之一
以electron作为基础框架,已经开发两个项目了。第一个项目,我主要负责用react写页面,第二项目既负责electron部分又负责UI部分。
2130 0
electron踩坑系列之一
|
Dart Java Shell
Markdown实用小技巧: 个个用着都很爽
Markdown实用小技巧: 个个用着都很爽
19271 0
Markdown实用小技巧: 个个用着都很爽
|
SQL 安全 测试技术
逻辑漏洞挖掘经验分享(一)
逻辑漏洞挖掘经验分享(一)
510 0
智慧党建平台建设解决方案,党员信息化管理系统开发app
智慧党建平台旨在打造一个集党建宣传、党建工作管理、党员服务、党员学习、互动交流、数据统计分析为一体的智慧化平台。
433 0
|
弹性计算 网络协议 物联网
阿里云域名查询注册实名认证和备案全过程
阿里云域名查询注册很简单;域名注册之后需要实名认证,否则域名无法解析;想要在阿里云备案只购买域名是不行的,需要购买一台支持备案的云服务器…
8585 0
阿里云域名查询注册实名认证和备案全过程