ICMP Redirect Attack Lab

news2024/10/28 12:57:39

本实验的网络拓扑图如下所示:

Task 1: Launching ICMP Redirect Attack

  1. 在Victim主机上查看路由表,结果如下:

2.在Victim上Ping 192.168.60.60.5,结果如下:

3.在Attkaker主机上创建redirect_attack.py文件,

内容如下:

4.接下来查看traceroute,这里的结果要和攻击后的结果进行对比,所以先记录下来:

在Victim主机执行mtr -n 192.168.60.5 命令,这是攻击之前的结果

5.在Victim主机上先查看ip route cache,确保没有记录,然后ping 192.168.60/24

子网:

6.Attacker主机开始攻击:

7.等待Attacker主机发送成功1秒后,Victim主机已经接收到重定向的数据包后,不要停止ping 192.168.60.5。然后查看ip route,

结果如下:

发现路由表没有变化,接入192.168.60.0/24子网还是通过10.9.0.11,而不是10.9.0.111。

再查看ip route cache:

可以看到,ip route cache 里已经有了这一项。

8.在Victim主机执行mtr -n 192.168.60.5 命令,这是攻击之后的结果:

发现,经过攻击后,tracetoute确实多了一项10.9.0.111,说明攻击成功。

针对实验手册中提出的问题,我们回答如下:

• Question 1: Can you use ICMP redirect attacks to redirect to a remote machine? Namely, the IP address assigned to icmp.gw is a computer not on the local LAN. Please show your experiment result, and explain your observation.

修改文件内容为:

重复上述操作,最后查看结果:

说明不可以是外网。

• Question 2: Can you use ICMP redirect attacks to redirect to a non-existing machine on the same network? Namely, the IP address assigned to icmp.gw is a local computer that is either offlfline or non-existing. Please show your experiment result, and explain your observation.

修改文件内容为:

重复上述操作,查看结果为:

说明不可以是不存在的地址。

• Question 3: If you look at the docker-compose.yml fifile, you will fifind the following entries for the malicious router container. What are the purposes of these entries? Please change their value to 1, and launch the attack again. Please describe and explain your observation.

关闭路由转发的意思

修改系统参数:

重复上述步骤。结果为:

说明不可以将参数改变为1。

综上所述,通过执行以上操作,我们完成了Launching ICMP Redirect Attack任务。

Task 2: Launching the MITM Attack

攻击前的准备:

改写配置文件:

在192.168.60.5主机上使用netcat开启监听服务:

攻击流程

  1. 在Victim主机上查看traceroute,正常如下:

在恶意路由器(10.9.0.111)上编写数据包篡改程序,因为ip route cache会过期,所以需要重复进行上个实验中的攻击步骤。先在Victim(10.9.0.5)机器上ping 192.168.60.5机器。

在Attacker(10.9.0.105)上执行redirect_attack.py:

5.此时Victim机器的ip route cache已经重新拥有10.9.0.111条目

6.开始在恶意路由器上进行攻击,在恶意路由器上执行mitm_sample.py程序,开始等待数据包:

7.在Victim(10.9.0.5)上执行nc 192.168.60.5 9090进行连接并发送一些带有name缩写的字符串。

8.在192.168.60.5机器上看到name被替换了:

同时在恶意路由器上也可以看到响应的数据包:

针对实验手册中提出的问题,我们回答如下:

After you have succeeded in the attack, please answer the following questions:

• Question 4: In your MITM program, you only need to capture the traffifics in one direction. Please indicate which direction, and explain why.

 Victim->192.168.60.5

只需要使victim往外发的消息被我们获取及改写就可以了。

• Question 5: In the MITM program, when you capture the nc traffifics from A (10.9.0.5), you can use A’s IP address or MAC address in the fifilter. One of the choices is not good and is going to create issues, even though both choices may work. Please try both, and use your experiment results to show which choice is the correct one, and please explain your conclusion.

经过尝试,发现IP地址更好一些。

猜测是因为IP地址相比MAC地址更上层一些。

综上所述,通过执行以上操作,我们完成了Launching the MITM Attack任务。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纯GO语言开发RTSP流媒体服务器-RTSP推流直播、本地保存录像、录像回放、http-flv及hls协议分发

温馨提示:我们分享的文章是给需要的人,不需要的人请绕过,文明浏览,误恶语伤人! 前言 在软件开发中遇到使用流媒体音视频的行业比较多,如安防监控系统、无人机巡逻视频上云处理、直播平台、教育与企业培训…

C++红黑树插入操作的模拟实现

1.红黑树概念 1.1什么是红黑树 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩…

Linux 重启命令全解析:深入理解与应用指南

Linux 重启命令全解析:深入理解与应用指南 在 Linux 系统中,掌握正确的重启命令是确保系统稳定运行和进行必要维护的关键技能。本文将深入解析 Linux 中常见的重启命令,包括功能、用法、适用场景及注意事项。 一、reboot 命令 功能简介 re…

Flutter图片控件(七)

1、加载图片 import package:flutter/material.dart;void main() {runApp(const MaterialApp(home: MyHomePage(),)); }class MyHomePage extends StatelessWidget {const MyHomePage({super.key});overrideWidget build(BuildContext context) {return Scaffold(appBar: AppB…

Python:背景知识及环境安装

一、计算机的基础概念 1.1 什么是计算机? 最早我们有计算器,但是他只能完成算数运算的功能 而计算机能完成的工作有: (1)算术运算 (2)逻辑判断 (3)数据存储 &#xff08…

k8s 二进制部署安装(一)

目录 环境准备 初始化操作系统 部署docker 引擎 部署 etcd 集群 准备签发证书环境 部署 Master01 服务器相关组件 apiserver scheduler controller-manager.sh admin etcd 存储了 Kubernetes 集群的所有配置数据和状态信息,包括资源对象、集群配置、元数据…

基于SSM+小程序的旅游社交登录管理系统(旅游4)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 ​ 本旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理&a…

51单片机完全学习——DS18B20温度传感器

一、DS18B20数据手册解读 首先我们知道DS18B20使用的是单总线传输,默认情况下读出来的温度是12位的,我们这里只讨论外部电源供电这种情况。 有这张图片我们知道,12位温度的最小分辨率是10^-4次方,因此就是0.0625.我们只需要将最后…

论文阅读(二十三):Squeeze-and-Excitation Networks

文章目录 1.介绍2.原理3.代码4.SE模块的应用 论文:Squeeze-and-Excitation Networks   论文链接:Squeeze-and-Excitation Networks   代码链接:Github 1.介绍 卷积算子使网络能够在每一层的局部感受野中融合空间(spatial&…

内容安全与系统构建加速,助力解决生成式AI时代的双重挑战

内容安全与系统构建加速,助力解决生成式AI时代的双重挑战 0. 前言1. PRCV 20241.1 大会简介1.2 生成式 Al 时代的内容安全与系统构建加速 2. 生成式 AI2.1 生成模型2.2 生成模型与判别模型的区别2.3 生成模型的发展 3. GAI 内容安全3.1 GAI 时代内容安全挑战3.2 图像…

Linux 进程间通信_匿名管道

1.程间通信目的 : 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如…

Linux CentOS7下创建SFTP服务器

本文详细介绍了在Linux CentOS上部署安全文件传输协议(SFTP)服务器的全过程。SFTP基于SSH(安全壳层协议)提供文件传输服务,继承了SSH的安全特性,如数据加密、完整性验证和服务器认证等,确保数据…

信号与系统学习:周期信号的频谱

一、概念 1. 什么是频谱? 频谱描述了信号在不同频率上的能量分布对于一个周期信号,其频谱通常是离散的,由一系列离散的频率成分组成 2. 周期信号与傅里叶级数 周期信号可以用傅里叶级数展开,表示为无数个正弦和余弦&#xff0…

巡飞单机多旋翼无人机技术详解

巡飞单机多旋翼无人机技术是一种集成了多种先进技术的无人机系统,它具备自主飞行、长续航、高精度控制以及多任务负载能力等特点。以下是对巡飞单机多旋翼无人机技术的详细解析: 一、机架与结构设计 1.材料选择:为了确保无人机能够承载足够…

基于深度学习的图像修复系统设计与实现(PyQt5、CodeFormer ffhq-dataset数据集)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

logback日志导入使用

1导入配置 <!-- 日志 &#xff0c; 会自动传递slf4j门面--> <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version> </dependency>2 引入配置 Logback要求…

Synergy遇见的问题

1.两台设备无法ping通 首先两个设备是在同一个局域网中&#xff0c;但任然是无法ping通 问题所在&#xff1a;防火墙进行了隔离&#xff1b; 解决方法&#xff1a; &#xff08;1&#xff09;关闭防火墙 没有用过&#xff0c;个人感觉不怎么安全就没有使用&#xff1b; &am…

react18中的受控与非受控组件及ref的使用

受控与非受控组件 受控组件,基于修改 state 的值,修改组件内部的状态&#xff0c;来实现页面的更新&#xff0c;推荐使用 非受控组件&#xff0c;基于 ref 获取 dom 的值&#xff0c;来实现页面的更新,不推荐使用,偶尔特殊的场景会使用 给需要获取的元素设置 ref“xxx”,后期基…

一步一步从微信小程序获取asp.net Core API的数据

前面我们说过&#xff0c;如何使用微信小程序获取asp.net的数据&#xff0c;这里我们继续介绍如何获取asp.net core api的数据。两者之间还是有一些差别的。本篇博文旨在详细介绍如何一步一步从微信小程序获取asp.net Core API的数据。 文章目录 一、建立并了解asp.net core we…

Git 创建SSH秘钥

1、命令行输入 ssh-keygen -t rsa -b 4096 2、系统提示你“Enter a file in which to save the key”&#xff0c;直接按回车键 3、再提示你输入密码的时候直接按回车键&#xff0c;创建没有密码的SSH密钥 4、密钥对创建后&#xff0c;可以在自己电脑对应的 ~/.ssh 目录下找到…