当前位置:   article > 正文

kali linux渗透测试技术详解综合笔记1_kali渗透测试

kali渗透测试

第一章 kali Linux简介

1.Linux操作系统的基础知识

  1. Linux 的起源和发展:了解 Linux 操作系统的起源、发展和主要的发行版,如Linux 内核的诞生、GNU项目的贡献以及常见的 Linux 发行版如Ubuntu、Debian、CentOS 等。

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

    严格来讲,Linux操作系统指的是“linux内核+各种软件”,Linux这个词只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

  2. Linux 文件系统:熟悉 Linux 文件系统的层次结构和常见的目录结构:

    • 根目录(/)

    • 用户目录(/home)

    • 系统配置目录(/etc)

      • Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

      • 常用的文件系统有以下几种EXT3、swap、vfat、nfs等。

      • 深入理解

      • 文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

      • Windows和Linux对比

        1、Windows和Linux的文件权限

        在Windows系统中,用户分为两类:计算机管理员和受限用户。Windows常常设置为管理员身份,结果大家都可以随意安装和修改系统软件,导致病毒软件防不胜防,导致Windows的安全性相对较差。

        在Linux中,用户分为4类:root(超级用户)、普通用户、同一组用户和其他用户。root用户拥有最高权限,可以对计算机系统进行任何操作。但root用户一般只在对系统进行维护时,如添加新用户、安装应用程序时,才进行登录,一般都是以普通用户的身份进行登录,普通用户不能修改系统文件夹下的文件,因此病毒软件想修改系统程序的可能性就大大降低了,这样就增加了系统的安全性和可靠性。

        2、Windows和Linux的目录结构

        在Windows下,整个硬盘被分成几个区。Linux也有分区的概念,但它是将所有系统安装在一棵树上,即从树根"/"开始。Linux中有一些重要的系统目录,它们都有特定的用途。

        /home存放系统中登录用户的主目录

        /bin存放系统中的可执行文件

        /etc存放系统中大部分配置文件

        /root超级用户的主目录

        /var存放内容经常变动的文件

        /usr存放与系统的用户直接相关的程序和文件

2.1 Linux文件系统根目录下的主要目录介绍

image-20230528221926071

/bin:保存系统命令,如ls、cd、pwd等常用命令

/dev:存放设备文件,特殊文件保存目录(不可以随意修改)

/home:用户目录,存放普通用户相关文件的用户,是我们常用的目录

/lost+found:存放临时文件。此文件夹大多数情况下都是空的,当突然停电或非正常关机后,有些文件就临时存放在这里。

/mnt:缺省挂载点,挂载U盘、移动硬盘目录(常用)

/sbin:用来存放管理员才能使用的命令,即具有一定权限才可以使用的命令

/proc:进程,该目录不能直接操作,其保存的是内存的过载点

/srv: 系统启动服务时可以访问的数据库目录

/tmp:临时目录

/var:系统相关文档内容目录,存放经常被修改的文件,包括各种日志、数据文件。

/boot:存放引导的相关文件,保存系统的启动数据(不可随意操作)

/etc:用来存放配置相关文件

/lib:存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。

/media:存放挂载和自动挂载设备的标准位置。如远程文件系统和可移动介质。

/opt:存放第三方软件。第三方软件在安装时默认会找到这个目录,所以如果你没有安装此类软件时,它是空的,但如果你一旦把它删除,以后再安装此类软件可能会碰到麻烦。

/root:存放root用户(即管理员用户)相关文件的目录

/sys:该目录不能直接操作,存放类似于/proc的文件系统,在Linux2.6内核中最新出现,包含的文件用于获得硬件状态并反映内核看到的系统设备树。它使用了/proc中的很多帮助。

/selinux:selinux是一种基于域-类型模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。

/usr:系统软件资源目录,存放默认安装文件的目录,存放用户的应用程序和文件

/usr/bin:众多的应用程序

/usr/sbin:超级用户的一些管理程序

/usr/include:Linux下开发和编译应用程序所需要的头文件

/usr/lib:常用的动态链接库和软件包的配置文件

/usr/src:源代码,Linux内核的源代码就放在这里

/usr/local/bin:本地增加的命令

/usr/local/lib:本地增加的库
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51

3.用户和权限管理:了解 Linux 中的用户和用户组的概念,以及权限管理访问控制,包括用户的创建、删除、权限的分配和修改等。

在 Linux 操作系统中,任何文件都归属于某一特定的用户,而任何用户都隶属于至少一个用户组。全部的用户信息保存为普通的文本文件。/ etc /passwd 文件是 UNIX 安全的关键文件之一。系统使用 UID 而不是用户名区别用户。任何 UID 值为0的用户都有 root 用户(系统管理员)访问权限,具备对系统的完全控制。/ etc / group 文件包含关于用户组信息。/etc/shadow包含用户密码文件(影子文件)

Linux用户管理

  • 用户是Linux系统工作中重要的一环,用户管理包括用户与组账号的管理。

  • 账号管理是指账号的新增、删除和修改、账号规划以及权限的授予等问题。

  • 在Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限

    Linux用户权限

  • Linux下有两种用户:超级用户(root)、普通用户。

  • Linux系统中的root账号通常用于系统的维护和管理,它对Linux操作系统的所有部分具有不受限制的访问权限。在大多数版本的Linux中,都不推荐直接使用root账号登录系统。

  • Linux普通用户在系统下的操作是受限的。

  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

useradd     #建立用户账户
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号
usermod     #修改用户账户
-c         <备注>  修改用户帐号的备注文字。
-d         <登入目录>  修改用户登入时的目录。
-e         <有效期限>  修改帐号的有效期限。
-f         <缓冲天数>  修改在密码过期后多少天即关闭该帐号。
-g         <群组>  修改用户所属的群组。
-G         <群组>  修改用户所属的扩展、附加群组。
-l         <帐号名称>  修改用户帐号名称。
-L        锁定用户密码,使密码无效。
-s         <shell>  修改用户登入后所使用的shell。
-u         <uid>  修改用户ID。
-U        解除密码锁定。
userdel     #删除用户账户

groupadd    #建立用户组
-g          GID 指定新用户组的组标识号(GID)。
-o          一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
groupdel    #删除用户组
groupmod    #更改组群识别码或名称
-g          GID 为用户组指定新的组标识号。
-o          与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n          新用户组 将用户组的名字改为新名字

> # groupmod –g 10000 -n group3 group2
>此命令将组group2的标识号改为10000,组名修改为group3。

gpasswd     #管理组群
-a	添加用户到组。
-d	从组删除用户。
-A	指定管理员。
-M	指定组成员和 -A 的用途差不多。
-r	删除密码。
-R	限制用户登入组,只有组中的成员才可以用 newgrp 加入该组。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47

4.命令行界面:掌握 Linux 命令行界面的基本操作和常用命令,如文件和目录的操作(ls、cd、mkdir、rm 等)、文件权限管理(chmod、chown 等)、文本编辑器(vi、nano)的使用等。

4.1目录操作命令

  • 切换目录:cd
绝对路径:绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin

相对路径:和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。例如cd .. (.表示当前目录、..表示上一级目录)
  • 1
  • 2
  • 3
命令格式:cd 目录名
cd /    #切换到根目录      
cd ~    #切换到主目录      
cd -    #切换到上次访问的目录 
cd ..   #返回上一级目录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 查看目录:ls 和 pwd
pwd 查看当前工作路径(绝对路径)
  • 1
ls 查看当前目录下的目录和文件
命令格式:ls [-选项] 目录名
选项:     -a:列出当前目录所有文件和目录(包括隐藏文件,以 .开头的为隐藏文件)
          -l:以列表的形式显示文件和目录
示例:
    ls -a   查看该目录下所有文件或目录
    ls -l(简写ll) 以列表形式查看文件或目录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 目录操作【增、删、改、查】
    • 创建目录【增】 mkdir
命令格式:mkdir [-选项] 目录名
选项: -p:递归创建目录。
示例:
    mkdir  data/    在当前目录下创建一个名为aaa的目录
    mkdir  -p  hadoop/data/   在当前目录下创建hadoop一并创建子目录data
    mkdir  /tmp/bigdata  在指定目录tmp下创建一个名为bigdata的目录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 删除目录或文件【删】rm和rmdir
命令格式:rmdir 目录名 (只能删除空目录)
示例:
    rmdir bigdata   #删除bigdata这个目录(bigdata为空的目录)
  • 1
  • 2
  • 3
命令格式:rm [-rf] 目录名或文件名
选项:     -f:不提示,强制删除文件或目录;
                -i:删除已有文件或目录之前先询问用户;
                -r,-R:递归删除,将指定目录下的所有文件与子目录一并删除;
                -v:显示指令的详细执行过程。
示例:
     rm -rf data/    #删除当前目录下data这个目录
     rm -rf *   #删除当前目录下所有文件和目录,慎用~
     rm -rf /*  #【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除
 注意:rm默认删除文件,使用-r选项可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 目录修改【改】mv 和 cp

    • 目录重命名

      命令格式:mv 旧目录名 新目录名
      示例:
          mv  hadoop/  hadoop01/      #将hadoop名改为hadoop01
      注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行重命名的操作
      
      • 1
      • 2
      • 3
      • 4
    • 剪切(移动)目录

      命令:mv 目录名称 目录的新位置
      示例:
          mv  data  Data/     # 将data这个目录移动到Data这个目录下
      注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
      
      • 1
      • 2
      • 3
      • 4
    • 拷贝(复制)目录或文件

      命令格式:cp [-选项] 目录名称 目录拷贝的目标位置
      选项: -r:表示递归复制
      示例:
      	cp  -r  apps/  Data/ 	#将apps目录复制到Data目录下
      注意:cp命令在复制目录是一定加上选项参数“-r”,cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不用写-r递归。
      
      • 1
      • 2
      • 3
      • 4
      • 5
  • 搜索目录【查】find

    命令格式:find 目录 参数 文件名称或者目录名
    
    示例:
    	find  /tmp  -name  'a*'  查找/tmp目录下的所有以a开头的目录或文件。
    
    • 1
    • 2
    • 3
    • 4
  • 文件操作命令【增,删,改,查】

    • 文件操作新建文件【增】touch

      命令格式:touch 文件名
      示例:
      	 touch a.txt	            #在当前目录创建一个名为aa.txt的文件
           touch b.txt c.txt d.txt		#在当前目录下创建多个文件b.txt、c.txt、d.txt
      注意:使用vi 命令也可以创建新文件
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 删除文件 【删】 rm

      命令格式:rm -rf 文件名
      示例:
      	rm -rf  /tmp/a.txt       删除/tmp目录下的a.txt文件
      
      • 1
      • 2
      • 3
    • 修改文件内容【改】 vi或vim

      命令格式:vi 文件名
      示例:
      	vi a.txt 进入a.txt进行编辑
      
      • 1
      • 2
      • 3
    • 文件移动或重命名:mv

      命令格式:mv 文件名 新文件名
      示例:
      	mv  hello.txt  hi.txt	#将当前目录下的hello.txt重命名为hi.txt
      	mv  /tmp/a.txt  /tmp/b.txt	#将/tmp目录下的a.txt重命名为b.txt
      
      • 1
      • 2
      • 3
      • 4
    • 文件的复制:cp

      命令格式:cp 原文件名 指定目录
      
      示例: 
      	cp a.txt  hadoop/  	#将当前目录下的a.txt复制到hadoop目录下
      	cp a.txt  hadoop/b.txt	#将当前目录下的a.txt复制到hadoop目录下重命名为b.txt
      注意:可以复制的时候重命名
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 查看文件内容【查】

      文件的查看命令:cat、more、less、head、tail
      
      • 1
      cat:查看文件内容,看最后一屏
      命令格式:cat [选项] 文件名
      选项: -n :显示行号
      示例:
      	cat /etc/sudo.conf  #使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
      
      • 1
      • 2
      • 3
      • 4
      • 5
      more:百分比显示
      示例:
      	more /etc/sudo.conf  #使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
      
      • 1
      • 2
      • 3
      less:翻页查看
      示例:
      	less /etc/sudo.conf   #使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上和向下翻页,q结束查看
      
      • 1
      • 2
      • 3
      head:默认查看文件前十行内容
      示例:
      	head -5 /etc/sudo.conf    #使用head -5 查看/etc/sudo.conf文件的前5行内容
      
      • 1
      • 2
      • 3
      tail:默认查看文件后十行内容
      示例:
      	tail -5 /etc/sudo.conf 		#使用tail -5 查看/etc/sudo.conf文件的后5行内容 
      
      • 1
      • 2
      • 3
    • 创建链接文件:ln

      命令格式:ln [-选项] 源文件 目标文件
      选项: -s :创建软连接(相当于快捷键)
      示例:
      	ln data.txt d   #创建data.txt文件的硬链接d
      示例:
      	ln -s data.txt da   #创建data.txt的软连接文件da
      注意:加-s创建软链接,不加-s则创建硬链接,软链接前面是 l 开头的(link),而硬链接是 - 开头,表示文件;软链接类似与 windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件;硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7

      4.2 文件权限管理

    • 文件的权限包括读、写、执行

每个文件的权限针对三类对象进行定义:

文件和文件目录的所有者:u—User

文件和文件目录的所有者所在的组的用户:g—Group

其它用户(除所有者和所有组的用户):o—Others

所有用户(用 a 表示)

每个文件针对每类访问者定义了三种主要权限:

  • 读(由 r 表示)

  • 写(或修改,用 w 表示)

  • 执行(由 x 表示)

  • rwx r-- r–

  • 421 400 400

  • 7 4 4

  • 文件类型

    d:文件夹
    -:普通文件
    l:软链接(类似Windows的快捷方式)
    b:块设备文件(例如硬盘、光驱等)
    p:管道文件
    c:字符设备文件(例如屏幕等串口设备)
    s:套接口文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 基本权限

    读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
    写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
    执行(x/1): execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
    “—”表示不具有该项权限
    
    • 1
    • 2
    • 3
    • 4
  • 文件权限值的表示方法

    • 字符表示方法

      Linux表示说明
      r- -只读
      -w-仅可写
      - -x仅可执行
      rw-可读可写
      r-x可写可执行
      rwx可读可写可执行
      - - -无权限
    • 8进制数值表示方法

      权限符号八进制二进制
      r- -4100
      -w-2010
      - -x1001
      rw-6110
      r-x5101
      -wx3011
      rwx7111
      - - -0000
      • 文件访问权限的相关设置方法与命令

      • 修改文件权限:chmod

        chmod 修改文件权限的方法有两种: 字母法与数字法。

        • 字母法: chmod u/g/o/a +/-/=rwx 文件名

          [ u/g/o/a ]含义
          uuser 表示该⽂件的所有者
          ggroup 表示与该⽂件的所有者属于同⼀组( group )者, 即⽤户组
          oother 表示其他以外的⼈
          aall 表示这三者皆是
          [ ±= ]含义
          +增加权限
          -撤销权限
          =设定权限
          rwx含义
          rread 表示可读取, 对于⼀个目录, 如果没有r权限, 那么就意味着不能通过ls查看这个⽬录的内容。
          wwrite 表示可写入, 对于⼀个目录, 如果没有w权限, 那么就意味着不能在目录下创建新的文件。
          xexcute 表示可执行, 对于⼀个目录, 如果没有x权限, 那么就意味着不能通过cd进⼊这个目录。

          执行该命令时,我们可以仅对用户或用户组等进行权限操作,也可以同时对用户、用户组等进行权限操作

          • 数字法:rwx也可以用8进制数值表示法
            如执⾏: chmod u=rwx,g=rx,o=r filename 就等同于: chmod u=7,g=5,o=4 filename
            chmod 754 filename

          • 修改文件的拥有者:chown

          • 修改文件的所属组:chgrp

          • 查看或修改文件掩码: umask

            Linux下对于新建的文件和目录的默认权限如下

            • 新建文件默认权限=0666

            • 新建目录默认权限=0777

              但实际上我们所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响

              这里假设默认权限是default,则实际创建的出来的文件权限是:

              default & ~umask
              
              • 1

nano是一个字符终端的文本编辑器,可以打开指定文件进行编辑

语法:nano [选项] [[+行,列] 文件名]
-h, -? --help 显示此信息
-A --smarthome 启用智能 HOME 键
-B --backup 储存既有文件的备份
-U --quickblank 状态行快速闪动
-V --version 显示版本资讯并离开
-W --wordbounds 更正确地侦测单字边界
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

**vi编辑器是Linux系统下标准的编辑器。**那么简单的理解,就像是Windows下的记事本。

补充:vim是vi的升级版,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

  • 一、vi 命令的使用
命令格式: vi 文件名
示例: vi a.txt
注意:直接输入vi,可以查看vi的版本等信息,还可以直接编辑,但是退出时需要加上文件名,例如 :wq a.txt,将输入的内容保存到a.txt文件中。
  • 1
  • 2
  • 3
  • 二、vi编辑器的三种模式

vi 编辑器有三种模式:命令模式、插入(编辑)模式、底行模式

image-20230605230047390

1、命令模式

直接用命令(vi 文件名)打开一个文件的话,默认是在命令模式下。

例如:(base) [root@defense ~]# vi test.txt
  • 1

image-20230605230416127

此时处于命令模式下。

2、插入(编辑)模式

在命令模式下输入a、A、i、I、o、O中任何一个字符即可进入插入模式,在此模式下才可以对文件进行编辑,输入内容。在此模式下按 ESC键 退出到命令模式
  • 1

image-20230605230755093

a、A、i、I、o、O字符作用如下:
a:在当前光标下一位开始编辑          
A:在当前光标所在行行尾开始编辑
i:在当前光标开始编辑               
I:在当前光标所在行行首开始编辑
o:在当前光标的下一行开始编辑        
O:在当前光标的上一行开始编辑
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、底行模式

在命令模式下,通过输入 **:**(英文冒号)即可切换到底行模式,底行模式下可以做一些保存,字符替换等操作,底行模式下命令以回车结束,退出或者返回命令模式,或者**双击Esc**返回命令模式。
  • 1

image-20230605230949269

常用的底行模式下的命令如下::
set nu      显示行号                       
:set nonu    取消显示行号
:q    只退出,不保存                 
:wq   保存退出
:q!   强制退出                       
:wq!  强制保存退出
:%s/old/new 将old替换成new          
:/string  查找字符串
:n   定位到n行(n指数字)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 三、快捷键的使用

命令模式下的快捷键

dd      删除(剪切)光标所在行整行       
ndd     删除光标所在行起向下n行(5dd,删除5行)
yy      复制光标所在行 
nyy     复制光标所在行向下n行
p       粘贴 复制或剪切的内容(粘贴到下一行)
x       向后删除当前光标所在字符            
X       向前删除当前光标所在字符
gg      把光标跳转到本文件的第一行       
G       把光标跳转到本文件的最后一行
Shift+^ (shift+6)       把光标跳转到所在行的行首        
shift+$ (shift+4)       把光标跳转到所在行的行尾    
u       撤销,返回上一步                    
r       替换当前光标所在位置(一个字母)    
R       向后连续替换
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 四、补充终端快捷键的使用

shell终端快捷键的使用:

Ctrl + a :移到行首
Ctrl + e :移到行尾
Ctrl+L:一键清屏(向上隐藏)
Clear:清屏(上面无内容)
Ctrl+u:删除光标所在行
Ctrl+d:向后删除光标所在位置字符
Ctrl+c:终止当前任务(执行的命令)
Ctrl+z:将任务挂起,放入后台
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
dpkg用于:管理系统里的deb包,可以对其安装、卸载、deb打包、deb解压等操作,与之相关apt-get工具可以在线下载 deb包 安装
-i:安装软件包; 
-r:删除软件包; 
-P:删除软件包的同时删除其配置文件; 
-L:显示于软件包关联的文件; 
-l:显示已安装软件包列表; 
--unpack:解开软件包; 
-c:显示软件包内文件列表; 
--confiugre:配置软件包。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

5.包管理器:熟悉 Linux 发行版的包管理系统,如apt、yum、dnf 等,以及常用的包管理命令,如软件的安装、更新、卸载等。

5.1 pm包 - (Fedora, Redhat及类似系统)

rpm -ivh package.rpm 安装一个rpm包
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包
rpm -qi package_name 获取一个已安装包的特殊信息
rpm -qg “System Environment/Daemons” 显示一个组件的rpm包
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
rpm -q package_name --whatprovides 显示一个rpm包所占的体积
rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
rpm -q package_name --changelog 显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm --checksig package.rpm 确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va 检查系统中所有已安装的rpm包- 小心使用
rpm -Vp package.rpm 确认一个rpm包还未安装
rpm2cpio package.rpm | cpio --extract --make-directories bin 从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

5.2 yum 软件包升级器 - (Fedora, RedHat及类似系统)

yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5.3 deb 包 (Debian, Ubuntu 以及类似系统)

dpkg -i package.deb 安装/更新一个 deb 包
dpkg -r package_name 从系统删除一个 deb 包
dpkg -l 显示系统中所有已经安装的 deb 包
dpkg -l | grep httpd 显示所有名称中包含 “httpd” 字样的deb包
dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
dpkg -S /bin/ping 确认所给的文件由哪个deb包提供
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.4 apt 软件工具 (Debian, Ubuntu 以及类似系统)

apt-get install package_name 安装/更新一个 deb 包
apt-cdrom install package_name 从光盘安装/更新一个 deb 包
apt-get update 升级列表中的软件包
apt-get upgrade 升级所有已安装的软件
apt-get remove package_name 从系统删除一个deb包
apt-get check 确认依赖的软件仓库正确
apt-get clean 从下载的软件包中清理缓存
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.5 DNF(Dandified Yum)是新一代的RPM软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。在centos8中已经默认安装DNF,可以同时使用YUM。

#为了安装 DNF ,您必须先安装并启用 epel-release 依赖。
yum install epel-release
yum install dnf
# 查看版本
dnf –version
#查看系统中可用的 DNF 软件库
dnf repolist
#查看系统中可用和不可用的所有的 DNF 软件库
dnf repolist all
#列出系统中所有 RPM 包
dnf list
#列出所有安装了的 RPM 包
dnf list installed
#搜索软件库中的 RPM 包
dnf search git
#查看软件包详情
dnf info git
#安装软件包
dnf install git
#升级软件包
dnf update git
#检查系统软件包的更新
dnf check-update
#升级所有软件包
dnf update
#删除软件包
dnf remove git
#删除无用孤立的软件包
#用处:当没有软件再依赖它们时,某一些用于解决特定软件依赖的软件包将会变得没有存在的意义,该命令就是用来自动移除这些没用的孤立软件包。
dnf autoremove
#删除缓存的无用软件包
dnf clean all
#获取有关某条命令的使用帮助
dnf help clean
#查看 DNF 命令的执行历史
dnf history
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

6.进程管理和系统监控:了解 Linux 中的进程管理和系统监控工具,如ps、top、htop 等,用于查看和管理运行的进程、系统资源的使用情况等。

7.网络配置和管理:熟悉 Linux 网络配置和管理,包括网络接口的设置、IP 地址的配置、网络服务的启动和停止等。

8.Shell 脚本编程:掌握 Shell 脚本编程的基础知识,能够编写简单的脚本来实现自动化任务和批处理操作。

2. 命令行界面的基础知识

  1. 命令提示符(Prompt):命令行界面通常显示一个特殊字符作为命令提示符,表示用户可以输入命令

了。常见的提示符包括 “$”、“#” 或用户名等。

  1. 命令和参数:在命令行中,可以输入命令和相关参数来执行各种操作。命令是要执行的动作,而参数则

提供了命令所需的额外信息。命令和参数之间通常使用空格分隔。

  1. 命令的语法:每个命令都有自己的语法规则,包括命令本身和可选或必需的参数。要正确使用命令,需

要熟悉该命令的语法,并按照正确的格式输入命令和参数。

  1. 文件和目录路径:在命令行界面中,文件和目录使用路径表示。绝对路径是从根目录()开始的完整

路径,而相对路径是相对于当前工作目录的路径。

  1. 命令补全:命令行界面通常提供命令补全功能,可以通过按下 Tab 键来自动补全命令或文件名。这可

以帮助减少输入错误和提高效率。

  1. 历史记录:命令行界面会保存执行过的命令的历史记录,我们可以使用向上和向下箭头键浏览历史记

录,并重新执行之前执行过的命令。

  1. 管道和重定向:使用管道符号(|)可以将一个命令的输出作为另一个命令的输入,实现命令之间的数

据传输。重定向符号(>、>>、<)允许将命令的输出重定向到文件或从文件中获取输入。

  1. 帮助文档:大多数命令都提供了帮助文档,可以使用命令后面加上 --help 或者 -h 参数来查看命令的帮

助信息,了解命令的使用方式和可用选项。

3. Kali Linux 的介绍

  • 什么是 Kali Linux

Kali Linux 是一个基于 Debian Linux 操作系统的开源渗透测试和安全评估工具集。它是由 Offensive

Security 团队维护和开发的,其中包含了一系列的渗透测试工具和安全评估工具。Kali Linux 旨在提供一个

完整的渗透测试平台,方便安全专业人员、渗透测试人员、黑客和安全研究人员等使用。

Kali Linux 拥有一个庞大的社区,其中有很多开发者和用户为 Kali Linux 的发展做出了重要的贡献。Kali

Linux 的代码是开源的,用户可以通过 GitHub [ https://github.com/offensive-security/kali-linux-2021.2]

获得完整的源代码和文档。

  • 什么是Offsec

Offensive Security(Offsec)是一个安全培训和咨询公司,致力于提供高质量的渗透测试和安全培训课程。

Offsec 在安全行业拥有广泛的声誉,是渗透测试和信息安全领域的权威之一。

Kali Linux 是 Offensive Security 团队开发和维护的一个基于 Debian 的 Linux 发行版,它主要用于渗透测试

和安全评估。Kali Linux 包含了大量的渗透测试工具和安全评估工具,使得安全专业人员、渗透测试人员、

黑客和安全研究人员等能够方便地进行渗透测试和安全评估工作。

因此,Offensive Security 公司和 Kali Linux 有着密切的关系。Offensive Security 团队维护和开发 Kali

Linux,并在其培训和咨询课程中广泛使用该平台进行演示和实践。同时,Kali Linux 的使用者也可以通过

Offensive Security 公司的培训和咨询课程来获得更深入的知识和技能。

4. Kali Linux 的下载与安装

kali推荐的下载方式有两种,分别为:

  • ISO镜像【Installer Images】

  • 虚拟机镜像【Vitural Machines】

本次课程使用的是虚拟机镜像,下载完后文件名为【kali-linux-2023.1-vmware-amd64.7z】,大小为:

2.72GB,解压后大小为14.3GB

  • 硬件要求(至少>=)

    • 1 GHz x86 processor

    • 1 GB RAM (system memory)

    • 20 GB of hard-drive space

    • CD-DVD drive / USB boot support

5. Kali Linux 的基础知识

登录

  • 用户名:kali

  • 密码:kal

image-20230523151026830

换源

  1. 编辑/etc/apt/sources.list软件源配置文件,命令vi /etc/apt/sources.list(告诉系统从哪里下载软件包)
#开头表示注释,生效的内容为第二行,含义为:
从http.kali.org下载Kali Linux软件包,其中包括main、contrib、non-free和non-free-firmware 组件
因为国内访问http.kali.org网速较慢,故需要将软件包的下载地址修改至国内网站:
  • 1
  • 2
  • 3

具体操作如下:

1.打开终端并输入以下命令以备份原始源列表:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2.打开源列表文件:
sudo vim /etc/apt/sources.list

3.将以下行完全替换文件内容:
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
4.保存并关闭文件。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

即,将原来的kali官方源注释掉,然后向其中加入源,我这里加的是阿里云源

image-20230523152257789

kali官方源
deb http://http.kali.org/ moto main non-free contrib 
deb-src http://http.kali.org/ moto main non-free contrib
deb http://security.kali.org/ moto/updates main contrib non-free 
deb-src http://security.kali.org/ moto/updates main contrib non-free
  • 1
  • 2
  • 3
  • 4

中科大kali源

deb http://mirrors.ustc.edu.cn/kali kali main non-free contrib 
deb-src http://mirrors.ustc.edu.cn/kali kali main non-free contrib 
deb http://mirrors.ustc.edu.cn/kali-security kali/updates main contrib non-free
  • 1
  • 2
  • 3
新加坡kali源
deb http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib 
deb-src http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib 
deb http://security.kali.org/kali-security kali/updates main contrib non-free 
deb http://mirror.nus.edu.sg/kali/kali-security kali/updates main contrib non-free 
deb-src http://mirror.nus.edu.sg/kali/kali-security kali/updates main contrib non-free
  • 1
  • 2
  • 3
  • 4
  • 5
163 Kali源
deb http://mirrors.163.com/debian wheezy main non-free contrib 
deb-src http://mirrors.163.com/debian wheezy main non-free contrib 
deb http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib 
deb-src http://mirrors.163.com/debian wheezy-proposed-updates main non-free contrib 
deb-src http://mirrors.163.com/debian-security wheezy/updates main non-free contrib 
deb http://mirrors.163.com/debian-security wheezy/updates main non-free contrib 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
阿里云kali源
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib 
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib 
  • 1
  • 2
中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib 
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
  • 1
  • 2
清华大学
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free 
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free 
  • 1
  • 2

注意:其中有些源可能用不了,选择可用的添加即可

使用命令apt-get update更新源

使用命令apt-get upgrade更新软件,输入Y按回车后进行更新,这步可能需要花费较多时间,也可以直接省略掉

然后使用命令apt-get clean清理,再用命令reboot重启虚拟机

image-20230523153915877

查看系统版本(若干命令)

  • 查看内核版本号
uname -r
>> 6.1.0-kali5-amd64
  • 1
  • 2
  • 包含操作系统标识数据的文件
cat /etc/os-release
>>
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION="2023.1"
VERSION_ID="2023.1"
VERSION_CODENAME="kali-rolling"
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 查看 Linux 发行版操作系统的具体版本
lsb_release -a
>>
No LSB modules are available.
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2023.1
Codename:       kali-rolling

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

image-20230523154544425

  • 显示系统的主机名、操作系统版本和架构,以及其他相关信息
hostnamectl
>>
Static hostname: kali
       Icon name: computer-vm
         Chassis: vm 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/643453
推荐阅读
相关标签