网络安全笔记 局域网ARP欺骗和攻击

梦想与她 提交于 2020-12-19 16:24:45

使用Kali 进行ARP断网攻击:

1、ARP协议: 

ARP(Address Resolution Protocol,地址解析协议),位于TCP/IP协议栈中的网络层,负责将某个IP地址转化成对应的MAC地址。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等

攻击原理

  ARP地址转换表(ARP缓存)是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。这就是所谓的APR欺骗攻击。

ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患,这里我们是使目标主机通信失败,之后的教程会介绍重定向的方法。

ARP攻击大致流程:

 

 

1:假设主机A访问某网站,那么要告知某网站我的IP和MAC地址,但这是以广播的方式告知的。

2:由于是广播方式告知,猥琐的B主机也知道了A的IP和Mac地址,于是猥琐的B主机把自己伪装成某网站,给A发送回复,

   A误以为B就是某网站,因此更新了自己本机的ARP缓存。

3:两者建立连接,A不断将自己的请求发给B,可怜的某网站被挂在一遍了。如果B转发A的请求给某网站,再转发给A,

  那相当于A的流量都从B经过,这就是步骤4,因此可以会话劫持;如果B给A的是一个假地址,那么可怜的A永远上不了网了。

  如何进行伪造地址的详细资料在参考资料里有详细说明,读者可以自己仔细了解下原理。 


下面讲解如何在Kali下进行ARP断网攻击:

 注意:如果你是在使用虚拟机的kali系统,你需要设置虚拟机是已桥接的方式连入网,否则虚拟机会找不到同在局域网的主机。

1、首先你需要查看自己的ip、网卡以及网关。输入>> ifconfig

 

2、通过命令:arpspoof -i eth0 -t 192.168.106 192.168.1.1   后面先是IP地址后是网关地址。

3、 查看攻击效果。可以看出,在Windows XP上输入arp -a时,两次的MAC地址不同,说明ARP攻击成功。此时Windows XP的主机再访问百度页面时,将不能访问成功。(因为arp缓存表中缓存的是错误的网关MAC地址)

 


 fping命令:

  fping程序类似于ping(ping是通过ICMP(网络控制信息协议InternetControl Message Protocol)协议回复请求以检测主机是否存在)。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。

-a

Lists targets that responded

显示可ping通的目标

-A

Lists targets by address instead of hostname

将目标以ip地址的形式显示

-b <num>

Sends <num> bytes of data per ICMP packet (default 56)

ping 数据包的大小。(默认为56)

-B <f>

Tells fping to wait <f> times longer for a reply after each successive failed request (default 1.5)

设置指数反馈因子到f

-c <num>

Number of Pings to send to each target (default 1)

ping每个目标的次数 (默认为1)

-C <num>

Same as above but prints additional statistics for each host

同-c,返回的结果为冗长格式

-e

Displays elapsed time on return packets

显示返回数据包所费时间

-f <file>

Reads the target list from <file> (use "-" for standard input) (only if no -g specified)

从文件获取目标列表( - 表示从标准输入)(不能与 -g 同时使用)

-g

Tells fping to generate a target list by specifying the start and end address (ex. ./fping -g 192.168.1.0 192.168.1.255) or an IP/subnet mask (ex. ./fping -g 192.168.1.0/24)

通过指定开始和结束地址来生成目标列表(例如:./fping –g 192.168.1.0 192.168.1.255)或者一个IP/掩码形式(例如:./fping –g 192.168.1.0/24-i <num>

Interval (in milliseconds) to wait between Pings (default 25)

设置ip的TTL值 (生存时间)

-l

Sends Pings forever

循环发送ping

-m

Pings multiple interfaces on target host

ping目标主机的多个网口

-n

Displays targets by name (-d is equivalent)

将目标以主机名或域名显示(等价于 -d )

-p <num>

Interval (in milliseconds) between Pings to an individual target (in looping and counting modes, default 1000)

对同一个目标的ping包间隔(毫秒) (在循环和统计模式中,默认为1000)

-q

Doesn't show per-target/per-Ping results

安静模式(不显示每个目标或每个ping的结果)

-Q <num>

Same as -q, but show summary every <num> seconds

同-q, 但是每n秒显示信息概要

-r <num>

When a host doesn't respond, retries the host <num> times (default 3)

当ping失败时,最大重试次数(默认为3次)

-s

Displays summary statistics

打印最后的统计数据

-t <num>

Timeout (in milliseconds) for individual targets (default 500)

单个目标的超时时间(毫秒)(默认500)

-u

Displays targets that are unreachable

显示不可到达的目标

-v

Displays version number
命令参数

 

 常用方法:

fping IP1 IP2 IP3 ...; # ping多个ip

fping -f filename;

fping -g IP1 IP2(IP1地址开始范围,IP2地址结束范围)

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!