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

目录

目录结构

SSH连接

开关机与重启

关机

重启

文件目录

目录

显示/切换

创建与删除

文件

创建

复制

移动

查看

重定向和追加

软链接

查找

备份与压缩

.gz

.zip

.tar.gz

用户管理

用户

添加用户

删除用户

修改用户

显示用户信息

查看/切换用户

用户组

添加用户组

删除用户组

组和权限管理

修改文件所有者/所在组

权限介绍

修改权限

符号模式

数字模式

系统管理

时间日期

任务调度

进程管理

查看

杀死

软件安装/卸载

安装

apt方式

压缩包方式

卸载

apt方式

其他

命令查看

运行级别

查看

进入

帮助

man

help

渗透测试软件

Metasploit

Ettercap

Sqlmap

Shell编程


安装

下载网站:kali.org

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第1张图片 打开

 这里偷个懒,直接下载VMware的压缩包,解压后,打开即可。

目录结构

Linux的目录结构,类似于一棵树,根节点是“/”。

总览

打开“文件系统根目录”

或者

root@frank:/# cd /
root@frank:/# ls

可查看根目录下的文件,

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第2张图片

蓝色表示目录

绿色表示可执行文件,包括.sh,.py等;

红色表示压缩文件,包括.zip、.tar等;

浅蓝色表示链接文件

灰色表示其它文件,包括.conf,.db,.img,.old等;

黄色设备文件,包括block, char, disk等。

bin

存放命令/可执行文件

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第3张图片

dev

管理设备

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第4张图片

etc

配置文件

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第5张图片

lib/lib32/lib64

库文件,.so或相关后缀

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第6张图片

root

该目录为系统管理员,也称作超级权限者的用户主目录。 

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第7张图片

usr

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。 

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第8张图片

/usr/local  一般通过编译源码方式安装的程序会放在此目录

var

放着不断扩充的东西,一般将经常修改的目录放在此目录下,例如,临时目录,备份,日志文件等。

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第9张图片

其他

  • boot:存放的是启动Linux时使用的一些核心文件,包括一些链连接文件以及镜像文件。
  • media:U盘、光驱等的识别。
  • mnt:让用户临时挂在别的文件系统的。
  • opt:软件安装目录
  • proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
  • sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • srv:该目录存放一些服务启动之后需要提取的数据。
  • tmp:这个目录是用来存放一些临时文件的。
  • sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

SSH连接

可以使用MobaXterm、XShell、SecureCRT等进行连接,不了解SSH协议的可以查看:

网络-Telnet协议与SSH协议(命令、免密登录)及其安全性

开关机与重启

shutdown

语法

shutdown [-t seconds] [-rkhncfF] time [message]

参数说明

  • -t seconds : 设定在几秒钟之后进行关机程序。
  • -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
  • -r : 关机后重新开机
  • -h : 关机后停机。
  • -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
  • -c : 取消目前已经进行中的关机动作。
  • -f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
  • -F : 关机时,强迫进行 fsck 动作。
  • time : 设定关机的时间。
  • message : 传送给所有使用者的警告讯息。

halt

若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。

使用权限:系统管理者。

语法

halt [-n] [-w] [-d] [-f] [-i] [-p]

参数说明

  • -n : 在关机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 文件里
  • -d : 不把记录写到 /var/log/wtmp 文件里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
  • -i : 在关机之前先把所有网络相关的装置先停止
  • -p : 当关机的时候,顺便做关闭电源(poweroff)的动作

poweroff

用于关闭计算器并切断电源。

使用权限:系统管理者。

语法

poweroff [-n] [-w] [-d] [-f] [-i] [-h]

参数说明

  • -n : 在关机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
  • -d : 不把记录写到 /var/log/wtmp 文件里
  • -i : 在关机之前先把所有网络相关的装置先停止
  • -p : 关闭操作系统之前将系统中所有的硬件设置为备用模式。

reboot

用于重新启动计算机。

若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代。

语法

reboot [-n] [-w] [-d] [-f] [-i]

参数

  • -n : 在重开机前不做将记忆体资料写回硬盘的动作
  • -w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
  • -d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
  • -f : 强迫重开机,不呼叫 shutdown 这个指令
  • -i : 在重开机之前先把所有网络相关的装置先停止

关机

例如, 立即关机

shutdown -h now

poweroff

halt

后面学习的 init 0也可以关机

重启

例如,立即重启

reboot

shutdown -r now

文件目录

目录

显示/切换

pwd

显示当前绝对路径

ls

显示目录及文件

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第10张图片

xr等是权限,后面再讲

还有 -a 选项比较常用,显示 . 开头的隐藏文件

cd

change directory, 切换目录

  • cd 绝对路径:写全路径,切换【可使用Tab键进行路径补全】
  • cd .. :上一层目录
  • cd ~:回到家目录

切换到/usr/lib目录

灵活使用,比如,在/usr/lib下,进入同级的bin目录,即回到上一级再进入bin

cd ../bin/

创建与删除

创建

make a directory / directorys

语法

mkdir [-p] dirName dirName ...

参数说明

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第11张图片

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第12张图片

删除空目录

remove an empty directory/ directorys

语法

rmdir [-p] dirName

参数

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第13张图片

非空目录如何删除?

语法

rm [options] name...

参数

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第14张图片

文件

创建

语法

touch 路径/文件名 路径/文件名 路径/文件名 ...

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第15张图片

复制

语法

cp [options] source dest

参数说明:

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第16张图片

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第17张图片

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

移动

move file

语法

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

参数说明

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

重命名

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第18张图片

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

查看

全部查看

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

使用权限

所有使用者

语法格式

cat [-bn] fileName

参数说明:

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

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

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

cat -n /etc/profile

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第19张图片

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

清空文件

cat dev/null > filepath

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第20张图片

滚动查看

语法

more [-num] [fileNames..]

参数

  • -num 一次显示的行数

操作:

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第21张图片

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

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

cat -n /etc/profile | more -5

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第22张图片

特大文件查看

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

语法

less [参数] 文件 

参数说明

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

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第23张图片 瞬间打开

重定向和追加

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

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

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

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文件后面

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第24张图片

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

软链接

语法:

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

必要参数

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

类似于Windows下的快捷方式

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第25张图片

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第26张图片

这样对于开头是

#!/usr/bin/env python

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

查找

语法

find [搜索范围] [选项]

选项

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第27张图片

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第28张图片

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

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

updatedb

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第29张图片

语法

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

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

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

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

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

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第30张图片

备份与压缩

.gz

gzip [选项] 文件

选项:

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

gunzip [选项] 文件

选项

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

压缩家目录下的lady.txt

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第31张图片

注意:源文件不会保留。

解压缩家目录下的lady.txt

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

.zip

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

选项

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第32张图片

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

unzip [选项] 目录或文件

选项

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第33张图片

 注意,由于前面压缩时目录填写的为~/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/

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第34张图片

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第35张图片

用户管理

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

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

用户

添加用户

useradd 选项 用户名

参数说明:

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

passwd 用户名  来添加密码

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第36张图片

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第37张图片

删除用户

userdel [-r] 用户名

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

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

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

userdel lady

修改用户

语法

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

参数说明

  • -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用户,并进入对应家目录

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第38张图片

切到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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第39张图片

查看用户houyi的信息

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第40张图片

删除用户组

groupdel [用户组名]

组和权限管理

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

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

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

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第41张图片

修改文件所有者/所在组

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

语法

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

参数 :

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

将lady.txt的所有者改为lady

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第42张图片

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

语法

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

选项

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

将lady.txt的所在组改为lady

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第43张图片

权限介绍

修改权限首先得看得懂文件的权限有哪些,就是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 用户类型 说明
u user 文件所有者
g group 文件所有者所在组
o others 所有其他用户
a all 所用用户, 相当于 ugo

operator 的符号模式表:

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

permission 的符号模式表:

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

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

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

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

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

数字模式

数字模式
数字 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r-- 100
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 --x 001
0 --- 000

例,将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的格式一样。

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第44张图片

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

日历

cal  显示当前月日历

cal 年份

cal 月份 年份

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第45张图片

任务调度

语法

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服务  

例,设置每分钟执行的任务,追加'lady_killer9'到/tmp/crontab_test.txt

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第46张图片

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第47张图片

验证一下:

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第48张图片

当然,一般比较复杂的话会写脚本,这里就拿一个简单的脚本举例子。

例,在家目录下写一个脚本mydate.sh,将当前日期追加到/tmp/mydate.txt文件中,给mydate.sh添加可执行权限;设置每分钟执行一次dateadd脚本。

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第49张图片

 添加任务

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第50张图片

稍微有一点延迟

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第51张图片

 查看一下当前的任务,然后删除所有任务

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第52张图片

进程管理

查看

语法

ps [options]

参数

  • -a 列出所有的进程
  • -u 以用户格式显示进程信息
  • -x 显示后台进程运行的参数
  • -ef 查看父进程ppid

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第53张图片

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第54张图片

 标题解释

  • USER: 进程拥有者
  • PID: 进程id
  • %CPU: 占用的CPU大小
  • %MEM: 占用的内存大小
  • VSZ: 占用的虚拟内存大小
  • RSS: 占用的物理内存大小
  • TTY: 终端的次要装置号码 (minor device number of tty)
  • STAT: 该行程的状态:

    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

还有pstree命令,使用树状来查看

杀死

语法

kill [参数] 进程号

参数

  • -9 /-KILL :强制停止

例,用户lady登录,检测到lady用户异常,现需使lady用户断连

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第55张图片

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第56张图片

 还有killall命令,来杀死相关的一组进程

软件安装/卸载

安装

apt方式

apt-get install package=version

压缩包方式

wget link

卸载

apt方式

apt-get remove --purge xxx

apt-get autoremove --purge xxx

其他

命令查看

前面说了很多命令,我们来看看如何查看之前的命令

history [选项]

用法:

  • n 显示n个最近的记录
  • -a 添加记录到history文件中
  • -c 将目前shell中的所有history命令清除
  • -d [n] 删除指定n条记录
  • -r 将history文件内容读入到目前shell的history记忆中
  • -w 将目前history记忆的内容写入到history文件中(直接覆盖方式)

显示最近使用过的10个命令

通过键盘上下方向键可进行切换

运行级别

  • 0 关机
  • 1 单用户(类似windows安全模式)
  • 2 多用户(无网络)
  • 3 多用户 (有网络)
  • 4 保留
  • 5 图形化界面
  • 6 重启

查看

runlevel

进入

init 级别

级别:0~6,不切换到4

帮助

博主前面给的命令的选项只是常用的,可以查看官方给的详细命令情况。一般情况下,使用下面的一个命令找不到帮助信息,在另一个会有。

man

man[命令或配置文件](功能描述:获得帮助信息,按Enter向上滚动查看,按q退出)

例如,查看ls的用法

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第57张图片

help

和man类似

例如,查看cd的用法

渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)_第58张图片

为避免文章过长,部分内容另写了文章

渗透测试软件

Metasploit

《MetaSploit渗透测试魔鬼训练营》之环境搭建

《MetaSploit渗透测试魔鬼训练营》之信息搜集

Ettercap

Sqlmap

网络安全-sqlmap学习笔记

Shell编程

未完待续...

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

你可能感兴趣的:(网络安全,kali,linux,Shell,渗透测试)