渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_kali linux渗透测试

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

创建与删除

创建

make a directory / directorys

语法

mkdir [-p] dirName dirName ...

参数说明

  • -p 确保目录名称存在,不存在的就建一个。

例如,在家目录下创建一个 lady_killer9 目录

例如,在家目录下创建一个 lady/killer/9 的多级目录

删除空目录

remove an empty directory/ directorys

语法

rmdir [-p] dirName

参数

  • -p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

例如,将刚才新建的空目录删除

非空目录如何删除?

语法

rm [options] name...

参数

  • -i 删除前逐一询问确认。
  • -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  • -r 将目录及以下之档案亦逐一删除。

家目录下新建一个目录lady,里面新建一个文档(touch killer.txt)

文件

创建

语法

touch 路径/文件名 路径/文件名 路径/文件名 …

上面有了,不再展示。展示一下一次创建多个,前面的mkdir也可以一次创建多个目录。

复制

语法

cp [options] source dest

参数说明:

  • -f:覆盖已经存在的目标文件而不给出提示
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

将家目录下的lady.txt文件复制到lady目录下

将家目录下的lady目录复制到killer目录下

kali linux下是默认覆盖,不提示,要提示可使用-i选项。

移动

move file

语法

mv [options] source dest
mv [options] source... directory

参数说明

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  • -n: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

重命名

将某文件移动到同一个目录

将家目录下的文件killer.txt重命名为killer9.txt

将killer.txt移动奥家目录下的lady目录下

查看

全部查看

cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。

使用权限

所有使用者

语法格式

cat [-bn] fileName

参数说明:

-n 或 --number:由 1 开始对所有输出的行数编号。

-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

查看 /etc/profile 文件,显示行号

cat -n /etc/profile

注意,直接显示全部,如果行数过多,不太合适

清空文件

cat dev/null > filepath

例如,清空 lady目录下的lady.txt文件

滚动查看

语法

more [-num] [fileNames..]

参数

  • -num 一次显示的行数

操作:

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏

查看 /etc/file 文件,一页5行

相较于cat,more可以分页,提前退出,适合大文件,缺点是没有行号显示

使用管道符 | ,将两个命令合起来用,管道左边的内容作为右边的输入

cat -n /etc/profile | more -5

上面的命令相当于 more -5 有行号的 /etc/profile

特大文件查看

对于几兆甚至更大的日志文件等使用cat或more就不合适了

语法

less [参数] 文件 

参数说明

  • -m 显示类似more命令的百分比
  • -N 显示每行的行号
  • -s 显示连续空行为一行
  • /字符串:向下搜索"字符串"的功能
  • ?字符串:向上搜索"字符串"的功能
  • q 退出less 命令
  • 空格键 滚动一页
  • 回车键 滚动一行
  • [pagedown]: 向下翻动一页
  • [pageup]: 向上翻动一页

使用前段时间爬取的小说Python-简单小说爬虫(以《天官赐福》为例),3M多的小说,在Windows上鼠标右键打开,还会转2-3秒

我传到了家目录的文档目录下

瞬间打开

重定向和追加

:用前面的内容覆盖掉后面文件的内容

:用前面的内容追加到后面的文件尾部

第一个前面清空文件时提到过

echo

语法

echo 字符串

head

命令格式:

head [参数] [文件]  

参数:

  • -q 隐藏文件名
  • -v 显示文件名
  • -c<数目> 显示的字节数。
  • -n<行数> 显示的行数。

tail

命令格式:

tail [参数] [文件]  

参数:

  • -f 循环读取【实时显示】
  • -q 不显示处理信息
  • -v 显示详细的处理信息
  • -c<数目> 显示的字节数
  • -n<行数> 显示文件的尾部 n 行内容

举例:

将家目录的文件目录列表写到lady.txt文件中

将"study hard during winter vacation" 追加到lady.txt文件后面

注:head、tail无参数默认查看10行

软链接

语法:

 ln [参数][源文件或目录][目标文件或目录]

必要参数

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

类似于Windows下的快捷方式

上图可以看到,我安装了pyhton2和python3,部分旧软件版本没有跟上,会使用python2,并找名为python的软链接,我们创建一个python的软链接,链接到python2.7

ln -s /usr/bin/python2.7 /usr/bin/python

这样对于开头是

#!/usr/bin/env python

的文件,你也可以通过./xxx来运行了。

查找

语法

find [搜索范围] [选项]

选项

  • -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写。
  • -size n : b、c、k、M等单位,+、-代表大于和小于

查找家目录下名为lady.txt的文件

查找家目录下大于3M的文件

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。

locate 的速度比 find 快,它并不是真的查找,而是查数据库,可以手工更新数据库 ,命令为:

updatedb

查找家目录下名为lady.txt的文件

语法

grep [选项][文件或目录...]

**-e <样式>:**通过正则表达式进行匹配

-i : 忽略字符大小写的差别。

-n: 在显示符合样式的那一行之前,标示出该行的列数编号。

查找lady.txt文件中包含lady的行,并显示行号,使用管道符 |

查找lady.txt文件中包含ad的行,并显示行号,使用管道符 |

查找lady.txt文件中40几分创建的文件或目录所在行,并显示行号,不使用管道符

备份与压缩

.gz

gzip [选项] 文件

选项:

  • -f  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。

gunzip [选项] 文件

选项

  • -f 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。

压缩家目录下的lady.txt

注意:源文件不会保留。

解压缩家目录下的lady.txt

注意:源压缩文件不会保留。

.zip

zip [选项] xxx.zip 目录或文件

选项

  • -r 递归处理,将指定目录下的所有文件和子目录一并处理。

压缩家目录下的lady目录为lady.zip

这个原目录或文件还是在的

unzip [选项] 目录或文件

选项

  • -d<目录> 指定文件解压缩后所要存储的目录。

解压缩lady.zip到家目录下的killer目录下

注意,由于前面压缩时目录填写的为~/lady,所以解压后路径为绝对路径,即多了一层目录,若使用lady/则不会有root这一层。

.tar.gz

tar  [选项] 文件或目录

选项

  • -c 建立新的备份文件,产生.tar打包文件。
  • -C <目的目录>,解压到的目录
  • -f<备份文件> 指定压缩后的文件名。
  • -s 还原文件的顺序和备份文件内的存放顺序相同。
  • -v 显示指令执行过程。
  • -x 从备份文件中还原文件。
  • -z 通过gzip指令处理备份文件,打包同时压缩。

压缩家目录下的 9.txt 和lady.txt 为 lady9.tar.gz,显示过程

tar -zcvf lady9.tar.gz 9.txt lady.txt

将家目录下的killer目录压缩为killer.tar.gz

tar -zcvf killer.tar.gz killer/

解压killer.tar.gz到家目录下的lady目录

tar -zxvf killer.tar.gz -C lady/

用户管理

用户组:一个组有一个或多个用户。初始状态下有 root组和root用户。

home:家目录,一个用户登录时会进入对应的家目录。例如,home/lady

用户

添加用户
useradd 选项 用户名

参数说明:

  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

passwd 用户名  来添加密码

例如,添加lady用户,主目录为/home/lady

使用SSH客户端登录后,当前目录就是

删除用户

userdel [-r] 用户名

-r:删除用户家目录及里面包含的所有目录、文件

先退出登录后再进行用户删除

例如,删除lady用户,保留家目录

userdel lady

修改用户

语法

usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]

参数说明

  • -c<备注>  修改用户帐号的备注文字。
  • -d登入目录>  修改用户登入时的目录。
  • -e<有效期限>  修改帐号的有效期限。
  • -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
  • -g<群组>  修改用户所属的群组。
  • -G<群组>  修改用户所属的附加群组。
  • -l<帐号名称>  修改用户帐号名称。
  • -L  锁定用户密码,使密码无效。
  • -s  修改用户登入后所使用的shell。
  • -u  修改用户ID。
  • -U  解除密码锁定。

不进行截图了,一般很少用,都是创建时想好了,参数和useradd也差不多。在用户组一节有展示。

显示用户信息

语法

id [-gGnru][--help][--version]用户名

参数说明

  • -g或–group  显示用户所属群组的ID。
  • -G或–groups  显示用户所属附加群组的ID。
  • -n或–name  显示用户,所属群组或附加群组的名称。
  • -r或–real  显示实际ID。
  • -u或–user  显示用户ID。
  • -help  显示帮助。
  • -version  显示版本信息。

显示用户lady的所有信息。

没有用户时会显示

root@frank:/home# id lady_killer
id: “lady_killer”:无此用户

查看/切换用户

whoami

显示当前用户

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

参数说明

  • -f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
  • -m -p 或 --preserve-environment 执行 su 时不改变环境变数
  • -c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
  • -s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
  • –help 显示说明文件
  • –version 显示版本资讯
    • -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
    • 切换用户后进入对应家目录
  • USER 欲变更的使用者帐号
  • ARG 传入新的 shell 参数

例如,切换到lady用户,并进入对应家目录

切到root

注意,低权限到高权限需要输入密码

用户组

注:修改组usermod不常用,没有展示

添加用户组

语法

groupadd 命令 语法格式如下:

groupadd [-g gid [-o]] [-r] [-f] group

参数说明:

  • -g:指定新建工作组的 id;
  • -r:创建系统工作组,系统工作组的组ID小于 500;
  • -K:覆盖配置文件 “/ect/login.defs”;
  • -o:允许添加组 ID 号不唯一的工作组。
  • -f,–force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。

例如,添加组 fashi、sheshou,添加用户 houyi 到组 sheshou

cat /etc/group

查看用户houyi的信息

创建用户时会默认创建对应名称的组,如果没有指定的话,否则不会创建。lady没有指定组,所以有lady组。但houyi指定了组sheshou,就没有再生成组houyi。

例如,创建yewang组,id为1003,将houyi改到yewang组

删除用户组
groupdel [用户组名]

组和权限管理

前面学习了,目录和文件,以及用户

文件有属性,包括所有者,所在组,其它组,可执行权限等。

使用用户houyi在其家目录下,创建一个xixue.txt

修改文件所有者/所在组

chown具有root权限才能使用,助记:chage owner

语法

chown [-cfhvR] user[:group] file...

参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件

将lady.txt的所有者改为lady

chgrp 允许普通用户改变文件所属的组,只要该用户是该组的一员。 助记:change group

语法

chgrp [-cfhRv] 所在组 文件或目录

选项

  • -c     效果类似"-v"参数,但仅回报更改的部分。
  • -f     不显示错误信息。
  • -h 只对符号连接的文件作修改,而不更动其他任何相关文件。
  • -R 递归处理,将指定目录下的所有文件及子目录一并处理。
  • -v  显示指令执行过程。

将lady.txt的所在组改为lady

权限介绍

修改权限首先得看得懂文件的权限有哪些,就是ls -l展示的d、r、w等

第一个字母表示文件类型,

  • ”-”,普通文件。
  • ”d”目录。
  • “l”符号链接。
  • “b”块设备文件。
  • “c”字符设备文件。

接下来是文件所有者权限、文件所在组的用户的权限、文件其他组的用户的权限,每组三个

  • r是只读权限
  • w是写的权限,对于文件,是可以修改,若对文件目录也拥有写权限,则可以删除;对于目录,可以在目录内创建文件或目录、删除目录。
  • x是可执行权限,对于文件,是可以执行的;对于目录,是可以进入的。
  • -是没有任何权限

数字

  • 是文件,表示硬链接的个数
  • 是目录,表示子目录的个数

接下来是拥有者、所在组、文件大小/4096、文件创建时间、文件名

以目录lady为例

d          rwx                                     r-x                       r-x   lady      lady            4096       1月20 17:01    lady

目录 拥有者可读、写、进入  所在组用户可读、进入 同左 拥有者 所在组 目录都是4096    创建时间     目录名

修改权限

下面模式记一种即可。

符号模式

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:

who(用户类型)

who用户类型说明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所用用户, 相当于 ugo

operator 的符号模式表:

Operator(符号模式表)

Operator说明
+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置

permission 的符号模式表:

Permission(权限表)

Permission名字说明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

例,对于lady.txt拥有者赋予读、写、执行权限,所在组和其他组读、执行权限

**注:**权限一样时,可写在一起,go=rx

可以看到lady.txt变绿了,前面提到绿色是代表可执行文件

例,对于lady.txt拥有者赋予去除 执行 权限,所在组增加 写 权限

数字模式

数字模式

数字权限rwx二进制
7读 + 写 + 执行rwx111
6读 + 写rw-110
5读 + 执行r-x101
4只读r–100
3写 + 执行-wx011
2只写-w-010
1只执行–x001
0000

例,将lady.txt的权限修改为rwxr-xr-x

系统管理

时间日期

date ‘格式’

  • %y : 年份的最后两位数字 (00.99)
  • %Y : 完整年份 (0000…9999)
  • %m : 月份 (01…12)
  • %d : 日 (01…31)
  • %D : 直接显示日期 (mm/dd/yy)
  • %c : 直接显示日期与时间
  • %a : 星期几 (Sun…Sat)
  • %A : 星期几 (Sunday…Saturday)
  • %b : 月份 (Jan…Dec)
  • %B : 月份 (January…December)
  • %H : 小时(00…23)
  • %M : 分钟(00…59)
  • %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
  • %S : 秒(00…61)
  • -s datestr : 将系统时间设为 datestr 中所设定的时间
  • -u : 显示目前的格林威治时间
  1. 显示当前时间(默认)
  2. 显示当前是哪一天
  3. 显示年月日时分秒(格式 年-月-日 时:分:秒),格式与-s选项中datestr的格式一样。

日期时间显示格式,变化无穷,根据需要来,无法展示全面。

日历

cal  显示当前月日历

cal 年份

cal 月份 年份

任务调度

语法

crontab [ -u user ] { -l | -r | -e } file

参数说明

  • -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL vim)
  • -r : 删除目前的时程表
  • -l : 列出目前的时程表

时间格式如下:

f1 f2 f3 f4 f5 program
  • 其中 f1 是表示分钟(0-59),f2 表示小时(0-23),f3 表示一个月份中的第几日(1-31),f4 表示月份(1-12),f5 表示一个星期中的第几天(0-7)。program 表示要执行的程序。
  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,以此类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,以此类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,以此类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,以此类推
0 */2 * * * /sbin/service httpd restart  每两个小时重启一次apache 

50 7 * * * /sbin/service sshd start  每天7:50开启ssh服务  

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

ss=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xhZHlfa2lsbGVyOQ==,size_16,color_FFFFFF,t_70)

任务调度

语法

crontab [ -u user ] { -l | -r | -e } file

参数说明

  • -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL vim)
  • -r : 删除目前的时程表
  • -l : 列出目前的时程表

时间格式如下:

f1 f2 f3 f4 f5 program
  • 其中 f1 是表示分钟(0-59),f2 表示小时(0-23),f3 表示一个月份中的第几日(1-31),f4 表示月份(1-12),f5 表示一个星期中的第几天(0-7)。program 表示要执行的程序。
  • 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,以此类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,以此类推
  • 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,以此类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,以此类推
0 */2 * * * /sbin/service httpd restart  每两个小时重启一次apache 

50 7 * * * /sbin/service sshd start  每天7:50开启ssh服务  

[外链图片转存中…(img-ySxJEaBT-1715517110696)]
[外链图片转存中…(img-96esakNC-1715517110697)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值