(1)数据包嗅探和欺骗-SEED Ubuntu 20.04

2023-05-16

数据包嗅探和欺骗

网络安全课程实验一
在做的时候参考了很多网上主要就是CSDN上的教程。
(感觉最近还是很忙,所以等我有空想起来再来写这个教程)
(下面放一下我的实验报告部分,里面有流程,可以做参考。
注意配合另一个文章一起看,放了命令和代码
实验一的命令代码
https://blog.csdn.net/weixin_52521462/article/details/127480867?spm=1001.2014.3001.5502

实验具体步骤

下载虚拟机seed ubuntu 20.04,并在virtualbox上安装。
首先,配置实验环境。在虚拟机上下载并解压Labsetup,然后安装启动docker。

在这里插入图片描述
然后,在seed ubuntu 20.04上开始做实验。

(1) 尝试使用 scapy 进行IP数据包 Sniffing

1,写一个python程序(test1.py文件)。

在这里插入图片描述

2,先使用如下命令添加执行权限:chmod a+x test1.py(给所有用户给予文件可执行权限。u 表示用户,g 表示用户组,o 表示其它,a 表示所有。)

3,用root权限运行上面的程序,同时ping任意一个IP地址。
结果如图所示,可以看到其成功嗅探到了IP数据包。
在这里插入图片描述
在这里插入图片描述

4,另外,使用普通权限运行该程序。结果如下,可以看到报错了,提示无权限。
这说明嗅探包是一件拥有高权限才能做的事情,没有高权限,系统是不允许嗅探数据包的。
在这里插入图片描述

(2) 编程实现数据包 Sniffing 功能

本任务要求利用 scapy 库来编写 python 程序实现数据包的 Sniffing,捕获特定类型的数据包,如捕获指定 IP 的 TCP 数据包等。
步骤与第一个相同,要捕获特定类型的数据包,只需要修改python程序。如捕获指定 IP 的 TCP 数据包,对test1.py略作修改,改为test2.py。
发送数据包的代码,send2.py。
(1)
在这里插入图片描述

(2)

send2.py在这里插入图片描述

(3)
在这里插入图片描述
在这里插入图片描述

其它同上,修改python程序即可。
捕捉ICMP数据包

pkt = sniff(filter="icmp",prn=print_pkt)

捕获来自一个特定的子网的数据包,这里使用的子网为128.230.0.0/16

pkt = sniff(filter="net 128.230.0.0/16",prn=print_pkt)  

(3) 编程实现数据包 Spoofing 功能

作为数据包 spoofing 工具,scapy 允许任意修改 IP 数据包内的字段值。
本任务要求利用 scapy 来伪造 ICMP 请求数据包发送给另一台主机,并使用 wireshark 工具来观察 ICMP 请求及响应数据包。
1,写一个python程序(test3.py文件)。
在这里插入图片描述

2,先启动wireshark,选择网卡。再运行发包的程序。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4) 实现数据包先 Sniffing 再 Spoofing 功能

在之前的任务的基础上,本任务使用两台虚拟机 A 和 B,并且结合使用数据包 Sniffing以及 Spoofing 功能。任务要求是当 A ping 任意主机时,B 都能接收到 ICMP 请求数据包,并返回相应的 ICMP 响应包给 A。
1,写一个python程序(test4.py文件)。
在这里插入图片描述

2,用root权限运行上面的程序。同时ping任意一个IP地址,如1.2.3.4。
在这里插入图片描述
在这里插入图片描述

(5) 使用 pcap 进行数据包 Sniffing & Spoofing

本任务同样需要完成上述几个功能,不过此处不使用scapy 而是使用 C 语言的 pcap 库来实现 Sniffing & Spoofing。

5.1 Sniffing

1,写一个打印捕获的包的源IP和目的IP地址的程序(test-c1.c文件)。
在这里插入图片描述

2,使用如下命令编译:
gcc -o test-c1 test-c1.c -lpcap
在这里插入图片描述

3,用root权限运行上面的程序,同时ping任意一个IP地址。
结果如图所示,可以看到其成功嗅探到了IP数据包。
在这里插入图片描述
在这里插入图片描述

5.2 Filters

在这里插入图片描述

步骤与5.1相同,同时复用 5.1中test-c1.c 文件的代码。只是对代码中过滤器略作修改。例如:
(1)捕捉两个特定主机之间的ICMP包。使用的过滤器为
icmp and src host 192.168.31.245 and dst host 192.168.31.31
写一个程序(test-c2.c文件)。

char filter_exp[] = "icmp and src host 192.168.31.31 and dst host 192.168.31.245"

在这里插入图片描述
编译,用root权限运行。结果如图所示。
在这里插入图片描述

其它同上,修改程序即可。
如:捕捉目的端口在10到100之间的TCP包。使用的过滤器为 tcp and dst portrange 10-100。
char filter_exp[] = "tcp and dst portrange 10-100"

5.3 Spoofing

伪造包。当一个普通用户发送一个数据包时,操作系统通常不允许用户设置所有的数据包协议头中的字段(例如TCP、UDP和IP头)。OSes将设置大部分字段,而只允许用户设置一些字段,例如目标IP地址、目标端口号等。
但是,如果用户具有root权限,则可以在包头中设置任意字段。这叫做包欺骗,它可以通过原始套接字来完成。原始套接字使程序员对包构造有绝对的控制权,允许程序员构造任意数据包,包括设置报头字段和有效负载。
使用原始套接字为相当直截了当;它包括四个步骤:(1)创建一个原始套接字,(2)设置套接字选项,(3)构造分组 (4)通过原始套接字发送数据包。

1,首先,写以下几个文件:
myheader.h,checksum.c,spoof.c
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2,伪造UDP包,编译并运行,结果如图所示。

udp.c在这里插入图片描述
在这里插入图片描述

3,伪造ICMP Echo请求,编译并运行,结果如图所示。
icmp.c在这里插入图片描述
在这里插入图片描述

5.4 Sniffing and Spoofing

同时嗅探和伪造包,实现一个机器ping任意IP x,另一个机器伪造ICMP回复请求,使得其有回复,而IP x所对应的机器可能根本不存在。
1,写一个代码文件(ss.c)
在这里插入图片描述

2,编译运行。
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(1)数据包嗅探和欺骗-SEED Ubuntu 20.04 的相关文章

随机推荐

  • MyBatisPlus

    1 简介 官网 xff1a https www baomidou com 2 相关依赖以及配置 2 1 pom引入依赖 span class token comment lt MyBatisPlus 启动器 gt span span cla
  • 使用STM32点亮LED

    多学多练 一 题目描述二 设计思路三 寄存器实现01 时钟配置02 模式设置03 代码编写04 创建工程文件 四 HAL库实现01 安装 STM32CubeMX02 安装HAL库03 新建工程04 Keil仿真调试 五 硬件连接六 逻辑仿真
  • C语言数据结构中利用栈和队列实现回文的判断

    数据结构中栈有着极为广大的运用 xff0c 其操作特点是FILO先进后出 队列的特点是FIFO先进先出 判断回文 xff0c 回文序列很好理解 xff0c 正反来看它都一样 那我们可以巧妙的利用栈和队列特点来判断回文 xff0c 存入进抽象
  • csp202112-1 序列查询 满分AC python

    nN 61 int x for x in input split n 61 nN 0 N 61 nN 1 list1 61 0 43 int x for x in input split if int x lt N 43 N num 61
  • isPrime()函数:判断素数,构造素数表

    素数函数isPrime xff08 素数 xff1a 指在大于1的自然数中 xff0c 除了1和它自身外 xff0c 不能被其他自然数整除的数 xff09 方法一 span class token keyword int span span
  • gets()函数

    gets 函数 1 描述 C 库函数 char gets char str 从标准输入 stdin 读取一行 xff0c 并把它存储在 str 所指向的字符串中 当读取到换行符时 xff0c 或者到达文件末尾时 xff0c 它会停止 xff
  • win11系统新版edge不兼容网银如何解决【解决办法】

    由于目前国内的网银都是基于IE浏览器进行开发的 xff0c 由于微软推行Edge xff0c Win11把IE砍掉后 xff0c 会将IE的链接强制跳转到Edge上 xff0c 很多网银无法调用 xff0c 对于需要使用Web网银的用户来说
  • 如何判断输入的字符是小写字母、大写字母还是数字?

    一 比较判断 计算机中字符都有自己的ASCII码 xff0c 并且数字 xff0c 字母都有自己的范围 如下 xff1a 类型ASCII码数字0 948 57大写字母A Z65 90小写字母a z97 122 但是在编码时可能记不住ASCI
  • C语言· 实现各进制间的相互转换

    数制只是人用来计数的不同方法 xff0c 但他们所表示的量不会改变 下面我们试着用C语言来实现数制之间的转换 一 由十进制转换为其他进制 我们常用的更为熟悉的是十进制 xff0c 那我们就用十进制开始 xff08 下面用二进制举例 xff0
  • C语言——如何简单地实现四舍五入

    如何实现数的四舍五入 span class token macro property span class token directive keyword include span span class token string lt st
  • 菜鸡自学 Python 笔记(二)

    菜鸡自学 Python 笔记 xff08 二 xff09 五 xff0c 结构与语句1 选择结构 if 语句2 循环控制语句 xff08 1 xff09 while 语句 xff08 2 xff09 for 语句 xff08 3 xff09
  • 菜鸡自学 Python 笔记(三)

    菜鸡自学 Python 笔记 xff08 三 xff09 九 函数1 内置函数2 自定义函数3 带参数的函数4 函数的返回值 十 处理异常和错误1 异常捕捉2 抛出异常3 自定义异常 十一 类与对象1 创建类和实例对象2 属性的公有 私有3
  • 一篇文章学会 Python 正则表达式!

    菜鸡自学 Python 笔记 xff1a 正则表达式 一 简单理解二 re findall函数三 普通字符与元字符1 普通字符2 元字符 四 修饰符 xff08 可选标志 xff09 五 re sub函数六 re match函数七 re s
  • DOM型XSS

    gt DOM型XSS与之前两种在原理上有本质区别 xff0c 它的攻击代码并不需要服务器解析响应 xff0c 触发XSS靠的是浏览器端的DOM解析 客户端上的JavaScript脚本可以直接访问浏览器的DOM并修改页面的内容 在客户端直接输
  • 三大linux系统对比

    概述 xff1a centos作为服务器部署是第一选择 CentOS去除很多与服务器功能无关的应用 xff0c 系统简单但非常稳定 xff0c 命令行操作可以方便管理系统和应用 xff0c 丰富的帮助文档和社区的支持 ubuntu最佳的应用
  • SQL数据查询之单表查询

    目录 语句格式 选择表中的若干列 查询表中所有列 选择表中的若干元组 查询满足条件的元组 字符匹配 涉及空值的查询 多重条件查询 ORDRD BY子句 聚集函数 GROUP BY子句 语句格式 SELECT ALL DISTINCT lt
  • NVIDIA CUDA安装失败解决方法

    CUDA安装失败原因可能与显卡驱动安装有关 xff0c 之前安装的显卡驱动影响了cuda安装 xff0c 建议就是清除原本的显卡驱动安装 xff0c 自动重启 xff0c 再重新安装cuda 下载显卡驱动安装工具解压 百度网盘链接 xff1
  • Jenkins在Linux环境下的安装与配置,包含遇到的问题以及解决方法

    一 Jenkins简介 Jenkins是一个开源软件项目 xff0c 是基于Java开发的一种持续集成 xff08 CI xff09 工具 xff0c 用于解决持续重复的部署 监控工作 xff1b 它一个开放易用的软件平台 xff0c 大大
  • win10添加ubuntu的网络硬盘,实现远程操作ubuntu硬盘

    1 前言 在工作时候经常需要在本地windows10和另外一台ubuntu上实现数据共享 xff0c 如果使用远程工具会非常麻烦 xff0c 需要收发文件 既然在同一个局域网情况下 xff0c 那么有没有办法实现远程操作硬盘呢 xff0c
  • (1)数据包嗅探和欺骗-SEED Ubuntu 20.04

    数据包嗅探和欺骗 网络安全课程实验一 在做的时候参考了很多网上主要就是CSDN上的教程 xff08 感觉最近还是很忙 xff0c 所以等我有空想起来再来写这个教程 xff09 xff08 下面放一下我的实验报告部分 xff0c 里面有流程