0


渗透测试之Web基础之Linux基础(上)——泷羽sec

** 声明:**

    **学习视频来自B站UP主泷羽sec,如涉及侵权马上删除文章。本文只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负**
泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频 (bilibili.com)https://space.bilibili.com/350329294

导读:

时刻保持谦逊,始终保持学习,探寻事物的本质,不要把事情复杂化

目录:

  • 一、OpenSSL
  • 二、文件管理
  • **三、文件查询 **
  • 四、文件系统权限
  • 小结

一、OpenSSL

(一)简介

    OpenSSL是KaLi Linux中一个非常重要的安全工具库,它提供了丰富的加密、解密、签名和验证等功能。OpenSSL支持多种加密算法,包括对称加密算法(如AES、DES等)和非对称加密算法(如RSA、ECC等)。这些算法可以用于保护数据的机密性和完整性。

(二)常用参数

加密与解密

  • -ciphername:指定加密算法。
  • -in filename:指定要加密或解密的文件存放路径。
  • -out filename:指定加密或解密后的文件存放路径。
  • -e:加密操作。
  • -d:解密操作。
  • -a/-base64:使用Base64编码格式。
  • -salt:自动插入一个随机数作为文件内容加密的盐值,默认选项。
  • -K key:指定密钥。
  • -iv IV:指定初始化向量(IV)。

数字签名与验证

  • -sign filename:使用私钥进行数字签名。
  • -verify filename:使用公钥验证签名。
  • -dgst:生成单向加密摘要,如MD5、SHA等。

证书管理

  • genrsa:生成RSA私钥。
  • rsa:RSA密钥管理。
  • req:证书请求管理,如生成证书请求文件、自签名证书等。

(三)实操演示

命令:openssl passwd -help

解释:查看passwd模块相关参数

命令:openssl passwd -1 123

解释:将123使用MD5算法加密

命令:openssl passwd -5 123

解释:将123使用SHA-256哈希算法加密

二、文件管理

创建文件

命令:touch new

删除文件

命令:rm newfile

新建目录

命令:mkdir newdir

删除目录

命令:rmdir newdir

重命名文件

命令:mv old.txt new.txt

移动文件

命令:cp [选项] old.txt <新文件路径>

拷贝文件

命令:cp 【选项】<旧文件名> <新文件名>

  • -i:交互模式,在覆盖已存在的文件前提示用户确认。
  • -r或**-R**:递归复制目录及其包含的所有子目录和文件。
  • -p:保留原文件的属性(权限、修改时间等)。
  • -v:显示详细的复制进度信息。
  • -u:仅当源文件比目标文件新时才进行复制。
  • -f或**--force**:强制复制,即使目标文件已存在也不提示,直接覆盖。

软连接与硬链接

*1*)本质不同 **

硬链接:同一个文件,多个名称。

软链接:不同的文件。

*2*)跨分区 **

硬链接:不支持跨分区。

软链接:支持跨分区。

*3*)目录 **

硬链接:不支持对目录创建。

软链接:支持对目录创建。

*4*)相互关系 **

硬链接:删除某一个硬链接,另一个硬链接不影响使用。只有当所有硬链接都被删除后才能被真正删除

软链接:原始文件和软链接有依赖关系,原始文件删了,软链接就失效了。

*5inode*编号 **

硬链接:inode编号是相同的。

软链接:inode编号不同。

*6*)链接数 **

硬链接:删除一个硬链接,硬链接的链接数会有变化。

软链接:删除一个软链接,链接数不会有变化,删除的相当于是一个快捷方式。

*7*)相对路径:原始文件路径 **

硬链接:硬链接的相对路径,是相对的当前工作目录的相对路径。

软链接:软链接的原始文件路径是,相对的软链接的相对路径,而不是相对当前工作目录。

*8*)文件类型 **

硬链接:硬链接的文件类型是,原来是什么就是什么,例如:原来是普通文件,还是普通文件。

软链接:软链接的文件类型是L

*9*)命令的实现不一样 **

硬链接:ln

软链接:ln -s 需要指定原始文件的路径

软连接命令:ln -s old.txt new.txt

硬链接命令:ln old.txt new.txt

注:如果对源文件或硬链接中的任何一个进行修改,另一个也会看到相同的更改,因为它们

指向相同的数据。

三、文件查询

which查询

简介

    用于查找并显示给定命令的绝对路径。这个命令会在用户的PATH环境变量所指定的目录中搜索指定的命令,并返回第一个找到的匹配项。

基本语法

which [选项] [命令]

常用选项

  • -a:显示所有符合条件的命令的路径,而不仅仅是第一个找到的。
  • -n:指定一个要检查的路径的最大数量。这个选项在某些版本的which中可能不被支持。
  • -p:这个选项在某些版本的which中用于与-a结合使用,以特定格式显示路径,但在其他版本中可能不存在或具有不同的含义。
  • -v:显示命令的详细信息,包括其版本信息(如果可用)。然而,并非所有版本的which都支持此选项。

实操演示

1.查找单个命令的路径

which openssl

2.查找多个命令的路径

which gcc g++ make

3.显示所有匹配的命令路径

which -a python

注意事项

  • which命令仅搜索PATH环境变量中指定的目录。
  • 如果命令是一个别名或函数,which可能不会找到它。在这种情况下,可以使用type命令来查看命令的类型。
  • which命令的输出可能因系统配置和安装的软件包而异。

打印环境变量:echo $PATH

locate查询

简介

    是一个快速查找文件和目录的工具,它通过搜索一个预先构建的数据库来加速搜索过程,而不是像
find

命令那样直接搜索文件系统,通常比find快。

基本语法

查找文件或目录

    要查找特定的文件或目录,后跟要查找的文件名或目录名。将搜索数据库并返回所有包含
filename

的文件或目录的路径。

locate

filename

忽略大小写

使用

-i

选项可以忽略大小写进行搜索,返回所有与

FILE

匹配的文件或目录。

locate -i

FILE

使用正则表达式

使用

-r

选项可以使用正则表达式进行搜索。例如,要查找以

.txt

结尾的文件,可以使用:

locate -r '.txt$'

高级用法

限制输出结果的数量

使用

-n

选项可以限制输出结果的数量。例如,要只显示前5个匹配结果,可以使用:

locate -n 5 filename

显示文件的详细信息

    虽然
locate

命令本身不直接显示文件的详细信息,但你可以通过其他命令(如

ls

)来处理

locate

的输出。例如,要将

locate

找到的所有文件列出详细信息,可以使用:

locate filename | xargs ls -l

注意:这里使用了

xargs

命令来将

locate

的输出作为

ls -l

的输入。如果文件名中包含空格或特殊字符,

xargs

能够正确处理这些情况。

更新数据库

   locate

命令依赖于一个预先构建的数据库,该数据库由

updatedb

命令生成。当文件系统发生变化(如添加、删除或移动文件)时,需要运行

updatedb

命令来更新数据库,以确保

locate

命令能够返回准确的结果。由于

updatedb

可能需要一些时间来完成,因此建议在文件系统发生较大变化后再运行此命令。更新数据库的命令如下:

sudo updatedb

注意事项

  • 数据库大小locate命令的搜索速度非常快,因为它只搜索数据库而不是整个文件系统。但是,数据库的大小会影响搜索速度和内存占用。因此,对于大型文件系统或频繁变化的文件系统,可能需要定期运行updatedb命令来更新数据库。
  • 准确性:由于locate命令依赖于数据库进行搜索,因此数据库必须是最新的才能确保搜索结果的准确性。如果数据库未及时更新,locate命令可能会返回已删除或移动的文件的路径。
  • 权限:运行updatedb命令通常需要root权限,因为它需要访问整个文件系统来构建数据库。因此,在运行此命令时,需要使用sudo命令来获取必要的权限。
  • 结合其他命令使用locate命令的输出可以直接用作其他命令的输入。例如,你可以将locate的输出传递给grep命令来进一步筛选结果,或者传递给cpmv等命令来操作找到的文件。

帮助文档

find查询

简介

  find

命令是 Linux 系统中一个非常强大且灵活的文件查找工具。与

locate

命令不同,

find

命令直接搜索文件系统,而不是依赖于预先构建的数据库。因此,

find

命令能够提供更准确的结果,但可能会花费更长的时间,特别是在大型文件系统中。

基本用法

查找文件或目录

要在指定目录中查找文件或目录,可以使用以下格式:

find [搜索路径] -name [文件名或目录名]

例如,要在当前目录及其子目录中查找名为

example.txt

的文件,可以使用:

find . -name example.txt
.

表示当前目录,

-name

选项指定了要查找的文件名。

按类型查找

使用

-type

选项可以按文件类型查找。常见的文件类型包括

f

(普通文件)、

d

(目录)、

l

(符号链接)等。要查找当前目录及其子目录中的所有目录,可以使用:

find . -type d

按大小查找

使用

-size

选项可以按文件大小查找。大小单位可以是

b

(字节)、

k

(千字节)、

M

(兆字节)等。要查找大于 10MB 的文件,可以使用:

find . -size +10M

按时间查找

使用

-mtime

(修改时间)、

-atime

(访问时间)或

-ctime

(状态改变时间)选项可以按时间查找文件。这些选项后面的数字表示天数。要查找最近 7 天内修改过的文件,可以使用:

find . -mtime -7

实操演示

命令:find ~ -mtime +2 -ls | sort -k9 -k10 | more

解释:

find ~ (在当前用户主目录下进行查找)
-mtime +2 (在两天前被修改过的文件)
-ls (长列表显示找到的文件信息)
sort -k9 -k10 (按照第9列和第10列的内容对文件信息进行排序)
more(分页显示信息)

命令:find / -user root -type f -perm -ow -name '*.sh' 2>/dev/null

  • find / :从根目录开始查找。
  • -user root :查找所有者为 root 用户的文件。
  • -type f :查找普通文件。
  • -perm -ow :查找具有其他用户(other)可写权限的文件。
  • -name '*.sh' :查找文件名以 .sh 结尾的文件。
  • 2>/dev/null :将错误输出重定向到 /dev/null ,即不显示错误信息。

命令:find. -type f -iname '*.txt' -mmin -30 -ls

  • find . ------>表示在当前目录下进行查找
  • -type f ------>表示要查找类型为普通文件
  • -iname '*.txt' ------>查找文件名以.sh结尾的文件
  • -mmin -30 ------>表示查找在30分钟内被修改过的文件

帮助文档

**whereis查询 **

简介

    用于定位二进制文件、源代码文件和手册页文件的位置。它搜索系统的标准目录来查找指定的命令、文件或程序。

常用选项

  • -b:只查找二进制文件(可执行文件)。
  • -m:只查找手册页文件(man pages)。
  • -s:只查找源代码文件。
  • -u:搜索默认路径之外的目录(需要更新数据库)。
  • -f:取消路径名中的 -(连字符)的特殊处理。

实操演示

查找一个命令的所有相关文件

whereis ls

只查找二进制文件

whereis -b ls

帮助文档

注意事项

  • whereis 命令搜索的是系统的标准目录,如 /bin, /usr/bin, /usr/local/bin,以及手册页目录 /usr/share/man 等。
  • 如果要查找的文件不在这些标准目录中,whereis 可能不会找到它。在这种情况下,可以使用 find 命令进行更广泛的搜索。
  • whereis 命令的结果依赖于系统的数据库文件,这些数据库文件可能不总是最新的。可以使用 updatedb 命令来更新这些数据库文件。

**四、文件系统权限 **

文件系统

    在 Linux 系统中,几乎所有的资源都被抽象为文件,一切都是文件包括硬件设备(如硬盘、网卡等)、进程间通信、网络连接等。这种设计理念使得对各种资源的管理可以通过统一的文件操作方式来进行,大大简化了系统的架构和管理。 

查看权限

**命令:ls -la /etc/passwd **

解释:

“ls” 是列出目录内容的命令。

“-l” 表示以长格式显示文件信息,

“-a” 表示显示包括隐藏文件在内的所有文件。

“/etc/passwd” 是要查看的文件路径,这个文件存储了系统用户账户的基本信息。

输出内容解释:

“-rw-r--r--” 表示文件权限,第一个 “root” 是文件所有者,第二个 “root” 是文件所属组,

“3175” 是文件大小,“11月5日 20:08” 是文件的修改时间,“/etc/passwd” 是文件名。

更改文件所有者

命令:chown root file

解释:

“root” 是要将文件所有者更改为的用户名,在这里表示将文件的所有者设置为 “root” 用户。

“file” 是要更改所有者的文件名。

如果要同时更改文件的所属组,使用以下语法:“chown root:group file”,其中 “group” 是要设置的所属组名。

修改文件权限

命令:sudo chmod u=rwx,g+rw,o-r file

解释:

sudo 表示以管理员权限执行命令。

chmod 是改变文件权限的命令。

u=rwx 表示将文件的所有者(user)权限设置为可读(r)、可写(w)、可执行(x)。

g+rw 表示给文件的所属组(group)增加可读(r)和可写(w)权限。

o-r 表示将文件的其他用户(other)权限设置为不可读(-r)。

file 是要更改权限的文件名。

命令:sudo chmod u+x,g+w,o-r file

解释:

sudo 表示以管理员权限执行命令。

u+x 表示给文件的所有者增加可执行权限。

g+w 表示给文件的所属组增加可写权限。

o-r 表示将文件的其他用户(other)权限设置为不可读

file 是要更改权限的文件名

*3*)sudo **chmod 400 file

chmod 改变文件权限。

400 是一个八进制数字,表示权限设置。其中第一位数字 “4” 代表所有者的权限,代表可读(r)权限,后两位数字 00分别代表所属组和其他用户的权限,这里表示没有任何权限。

<file> 是要更改权限的文件名

补充

**如何通过数字设置文件权限。 **

使用三位八进制数字来设置文件权限。 每个文件的权限分为三组:所有者(user)、所属组(group)和其他用户(other)。每组权限 又分为读(read)、写(write)和执行(execute)三种权限,分别用数字表示为:

  • *读权限(r):***4 **
  • *写权限(w):***2 **
  • *执行权限(x):***1 **
  1. **确定所需的权限组合: **

例如,要设置文件的权限为所有者有读、写和执行权限;所属组和其他用户只有读权限,那么权限组合为 “rwxr--r--”。

  1. **将权限组合转换为数字: **

对于 “rwxr--r--”,所有者权限 “rwx” 对应的数字为 4 + 2 + 1 = 7;所属组权限 “r--” 对应的数字为 4 + 0 + 0 = 4;其他用户权限 “r--” 对应的数字也为 4。所以,用数字表示的权限为 744。

  1. **使用 ****chmod ****命令设置权限: **

要将文件 “file.txt” 的权限设置为 “rwxr--r--”,可以使用命令 sudo chmod 744 file.txt 。

一些其他常见的权限设置:

644 表示所有者有读、写权限,所属组和其他用户只有读权限(“rw-r--r--”)。

755 表示所有者有读、写和执行权限,所属组和其他用户有读和执行权限(“rwxr-xr-x”)。

小结

    未完待续,请坚持下去,同志们。

文中如有错误,还请各位大佬批评指正,感激不尽!


本文转载自: https://blog.csdn.net/ai0070411/article/details/143672667
版权归原作者 豪门土狗 所有, 如有侵权,请联系我们删除。

“渗透测试之Web基础之Linux基础(上)——泷羽sec”的评论:

还没有评论