开发者学堂课程【网络安全攻防 - Web渗透测试:中间人攻击及防御_1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/630/detail/9932
中间人攻击及防御_1
内容介绍
一、arp 协议介绍
二、arp 协议的攻击机制
三、实验
一、arp 协议介绍
中间人攻击是生产环境里面比较常见的攻击行为。利用 arp 协议实现中间人攻击,arp 协议是帮助将 IP 地址解析为mac 地址,解析方式是广播的方式。
二、arp 协议的攻击机制
1、比如现在有主机 A 和主机 B,或者说有很多主机,它们上网要经过网关路由器。此时教室里面网关地址是10.30.162.1,主机A是10.30.162.10,主机B是10.30.162.20,假设它们要去访问互联网上其他的服务器。无论是主机A,还是主机B,它们想要跟网关通讯,首先要获得网关的 mac 地址,或者它自己已经保存了 mac 地址,因为它有arp 的缓存。
Root@kali
:~# arp -a
_gateway ( 10.30.162.1) at cc:2d:e0:1e:43:99[ether] on eth0
root@kali
:~# ping 10.30.162.156
root@kali
:~#
tcpdump -i eth0- nn arp
首先 arp 有缓存,这台机器有网关的 mac 地址,那是因为可能访问过网关。如果现在要跟网关通讯,要得到它的 mac 地址,这样才能建立起链路,现在有就不用去 arp 一个了,假设现在访问别的机器,比如访问 ping 10.30.162 156,ping 之前肯定没有它的 mac 地址,这时发一个 arp 协议,可以进行抓包,输入抓包命令,找到 arp 协议,搜索
root@kali:~# tcpdump -i eth0- nn arp and host 10.30.162.156
ping 之前通过 arp 协议发了一个请求,因为当时检查 erp 缓存表当中没有156的缓存,所以通过 arp 协议发了一个广播。
2、现在 arp 协议是正常的。但是如果现在有一个攻击者,正常的情况下是 A 机器问网关,网关就会回应它的mac地址,假设网关的 mac 地址是 aa:bb:cc:12:34:56,但是攻击人也有一个 mac 地址11:22:55:aa:aa:aa,数据包要上网,是不会经过攻击机的,数据包是直接给网关的,是因为它获得了网关的 mac 地址,紧接着它跟网关建立链路,建立连接,数据包跟攻击者的机器没有任何关系。
但是现在它要上网,第一步发 arp 协议给网关询问 mac 地址,(攻击人一旦把这个 A 机器和网关当做攻击机器,就要做 A 机器和网关的中间人,那么攻击机器会对 A 机器不断地给发 arp 协议,虽然这个机器缓存表里面网关 mac 地址是 aa:bb:cc:12:34:56,但是攻击人一直告诉它网关的 mac 地址是11:22:55:aa:aa:aa,那么 A 机器就会把缓存替代,会认为11:22:55:aa:aa:aa是网关,同时攻击人也会不断地给网关发送他是162.10,网关也就会认为攻击器是机器A,不用等 A 机器主动去问网关,攻击人机器就会频繁的发送它的 mac 地址。
如果机器走的是 http 明文协议,数据包过攻击机器,可以很轻易的知道所有的密码,如果是 https 加密协议,虽然数据包还是经过攻击机器,但是并不能被很轻易的查看到。想象在办公室,连接到无线路由器,员工 a 和员工 b 去访问网站,恰好有人在办公室发动中间人攻击,如果访问这个网站采用的是明文的方式,这个时候基本上数据包就会被抓取到,本来 a 机器和中间人机器之间没有半点联系,但是攻击器它把自己变成了中间人。
三、实验
1、实验做的时候需要在互联网上有一个网站,,做实验最好有一个真实的结构,大家都一起去访问互联网。A 机器,B机器,中间人机器访问 http://www.bigpig.co:8080/,用 kali 当中间人,root@kali:~# ettercap -G
2、通过 sniff-unified sniffing,先点击第一按钮,统一的 sniff,选择要攻击或者抓取的网卡,就是选择通过哪个网卡进行攻击,现在只有 eth0,点击 OK。
3、先扫描一下,把主机都扫描出来,再点击主机 hosts 列表,其中里面有一个是网关,一个是其他机器。
4、下面是有两个目标:目标1,目标2。要把攻击的人放在一边,网关的人放一边,可以点击当前目标 targets-current targets,左边是目标1,右边是目标2。
5、 点击中间人攻击 mitm-arp poisoning。arp 毒化。选择 sniff remote connections,点击 ok,这时就会 erp 进行毒化。
6、 现在中间人机器的 mac 是94.d1,如果被骗,就可以看到 arp 缓存里面,就是网关.1是94.d1,此时如果 arp-a 看一下,会发现现在认为的网关其实是假的是94.d1,也就是说现在这些机器只要上网,数据包就会交给网关(中间人)。
7、 接下来进行测试网页的登录,此时无需在意登录成功失败,只看下后台能不能显示出来抓取的内容。
此时发现用户名和密码就可以看到了。虽然数据包不过中间人,但是中间人会让它们强制从这里同过。