文章目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
- 漏洞扫描期中大作业
- CTF 基础知识
- 一,简介
- 1开启题目
- 1.1通过题目附件进入
- 1.2寻找flag
- 1.3提交flag
- 1.4完成题目
- 二,竞赛模式
- 2开启题目
- 2.1通过题目附件进入链接
- 2.2寻找flag
- 2.3提交flag
- 2.4完成题目
- 三,比赛形式
- 3开启题目
- 3.1通过题目附件进入环境
- 3.2并找到flag
- 3.3提交flag
- 3.4完成题目
- 四,题目类型
- 4开启题目
- 4.1通过题目附件进入环境
- 4.2找到其中flag
- 4.3提交flag
- 4.4完成题目
- Web :信息泄露
- 一, 目录遍历
- 首先开启题目
- 1.1通过下方链接进入环境并开始寻找flag
- 1.2找到flag
- 1.3复制提交flag
- 1.4完成题目
- 二,PHPINFO
- 首先开启题目
- 2.1通过下方链接进入该环境
- 2.2寻找到其中的flag
- 2.3复制提交flag
- 2.4完成题目
- 三,备份文件下载
- **链接**
- https://editor.csdn.net/md/?articleId=124187735**
- 网络存储技术 期中大作业
- HUAWEI
- 一,HCIA 存储技术趋势与智能存储组件
- 1,存储技术趋势
- 2,智能存储组件
- *链接https://editor.csdn.net/md/?articleId=123889931**
- 二,虚拟化与网络存储技术:虚拟化技术、Qemu-KVM
- 1.虚拟化技术
- 链接https://editor.csdn.net/md/?articleId=124163600
- 2.Qemu-KVM
- 2.1Qemu简介
- 2.2KVM
- 2.3KVM的模块
- 2.4KVM的功能
- 2.5KVM工具
- KVM工作流程
- KVM架构
- KVM模块
- Qemu架构
- Qemu模块
- Qemu的三种运行模式
- Qemu的特点
- KVM和Qemu的关系
- 总结
漏洞扫描期中大作业 CTF 基础知识 一,简介 1开启题目 1.1通过题目附件进入 1.2寻找flag 1.3提交flag 1.4完成题目 二,竞赛模式 2开启题目 2.1通过题目附件进入链接 2.2寻找flag 2.3提交flag 2.4完成题目 三,比赛形式 3开启题目 3.1通过题目附件进入环境 3.2并找到flag 3.3提交flag 3.4完成题目 四,题目类型 4开启题目 4.1通过题目附件进入环境 4.2找到其中flag 4.3提交flag 4.4完成题目 Web :信息泄露 一, 目录遍历 首先开启题目 1.1通过下方链接进入环境并开始寻找flag
Qemu是个独立的虚拟化解决方案,从这个角度它并不依赖KVM。而KVM是另一套虚拟化解决方案,不过因为这个方案实际上只实现了内核中对处理器虚拟化特性的支持,换言之,它缺乏设备虚拟化以及相应的用户空间管理虚拟机的工具,所以它借用了QEMU的代码并加以精简,连同KVM一起构成了 另一个独立的虚拟化解决方案:(
(KVM是QEMU的加速器)
KVM+QEMU
KVM 是 linux 内核包含的东西,使用 qemu 作为上层管理(命令行)。qemu 是独立虚拟软件,能独立运行虚拟机(根本不需要 kvm )。 qemu 是该软件的加速软件。 kvm 并不需要 qemu 进行虚拟处理,只是需要它的上层管理界面进行虚拟机控制。虚拟机依旧是由 kvm 驱动。
qume当运行与主机架构相同的目标架构时可以使用KVM,例如一个x86兼容处理器上运行qemu-system-x86。
KVMkernel-based Virtual Machine)是基于kernel的虚拟机,从Linux 2.6.20开始,KVM就被集成进内核,成为内核的可加载的模块
2.3KVM的模块kvm-intel.ko #for Intel CPU
kvm-amd.ko #for AMD CPU
kvm.ko #主要的模块
当三个模块都加载后,会出现/dev/kvm字符设备,负责qemu和kvm的通讯
-
在kvm架构中,每个虚拟的CPU显示为一个常规的进程,有Linux调度程序进行调度,享受Linux内核所有的功能
-
KVM本身不提供模拟,运行在内核,提供CPU和内存的虚拟化,以及客户机的I/O拦截,客户机的I/O被KVM拦截后交给QEMU处理,为KVM修改过的QEMU运行在用户空间,提供硬件的I/O虚拟化,通过IOCTL /dev/kvm字符设备和KVM进行交互。
当KVM模块被加载的时候:
1)首先初始化内部的数据结构;
2)做好准备后,KVM 模块检测当前的 CPU,然后打开 CPU 控制及存取 CR4 的虚拟化模式开关,并通过执行 VMXON 指令将宿主操作系统置于虚拟化模式的根模式;
3)最后,KVM 模块创建特殊设备文件 /dev/kvm 并等待来自用户空间的指令
2.4KVM的功能1)支持CPU和Memory超分(overcommit)
2)支持virtio
3)支持热插拔(cpu,块设备,网络设备等)
4)支持SMP(Symmetric Multi-Processing对称多处理器系统)
5)支持实时迁移(Live Migration)
6)支持PCI设备直接分配和单根I/O虚拟化(SR-IOV)
7)支持内核同页合并(KSM)
8)支持非一致性内存访问(NUMA)
1) libvirt: 操作管理kvm虚拟机虚拟化API
2) Virsh: 基于libvirt命令行工具
3) Virt-Manager: 基于libvirt的GUI工具
4) Virt-v2v:虚拟机迁移
5) Virt-*
6) Svirt: 安全工具
KVM工作流程
用户模式的qemu利用libkvm通过ioctl进入内核模式,kvm模块为虚拟机创建虚拟内存,虚拟CPU后执行VMLauch指令进入客户模式。加载Guest OS并执行。如果Guest OS 发生外部中断或者影子页表缺页之类的情况,会暂停Guest OS的执行,退出客户模式,执行异常处理,之后重新进入客户模式,执行客户代码。如果发生I/O事件或者信号队列中有信号到达,就会进入用户模式处理。
如图所示,左侧部分是一个标准的Linux操作系统,可以是RHEL、Fedora、Ubuntu等。KVM内核模块在运行时按需加载进入内核空间运行。KVM本身不执行任何设备模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个虚拟客户机的地址空间,向它提供模拟的I/O设备,并将它的视频显示映射回宿主机的显示屏。
KVM模块是KVM虚拟机的核心部分。其主要功能是初始化CPU硬件,打开虚拟化模式,然后将虚拟客户机运行在虚拟机模式下,并对虚拟客户机的运行提供一定的支持。
KVM模块加载之初,只存在/dev/kvm文件,而针对该文件的最重要的IOCTL调用就是“创建虚拟机”。在这里,“创建虚拟机”可以理解成KVM为了某个特定的虚拟客户机(用户空间程序创建并初始化)创建对应的内核数据结构。
处理器对设备的访问主要是通过IO指令和MMIO,其中IO指令会被处理器直接截获,MMIO会通过配置内存虚拟化来捕捉。但是,外设的模拟一般并不由KVM模块负责。一般来说,只有对性能要求比较高的虚拟设备才会由KVM内核模块来直接负责,比如虚拟终端控制器和虚拟时钟,这样可以大量减少处理器的模式切换的开销
Qemu是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,是一个完整的可以运行的软件,非常灵活可移植,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。
QEMU本身并不是KVM的一部分,其自身就是一个著名的开源虚拟机软件。与KVM不同,QEMU虚拟机是一个纯软件的实现,所以性能地下。但是,其优点是在支持QEMU本身编译运行的平台上就可以实现虚拟机的功能,甚至虚拟机可以与宿主机并不是同一个架构。作为一个存在已久的虚拟机,QEMU的代码中有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化,以及KVM使用到的虚拟设备模拟(比如网卡、显卡、存储控制器和硬盘等)。
从QEMU和KVM模块之间的关系可以看出,这是典型的开源社区在代码共用和开发项目共用上面的合作。诚然,QEMU可以选择其他的虚拟机或技术来加速,比如Xen或者KQEMU;KVM也可以选择其他的用户空间程序作为虚拟机实现,只要它按照KVM提供的API来设计。但是在现实中,QEMU与KVM两者的结合是最成熟的选择,这对一个新开发和后起的项目(KVM)来说,无疑多了一份未来成功的保障。
1)第一种模式是通过kqemu模块实现内核态的加速
2)第二种模式是在用户态直接运行QEMU,由QEMU对目标机的 所有 指令进行翻译后执行,相当于全虚拟化。
3)第三种模式则是KVM官方提供的kvm-qemu加速模式。
1)QEMU的两种操作模式:完整的系统仿真和用户模式仿真
2)QEMU具有以下特点
QEMU可以在没有主机内核驱动程序的情况下运行。
它适用于多种操作系统(GNU / Linux, BSD,Mac OS X,Windows)和体系结构。
它执行FPU的精确软件仿真*
3)QEMU用户模式仿真具有以下功能:
通用Linux系统调用转换器,包括大部分ioctls。
使用本机CPU clone的仿真为线程使用Linux调度程序
通过将主机信号重新映射到目标信号来实现精确信号处理。
(4)QEMU全系统仿真具有以下特点
QEMU使用完整的软件MMU来实现最大的便携性。
QEMU可以选择使用内核加速器,如kvm。加速器本地执行大部分客户代码,同时继续模拟机器的其余部分。
可以仿真各种硬件设备,并且在某些情况下,客户机操作系统可以透明地使用主机设备(例如串行和并行端口,USB,驱动器)。主机设备传递可用于与外部物理外围设备(例如网络摄像头,调制解调器或磁带驱动器)交谈。
对称多处理(SMP)支持。目前,内核加速器需要使用多个主机CPU进行仿真。
Qemu是一个独立的虚拟化解决方案,通过intel-VT 或AMD SVM实现全虚拟化,安装qemu的系统,可以直接模拟出另一个完全不同的系统环境。QEMU本身可以不依赖于KVM,但是如果有KVM的存在并且硬件(处理器)支持比如Intel VT功能,那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。
KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel-VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。准确来说,KVM是Linux kernel的一个模块。
简单介绍了漏洞扫描下的基础知识和信息泄露与网络存储技术



