渗透前期基础---虚拟化技术了解与Linux常用指令(简写)
Posted 敲代码的xiaolang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了渗透前期基础---虚拟化技术了解与Linux常用指令(简写)相关的知识,希望对你有一定的参考价值。
这个月还是有些忙,虽然在不断补知识,但是想再肝几个几万字的文章就略显吃力了,所以,笔者就简单整理了一下在我们在安全领域前期要学的基础知识,这篇博文是关于虚拟化技术的了解,也就是主要是我们的虚拟机,Linux的简单了解,还有我们的Linux常用指令(这里笔者转载的是阿里云的一篇文章,总结和演示的还是不错的,笔者只是再简单补充一下个人的一些理解)。
注意:本博文引用了很多文章的内容,博主已经注明出处,因为像这些知识对于我们学习安全而言的话,后期都会深入的,这里就了解就好了,博主的实力也写不出这么官方标准的描述,所以就引用了百科中的内容。
虚拟化
虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
虚拟化发展经历
初始于上世纪五十年代末,发展于六七十年代,经历上世纪八九十年代的沉默,终于在二十一世纪初爆发,尤其是1999年X86平台虚拟化商业系统的实现和2008年云计算的热炒,让作为提供云环境底层支持的虚拟化倍受关注,开始广泛活跃于IT各个领域,让千万家庭和企业受益。
大概有四个阶段:
1.硬件仿真虚拟化
优点:不需修改直接安装
缺点:占用资源,速度慢
典型:windows系统中运行Symbian系统
2.完全虚拟化
优点:不需修改可以直接运行
缺点:必须要支持底层硬件
典型:Vmware Workstation / Server,Virtual PC
3.半虚拟化
优点∶比完全虚拟化更高,速度更快
缺点︰必须修改客户操作系统,不能修改的无法使用
典型:Xen,Vmware ESx Server ,Microsoft Hyper-V R1
4.操作系统虚拟化
优点︰直接和物理设备交换,提高的系统性能
缺点︰要求对操作系统内核进行修改
典型:操作系统级虚拟以WMware ESX/ESXI和微软公司的Hyper-v Server 2008 R2
KVM
Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
参考资料相关链接:https://baike.baidu.com/item/KVM虚拟机
Docker
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一个完整的Docker有以下几个部分组成︰
1、DockerClient客户端
2、Docker Daemon守护进程3、Docker Image镜像
4、DockerContainer容器
以上资料来自:百度百科,关键词:Docker
推荐阅读:https://blog.csdn.net/xzwspy/article/details/81154945
操作系统
操作系统(OS )是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
操作系统的类型非常多样,不同机器安装的操作系统可从简单到复杂,可从移动电话的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程序。
以上来自:百度百科
参考链接:https://baike.baidu.com/item/操作系统/192?fr=aladdin
Linux系统
是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。
Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux操作系统不仅仅是被网络运维人员当作服务器使用,Linux既可以当作服务器,又可以当作网络防火墙是Linux的一大亮点。
Linux与其他操作系统相比﹐具有开放源码、没有版权、技术社区用户多等特点﹐开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈,经过适当的配置就可实现路由器的功能。这些特点使得Linux成为开发路由交换设备的理想开发平台。
参考链接:https://baike.baidu.com/item/linux/27050
到这里,其实最重要的是安装好虚拟机还有安装好两个linux系统,一个是kali linux,还有一个是centos系统或者是Ubuntu系统。
虚拟机安装链接:https://blog.csdn.net/weixin_52605156/article/details/117887784?spm=1001.2014.3001.5501
kali linux的话,大家可以安装那个最大的,有安装问题的话可以在评论区留言,基本上网上都有比较详细的教程,大家还是要多多查资料。
linux常用指令
学习链接参考,阿里云上的这篇文章已经很不错了,建议大家收藏多练 https://developer.aliyun.com/article/681643
笔者在这里再补充一些自己的内容:
1.相对路径和绝对路径
这个其实对于初学者而言是比较容易整蒙得,这里笔者举个栗子:
你比如你的电脑有C盘,那么你的C盘里比如有文件夹xiaolang , xiaolang里有文件a,b和一个文件夹xiaoying,xiaoying的里面有文件c , 那么你如果要表示文件a,那么a可以表示为C/xiaolang/a(绝对路径),那么如果用文件a表示文件c,那么可以表示为xiaoying/c(相对路径)(因为前面共有的部分就不显示了)
2.家目录
我们刚进入系统的时候,会发现[root@localhost ~]# ,其实这个也就可以理解为命令提示符,其中的localhost可以表示当前系统的简写主机名,符号 ~ 代表当前用户所在的目录, # 为超级用户的等级权限,普通用户为 $ (切换方法为su,然后输密码)
那么我们的家目录,也就是我们的主目录,用户登陆后有一个初始的登陆位置,那么这个位置也就是我们的家目录,超级用户的家目录:/root , 那么普通的用户的家目录是 : /hone/用户名
3.几个比较重要的命令:
(1) cd:用来切换工作目录
(2) pwd是用来在目录上显示当前目录的绝对路径。
(3) ls是最常见的目录操作命令,其主要功能是显示当前目录下的内容。
(4) mkdir是用户创建新目录,此命令所有用户都可使用。
(5) rmdir是命令用于删除空目录,此命令所有用户都可使用。
(6) touch命令是用于用户创建新文件,并且此命令可以修改文件的时间参数(当文件存在时)。
(7) rm命令用于用户永久性的删除文件或者目录,在使用rm命令删除文件或目录时,系统不会产生任何提示信息。
(8) mv命令用于文件或目录的移动,在移动中可以对文件或者目录进行重命名。
(9) more命令是可以分页显示文本文件的内容,使用者可以逐页阅读文件中内容。
(10) tar命令是常用的归档(打包)命令,该命令可以将许多文件一起保存到一个单独的归档文件。该命令还可以从归档文件中还原所需文件,称为解打包。[root@localhost ~]# tar[选项]源文件或目录(打包)/压缩包(解打包)
(11)
Tab键:自动补齐(这个一定要记住!!!当我们记不清楚指令的时候,我们敲击tab键,系统会帮我们补齐命令,如果你敲击tab无反应,那么你连敲两下tab键,你就会发现系统会给你列出所有的可能,然后你挑选你想要的)
Ctrl+U:清空至行首
Ctrl+K:清空至行尾
Ctrl+L:清屏
Ctrl+C:中断命令执行
Ctrl+Z:后台挂起
Ctrl+D:退出Shell
关于命令,笔者开始练习的时候,很笨,就是用一个cd命令,再跟一个pwd,再跟一个ls,就这样来回训练,比如建文件夹,拷贝文件夹,去熟悉文件的路径等等,你练的多了也就容易记住了,不太建议死记硬背,因为基本记不住,记住了也可能记混。
文章很短,但是引用的原文链接也希望大家积极阅读,关于此专栏也就是web渗透,笔者打算尽快(尽力吧)在今年10月中旬之前更完渗透前期的基础内容,包括linux指令的学习,用户权限,windows指令学习, html与CSS,javascript基础,JavaScript函数与对象,php基础语法(笔者之前写的PHP专栏打算移动到web渗透下面),表单处理与文件操作, mysql数据库,以及计算机网络基础里的网络层、传输层、应用层等等内容。让大家最大程度的掌握渗透测试所需要的前期知识,为以后学习渗透测试打下基础。
“好好学技术,就算真的有大佬在你身边,也不可能帮你找工作,面包还是要自己挣。”
以上是关于渗透前期基础---虚拟化技术了解与Linux常用指令(简写)的主要内容,如果未能解决你的问题,请参考以下文章