ps: 执念于心dalao说 arp欺骗攻击只能局域网
但是我查了下好像可以跨网段ARP攻击 ,就是很麻烦
跨网段ARP攻击-CSDN博客
##1. ARP协议简介
ARP是一种解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址
IP间的通信以来MAC地址,在网络上,通信双方在同一局域网(LAN)内的情况是很少的,通常是进过多台计算机和网络设备中转才能链接对方,在中转时会利用下一站中转设备的MAC地址来搜索下一个中转目标,这是会采用ARP协议
在以太网中,两台主机想要通信,就必须要知道目标主机的MAC地址,ARP(地址解析协议)的基本功能就是在主机发送数据之前将目标IP转换为MAC地址,完成网络地址到物理地址的映射,以保证两台主机之间的正常通信
任何一台主机装了TCP/IP协议都会有ARP缓存表,该表保存了这个网络(局域网)中各主机IP对应的MAC地址,ARP缓存表能够有效的保证数据传输的一对一特性
ARP缓存表中的条目类型有静态也有动态,静态ARP缓存条目是永久性的,动态ARP缓存条目如果主机在一段时间内不与此IP通信,将会删除对应条目,Windows默认的ARP缓存项存活时间为两分钟
MAC地址如同身份证号码,具有全球唯一性
主机 | 主机IP | MAC |
---|---|---|
网关1 | 192.168.0.1 | 01-01-01-01-01-01 |
主机A | 192.168.0.2 | 02-02-02-02-02-02 |
主机B | 192.168.0.3 | 03-03-03-03-03-03 |
网关2 | 192.168.1.1 | 11-11-11-11-11-11 |
主机C | 192.168.1.2 | 12-12-12-12-12-12 |
现在主机A要进行与主机B的通信,主机A使用命令 ping 192.168.0.3
,此时A先会通过子网掩码
进行对比,看看目标主机是否在同一局域网内
A先查询本机的ARP缓存表,看看是否存在B的MAC地址,如果存在,直接发送数据,如果不在,主机A将会以广播方式发送一个ARP请求报文,报文中包含本机的IP地址,MAC地址等信息,局域网内的所有主机都会接收到报文,当主机B接收到报文后,就会将自己的MAC地址发送给主机,并且将主机A的MAC地址加入自己的ARP缓存中,而其他主机接收到报文发现不是在叫自己,就不会有任何应答
在局域网内的通信比较简单,不需要经过网关就可以直接通信,但若不在一个局域网内就比较复杂了
主机A通过网络掩码
进行对比,发现自己和主机C不在同一局域网内,所有需要网关来转发处理。主机A首先将会查询自己的ARP缓存中是否存在自己的网关的MAC地址,如果不存在,使用广播获取,然后直接向网关1发送数据包
,由网关1向网关2发送数据包,网关2收到数据包之后发现是发送给主机C的数据,网关2将会查询到自己的ARP缓存中时候存在主机C的MAC地址,若存在直接发送数据,不存在则广播方式获取主机C的MAC地址后发送数据
ARP协议主要缺陷:
1.由于主机不知道通信对方的MAC地址,所以才需要ARP广播请求获取,当在广播请求时,攻击者就可以伪装ARP应答
,冒充真正要通信的主机,以假乱真
2.ARP协议是无状态的,这就表示主机可以自由
的发送ARP应答包,及时主机未收到查询,并且ARP响应都是合法的,许多主机会接受未请求的ARP应答包
3.一台主机的IP被缓存在另一台主机中,他就会被当做一台可信任的主机。而计算机没有提供检验
IP到MAC地址是否正确的机制。当主机接收到一个ARP应答后,主机不再考虑
IP到MAC地址的真实性和有效性,而是直接将应答包中的MAC地址与对应的IP地址替换掉
原有ARP缓存表的 相关信息
入侵者正处在局域网内,利用ARP设计的一些缺陷可以在网络中发送虚假的ARP请求或响应,这就是ARP欺骗
比如说,前面提到的,如果主机A与主机C之间要进行通信,可能被主机B截取
首先主机B向主机A发送一个ARP响应,192.168.0.1的MAC地址是03-03-03-03-03-03-03(伪装成网关1)
主机A接收到响应后不会去验证数据的真实性,而是直接替换本机ARP缓存表中192.168.0.1的MAC地址
同时,主机B向主机网关1发送一个arp响应,192.168.0.3 的MAC地址是03-03-03-03-03-03 同样网关不会去验证,直接放到自己的ARP缓存中
主机A和主机C通信时,主机A首先先检查自己的ARP缓存表中是否有网关的MAC地址,发现有缓存的MAC地址 03-03-03-03-03-03,直接向MAC地址发送数据
但这个MAC其实是主机B的,主机B接收到数据后再转发到真正的网关1,再由网关1转发给主机C
同理,当C返回给A数据时,网关一被ARP欺骗,数据发给了主机B,主机B再转发给A
数据都进过了主机B,就没有了什么秘密可言,这就是ARP欺骗
ARP欺骗就是最常见的中间人攻击手段,常见的还有会话劫持
、DNS欺骗
等,当然Burp Suite
这样作为一个代理拦截并编辑HTTP请求也算是一个中间人攻击软件
在攻击者入侵目标站点时,由于安全措施很到位,并不能获取权限,恰好服务器也只放了一个网站,无法旁注
,这时攻击者就可能通过C段ARP嗅探攻击,C段攻击也可以看做是另类的”旁注”
所谓的C段攻击,就是指在同一网关下的主机ARP嗅探,在嗅探出敏感数据后,继续实施对目标网站的渗透。比如攻击者的目标网站服务器IP地址为192.168.1.8,无法直接渗透目标服务器时,攻击者就可能去入侵与192.168.1.8同一网关
下的服务器,一般是192.168.1.xxx,也就是C段IP,在得到服务器权限后
,对目标主机实施ARP嗅探攻击,一般嗅探敏感数据为FTP密码,Admin Pass等
kali自带的arpspoof工具可以进行arp欺骗攻击,如果想要让狗室友上不了网而已,仅仅需要arpspoof -i eth0 -t 狗室友的ip 狗室友的网关
,这样操作狗室友会断网,但是如果要进行arp欺骗,那么我们还需要在使用arpspoof之前开启网卡转发模式,在终端输入echo 1 > /proc/sys/net/ipv4/ip_forward
如此操作,狗室友的电脑依然可以上网,不过所有的数据都会进过我们的电脑进行转发
想要查看同一局域网内有几台设备可以使用fping,比如这台主机的IP为192.168.0.102,我们要查看局域网下还有哪些主机就要fping -g 192.168.0.0/24
在图中可以看到,在局域网中,不仅仅存在我的主机 192.168.0.102和网关 192.168.0.1 ,而且还存在另一台主机192.168.0.105 那么我们就可以对这台主机进行arp欺骗攻击
Linux里查询本机ip使用ifconfig
, Win下使用ipconfig
下面实际操作一下:
先查看一下靶机的arp列表
在kali上进行操作
检查Win的ARP列表,我们发现ARP欺骗后,多了一条动态
的地址,这个地址就是我们的Kali的地址,所以ARP欺骗成功,那么靶机的所有数据都会经过我们的攻击者主机
我们对主机ARP欺骗成功后可以做很多事情,比如使用driftnet从别人的数据流量中截取图片
在命令行模式下使用ettercap
ettercap -Tq -i eth0
然后我们对4399进行账号和密码的抓取
但是这只是因为4399是http并非http
那么我们想要抓取HTTPS下的网页敏感数据,我们就要用到新工具sslstrip
SSLstrip 也叫 https 降级攻击,攻击者拦截用户流量后,欺骗用户与攻击者进行 http 通信,攻击者与服务器保持正常通信 (http 或 https),从而获取用户信息。
攻击原理
通过中间人攻击监听 http 流量(自己试验可以通过设置 http 代理)
更改重定向链接中的 location,替换 https 为 http,并记录
更改响应内容中的超链接,替换 https 为 http,并记录
与用户进行 http 通信,与服务器进行 https 通信(记录中本应是 https 的请求),从而明文获取用户信息
占坑