之前有写过ARP攻击中,如何获取目标主机的登录账号密码信息,也就是流量监听。
然而ARP攻击可不仅只有这一点。
通过ARP欺骗还可以对目标主机实现断网攻击以及窃取目标主机正在浏览的图片信息 。
PART1 使用场景你发现你家的WIFI总是有人蹭网,但是你又不记得路由器的登录密码了,WIFI密码设置太复杂又怕自己记不住,所以总有人破解蹭你的网络,网费每个月也是超标的状态,明明自己都没怎么用。
此时你想如果有办法断了他们的网就好了。
再或者你的室友,一直通宵打游戏,键盘啪嗒啪嗒响,影响你的睡眠,你提醒了几句都无济于事,此时你想如果可以“优雅”地断了他的网络该多好。
又或者你的室友半夜抱着电脑在看视频或浏览图片偷偷发笑,你也好奇到底他在看什么,但又不想直接询问他。
PART2 什么是ARPARP,即地址解析协议,根据IP地址获取MAC地址的一个TCP/IP协议。
OSI模型把网络工作分为七层,IP地址在第三层(网络层),MAC地址在第二层(数据链路层),彼此之间不直接打交道。
在通过以太网发送IP数据包时,需要先封装第三层、第二层的包头,但由于发送时只知道目标IP地址,不知道MAC地址,又不能跨第二、第三层,所以需要地址解析协议,根据网络层IP数据包包头中的IP地址信息解析出目标MAC地址,以保证通信的正常进行。
通信原理当PC1要和PC2进行通信的时候,地址解析协议可以将PC2的IP地址解析为PC2的MAC地址。
工作流程大致如下:PC1根据自己的路由表内容,确定用于访问PC2的转发IP地址是192.168.1.2。
然后PC1在自己的本地ARP缓存中检查是否有PC2的匹配MAC地址。
如果没有找到,PC1将发送广播包到本地网络上的所有主机,询问192.168.1.2的MAC地址,每台主机都接收到PC1发送的ARP广播包请求并检查自己的MAC地址是否匹配,如果不匹配则丢弃APR请求。
PC2确定与自己的MAC地址匹配,则将PC1的IP地址和MAC地址添加到本地ARP缓存中,PC2将包含其MAC地址的回复消息直接发送给PC1。
当PC1收到从PC2发来的ARP回复消息时,会用PC2的IP和MAC地址映射更新到自己的ARP缓存中,这样一来PC1就可以和PC2进行通信了。
何为ARP欺骗从ARP的通信原理中可以看出,ARP请求为广播形式发送的,网络上的所有主机都可以自主发送应答消息,而且其他主机在收到应答报文时,并不会检测该报文的真实性就将其记录在自己的MAC地址转换表中,如果此时有一台攻击机,在PC1和PC2之间,伪造ARP应答报文,说自己就是PC2,那么PC1就会中招,原本要发给PC2的数据,都发给了攻击机。
进而实现对PC1的ARP欺骗。
ARP欺骗可以导致目标主机与网关通信失败,更会导致通信重定向,所有的数据都通过了攻击者的电脑,从而监听目标主机的所有流量数据,因此存在很大的安全隐患。
PART4 ARP断网攻击和窃取图片未经允许,不得随意攻击他人电脑,此处仅做学习参考实验环境:kali Linux:192.168.19.218目标Windows7:192.168.19.101实现攻击需要保证两者处于同一个网络环境下,并可以实现互相连通。
断网攻击1、使用Nmap扫描同一网段中存活的主机有哪些。
发现目标主机192.168.19.101,nmap还可以查看目标主机的操作系统信息,以此来断定我们的攻击目标,可以是手机,也可以是电脑。
2、执行arpspoof命令,开始进行断网攻击,注意格式,先是目标IP,才是网关IP。
此时我们回到目标主机中打开浏览器访问发现已经无法正常打开网站直到我们停止攻击,否则目标电脑将一直无法正常上网。
在kali 按Ctrl+Z暂停,现在目标主机可以正常上网了。
监听窃取图片如果你以为ARP欺骗能做的仅仅是窃取账号密码以及断网,那你就想得太简单了,接下来我们来监听一下目标主机都在访问哪些内容。
1、开启端口转发开启端口转发的目的是攻击者将截获的数据转发到真正的网关,进而可以让目标主机不断网,隐藏我们的行踪,不让目标主机起疑心。
编辑/etc/sysctl.conf配置文件,将下图中的注释取消,并将值改为1,即可开启端口转发功能。
2、继续展开arpspoof攻击,此时要注意命令中网关和目标IP的位置。
目标主机还可以正常访问网站3、重新开启一个终端,输入下图命令,进行监听,目标主机浏览的图片将会保存到我们指定的位置,只要我们一直监听,就会一直将图片回传,下图表示已经回传目标主机访问的图片信息。
这样一来,我们就知道目标主机都在访问哪些内容,少年,你还敢连着wifi去浏览一些“不可描述”的网站吗?PART5 ARP欺骗攻击防御ARP欺骗攻击是针对ARP转换表中IP地址对应的MAC地址改变来展开攻击的,大多数人并不会去动这一块的配置,而是默认采用动态分配的机制,这就让攻击者有机可乘。
所以可以的话最好配置静态