泷羽sec学习打卡-Linux基础

声明
学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负


关于Linux的那些事儿-Base


一、Linux-Base

什么时openssl?有哪些加密参数?

openSSL是一个开源的软件库,它实现了安全套接字层(SSL)和传输层安全(TLS)协议,包含丰富的加密算法和功能。
使用openssl加密有哪些参数以及加密算法进行加密呢?
-crypt:这是默认的加密算法,用于UNIX标准加密。
-1:使用MD5的算法进行加密。
-apr1:这是Apache中使用的备选MD5算法,不能与-1选项一起使用,因为apr1本身就默认了MD5。
-5:使用SHA256的算法进行加密。
-6:使用SHA512的算法进行加密。
-salt:用于在加密时添加随机数,增加算法复杂度;但如果盐值相同,密码也相同,则加密结果将一样。
-in file:从文件中读取要计算的密码列表进行加密。
-stdin:从标准输入中获取要输入的密码。
-quiet:生成密码过程中不输出任何信息。

MD5加密:openssl passwd -1 123

SHA256加密:openssl passwd -5 123

SHA512加密:openssl passwd -6 123

随机数加密盐值:openssl passwd -salt salt 123

Salted加密: openssl passwd 123

apache备选md5加密:openssl passwd -arpt1 123

自定义Salted加密:openssl passwd -salt salt -1 123

示例:

常用linux操作命令,

1、实际上和windows的命令操作几乎一致

区别:Linux用/(左斜线划分路径),windows是用(右斜线划分路径)

创建空文件

python 复制代码
touch newfile

创建文件并写入数据hello

python 复制代码
touch newfile  hello

查看文件(需要指定路径)

python 复制代码
dir  

移除文件

python 复制代码
rm newfile

创建目录文件

python 复制代码
mkdir newdir

删除文件

python 复制代码
remdir newdir

写入内容到文件

python 复制代码
echo dw > newdir

查看文件内容

python 复制代码
cat newdir

重命令文件

python 复制代码
mv newdir newtest

复制文件到上一级别目录

python 复制代码
cp newtest ../dwtest

切换到上一级别目录

python 复制代码
cd ..

继续查看文件

python 复制代码
cat detest

示例:

2、locate (loacate.db)

locate命令在Linux和类Unix系统中用于快速查找文件系统中的文件和目录。它通过查找预建立的数据库来快速定位文件,而不是像find命令那样直接搜索文件系统,因此它的搜索速度非常快,尤其是在处理大量文件时。

示例:locate [选项] [模式]

sudo updatedb命令在Linux系统中用于手动更新locate命令使用的数据库。这个数据库包含了文件系统中所有文件的路径信息,用于加速文件搜索。updatedb命令通常由系统管理员使用,因为它需要读取整个文件系统的权限。

python 复制代码
sudo updatedb

搜索出whoami.exe文件的位置且回显

python 复制代码
locate whoami.exe

搜索出whoami所有文件的位置且回显

python 复制代码
locate whoami

3、find(查找)

python 复制代码
find ~ -mtime 2 -ls | sort -k9 -k10 | more

命令解析:
find:用于搜索文件系统中的文件和目录。
~:表示当前用户的主目录。
-mtime 2:表示查找在过去2天内被修改过的文件。-mtime参数后面跟的数字表示天数,这里2表示两天内。
-ls:表示以长列表格式显示文件信息,类似于ls -l的输出。

这个命令组合的结果是列出用户主目录下最近两天内修改过的所有文件,包括文件大小、修改日期等信息。
|:管道符号,它将前一个命令的输出作为后一个命令的输入。
sort:用于对输入数据进行排序。
-k9 -k10:表示按照输出的第9列和第10列进行排序。在find -ls的输出中,第9列通常是文件大小(以字节为单位),第10列是修改日期。这里假设find -ls的输出格式是标准的,并且包含这些列。
more:是一个分页程序,用于逐页显示输出,方便用户逐页阅读。

这个命令会将sort命令的输出分页显示,用户可以通过按空格键来翻页。
命令功能:

在用户主目录下查找最近两天内修改过的文件,并以文件大小和修改日期进行排序,然后逐页显示排序后的结果。

python 复制代码
find . -type f -iname '*.sh' -mmin -30 -ls

命令解析:

find:这是用于搜索文件系统中文件的命令。

.:表示当前工作目录。命令将在当前目录及其所有子目录中进行搜索。

-type f:指定只查找文件(不包括目录)。

-iname '*.sh':-iname 参数用于忽略大小写地匹配文件名。这里它匹配所有以 .sh 结尾的文件,通常表示 shell 脚本文件。

-mmin -30:-mmin 参数用于查找在最近 30 分钟内被修改过的文件。这里的 -30 表示"少于30分钟"。

-ls:这个参数让 find 命令以 ls -l 命令的长列表格式输出匹配的文件信息。
命令功能:

当前目录及其子目录中查找所有在最近 30 分钟内被修改过、且文件名以 .sh 结尾的文件,并以长列表格式输出它们的信息。

python 复制代码
find . -name '*.svn' -exec rm -rf {} \;

命令解析:

命令功能:

python 复制代码
find /user -type f -user root -perm -o=w -name '*.sh' 2>/dev/null

命令解析:
find:这是用于搜索文件系统中文件的命令。
.:表示当前工作目录。命令将在当前目录及其所有子目录中进行搜索。
-name '*.svn':-name 参数用于匹配文件名。这里它匹配所有以 .svn 结尾的目录,通常这些目录是 Subversion 版本控制系统的工作目录。
-exec:这个参数告诉 find 命令对找到的每个文件或目录执行指定的命令。
rm -rf {}:rm 是删除文件的命令,-rf 是 rm 命令的参数,其中 -r 表示递归删除(用于删除目录及其内部的所有内容),-f 表示强制删除(不会显示任何提示信息)。{} 是一个占位符,代表 find 命令找到的每个匹配的文件或目录的名称。
\::这是 -exec 参数的结束符。在 exec 参数中,命令的最后必须是一个 \;,用来终止 -exec 选项并执行前面的命令。
命令功能:

在当前目录及其子目录中查找所有名为 .svn 的目录,并删除它们。这个操作会递归地删除每个找到的 .svn 目录及其包含的所有文件和子目录,且不会要求用户确认。请注意,这个命令会永久删除文件。

创建用户账号密码以及更改不同状态(启用、锁定、更改密码、组、群等)

查看用户密码信息

csharp 复制代码
cat /etc/passwd

以root权限才能查看用户密码信息

csharp 复制代码
cat /etc/shadow

禁用账号

csharp 复制代码
sudo passwd -l dw
sudo:这是一个命令行实用程序,允许授权的用户以另一个用户的安全权限执行命令,默认情况下是以超级用户(root)的权限执行。使用 sudo 可以执行需要更高权限的操作。
passwd:这是用于管理用户账户密码的命令。
-l:这是 passwd 命令的一个选项,代表"lock",用于锁定用户的密码。当一个用户的密码被锁定后,该用户将无法通过密码认证来登录系统。
dw:这是你想要锁定密码的用户名。

显示指定用户 dw 的密码状态信息

csharp 复制代码
passwd -S dw
passwd:这是Linux系统中用于管理用户密码的工具。
-S:这是 passwd 命令的一个选项,用于显示指定用户的密码状态,而不是更改密码。
dw:这是你想要查看密码状态的用户名。
回显如下:
dw P 2024-11-12 0 99999 7 -1
用户名是 dw。
密码状态是 P,表示密码已过期。
密码最后一次更改日期是 2024-11-12。
密码更改周期是 0 天,意味着没有设置密码更改周期。
密码到期前的警告天数是 99999 天,这是一个非常大的数字,通常表示没有设置警告天数。
密码过期后的宽限天数是 7 天。
账户过期时间是 -1,表示账户不会过期。

添加用户账号

sudo useradd dw

设置用户密码

csharp 复制代码
sudo passwd dw

解锁用户

csharp 复制代码
sudo passwd -u dw
-u:这是 passwd 命令的一个选项,代表"unlock",用于解锁用户的密码。当一个用户的密码被锁定后,该用户将无法通过密码认证来登录系统。使用 -u 选项可以解除这种锁定状态。

查看用户组信息

cat /etc/group

示例:



文件系统权限

为什么说linux中一切皆是文件呢?

在Linux系统中,有一个核心概念是"一切皆文件"(Everything is a file)。这个概念是由Unix和类Unix操作系统的创始人之一Ken Thompson提出的,它意味着在操作系统中,几乎所有的对象-包括硬件设备、文件、目录等------都被视为文件。

查看文件

csharp 复制代码
ls -la /etc/passwd
ls:这是一个基本的命令,用于列出目录内容。
-l:这是 ls 命令的一个选项,用于以长格式列出文件和目录的信息。长格式会显示文件的权限、所有者、组、大小、最后修改日期和文件名。
-a:这是 ls 命令的另一个选项,用于显示所有文件和目录,包括以点(.)开头的隐藏文件。
/etc/passwd:这是指定的路径,指向 /etc 目录下的 passwd 文件。

更改文件所有着

csharp 复制代码
chown root file
chown:这是"change owner"的缩写,即更改拥有者。
root:这是要设置的新的所有者用户名。在这个命令中,root 是Linux系统中的超级用户账户,拥有系统上所有文件和目录的最高权限。
file:这是要更改所有者的文件或目录的名称。

修改文件权限并移除其他用户读取权限

csharp 复制代码
sudo chmod u=rwx,g+rw,o-r file
sudo:这是一个命令行实用程序,允许授权的用户以另一个用户的安全权限执行命令,默认情况下是以超级用户(root)的权限执行。
chmod:这是"change mode"的缩写,用于更改文件或目录的访问权限。
u=rwx:这是权限设置的一部分,表示为文件所有者(user)设置读(read)、写(write)和执行(execute)权限。u 代表用户(user),= 表示设置确切的权限,rwx 代表读、写和执行权限。
g+rw:这是权限设置的一部分,表示为文件的所属组(group)添加读(read)和写(write)权限。g 代表组(group),+ 表示添加权限。
o-r:这是权限设置的一部分,表示为其他用户(others)移除读(read)权限。o 代表其他用户(others),- 表示移除权限。
file:这是要更改权限的文件或目录的名称。

区别:这里为user用户添加执行权限

csharp 复制代码
sudo chmod u+x,g+w,o-r file
sudo:这是一个命令行实用程序,允许授权的用户以另一个用户的安全权限执行命令,默认情况下是以超级用户(root)的权限执行。
chmod:这是"change mode"的缩写,用于更改文件或目录的访问权限。
u+x:这是权限设置的一部分,表示为文件所有者(user)添加执行(execute)权限。u 代表用户(user),+ 表示添加权限,x 代表执行权限。
g+w:这是权限设置的一部分,表示为文件的所属组(group)添加写(write)权限。g 代表组(group),+ 表示添加权限,w 代表写权限。
o-r:这是权限设置的一部分,表示为其他用户(others)移除读(read)权限。o 代表其他用户(others),- 表示移除权限。
file:这是要更改权限的文件或目录的名称。

提权示例:

csharp 复制代码
chmod 400 file
4 代表读权限(r),即4。
0 代表没有写权限(w),即0。
0 代表没有执行权限(x),即0。
为文件的所有者设置读权限。
为文件所属组和所有其他用户移除所有权限(包括读、写和执行)

ls -l

查看当前路径下的权限

chmod命令中有哪些权限数字组合和表示方法?
以下是权限的数字表示方法:

_读(r):值是4

写(w):值是2

执行(x):值是1
权限的数字设置是累加的,所以:
为什么这里是3位数,而不是4位数呢?
因为权限的数字是一个八进制的数字,第一位素数字是文件所有者、第二位数是所属组织、第三位数是其他用户

7(4+2+1)代表读、写、执行权限(rwx)

6(4+2)代表读、写权限(rw-)

5(4+1)代表读、执行权限(r-x)

4 代表只读权限(r--)

3(2+1)代表写、执行权限(-wx)

2 代表只写权限(-w-)

1 代表只执行权限(--x)

0 代表没有任何权限(---)

这个命令和数字权限的组合是非常有用的,如果不会提权,那么你的渗透测试到此为止了

提权常用命令

777:为文件所有者、所属组和其他用户设置读、写和执行权限。

命令:chmod 777 file

权限:rwxrwxrwx

755:为文件所有者设置读、写和执行权限,为所属组和其他用户设置读和执行权限。

命令:chmod 755 file

权限:rwxr-xr-x

700:为文件所有者设置读、写和执行权限,为所属组和其他用户不设置任何权限。

命令:chmod 700 file

权限:rwx------

666:为文件所有者、所属组和其他用户设置读和写权限。

命令:chmod 666 file

权限:rw-rw-rw-

644:为文件所有者设置读和写权限,为所属组和其他用户设置读权限。

命令:chmod 644 file

权限:rw-r--r--

600:为文件所有者设置读和写权限,为所属组和其他用户不设置任何权限。

命令:chmod 600 file

权限:rw-------

777(目录):为目录设置读、写和执行权限,允许所有用户查看、添加和删除目录中的文件。

命令:chmod 777 directory

权限:rwxrwxrwx

755(目录):为目录设置读、写和执行权限,为所属组和其他用户设置读和执行权限,通常用于可执行文件的目录。

命令:chmod 755 directory

权限:rwxr-xr-x

700(目录):为目录设置读、写和执行权限,为所属组和其他用户不设置任何权限,通常用于敏感配置文件的目录。

命令:chmod 700 directory

权限:rwx------

755(脚本):为脚本文件设置读、写和执行权限,为所属组和其他用户设置读和执行权限,确保脚本可以被所有者执行,同时允许组内其他用户执行。

命令:chmod 755 script.sh

权限:rwxr-xr-x

查看日志信息(擦除痕迹)

系统日志

ls -l /var/log

认证信息日志

csharp 复制代码
sudo tail -3 /var/log/auth.log

二进制日志

csharp 复制代码
who /var/log/wtmp/ | tail -5
csharp 复制代码
dmesg

dmesg 是一个在 Unix 和类 Unix 操作系统(如 Linux)中用于显示和控制内核环缓冲区(kernel ring buffer)内容的命令。内核环缓冲区是操作系统内核用来记录系统事件消息的地方,包括启动消息、硬件状态、驱动程序消息和错误信息等。

csharp 复制代码
要查看最新的内核消息,可以使用以下命令:
dmesg | less
csharp 复制代码
这将分页显示内核消息,允许你滚动查看。要实时查看新消息,可以使用:
dmesg -w
csharp 复制代码
它是用于查看和分析 systemd 系统和服务管理器的日志的命令。
journalctl

存储管理

内存使用量

free -m

磁盘使用量

df -hT

文件或目录大小

sudo du ./* -hsc

查看硬盘分区

sudo fdisk -l

挂载分区

sudo mount /dec/sdb1/mnt/usb

基本网络枚举

基本网络工具

查看本机ip

ifconfig

查看所有网络接口列表

ip addr

关闭网卡连接

sudo ifdown lo

启动网卡

sudo ifup lo

网络配置

网络配置/etc/network/interfaces

csharp 复制代码
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface (eth0)
auto eth0
iface eth0 inet dhcp

# A static IP configuration for a secondary network interface (eth1)
auto eth1
iface eth1 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
在这个示例中:
lo 是本地回环接口,通常配置为 loopback。
eth0 是主要的网络接口,配置为使用 dhcp 动态获取IP地址。
eth1 是一个辅助网络接口,配置为静态IP地址 192.168.1.100,子网掩码 255.255.255.0,网关 192.168.1.1,以及DNS服务器 8.8.8.8 和 8.8.4.4。

网络守护程序:NetworkManager

它也提供了命令行工具 nmcli 和 nmtui,用于通过命令行管理网络。

查看所有网络设备的状态:

csharp 复制代码
nmcli device status

启动名为 eth0 的网络接口:

csharp 复制代码
nmcli device up eth0

停止名为 eth0 的网络接口:

csharp 复制代码
nmcli device down eth0

配对规则:qdisc

查看当前的网络连接:

csharp 复制代码
nmcli connection show
注意这里回显的是接口的硬件名称 lo eth0,不是网络连接名称

查看具体网络连接的详情

csharp 复制代码
nmcli connection show id "lo"

启用网络连接:

csharp 复制代码
nmcli connection up id "lo"

禁用网络连接:

csharp 复制代码
nmcli connection down id "Connection Name"

网络连接

显示网络连接、监听端口和路由表信息

csharp 复制代码
netstat -natup

显示 TCP 和 UDP 套接字的状态

csharp 复制代码
ss -netup

二层地址

arp -em 命令用于显示和修改地址解析协议(ARP)使用的 IP 到物理地址转换表。

csharp 复制代码
arp -e -m

路由信息

csharp 复制代码
route

用于管理和查看 Linux 系统中路由表的命令

csharp 复制代码
ip route

告诉系统,所有目的地在 10.13.37.0/24 子网内的数据包都应该通过 eth0 接口发送。

csharp 复制代码
sudo ip route add 10.13.37.0/24 dev eth0

traceroute 命令用于追踪数据包从本地主机到目标主机(在这个例子中是 offensive-security.com)之间的路由路径。

csharp 复制代码
traceroute offemsive-security.com

SSH服务

启动 SSH 服务,允许远程用户通过 SSH 协议安全地连接到您的系统

csharp 复制代码
sudo systemctl start ssh

sudo:这个命令允许授权的用户以另一个用户的安全权限执行命令,默认情况下是以超级用户(root)的权限执行。在这里,它用于获取必要的权限来启动系统服务。

systemctl:这是 systemd 系统和服务管理器的命令行工具,用于控制 systemd 系统和服务管理器。

start:这是 systemctl 的一个参数,用于激活(启动)指定的服务。

ssh:这是要启动的服务的名称,即 SSH(Secure Shell)服务。SSH 是一种网络协议,用于在网络上加密方式远程登录和其他网络服务。

csharp 复制代码
ssh root@loaclhost

配置文件

csharp 复制代码
/etc/ssh/sshd_config

客户端配置

HashKnownHosts yes 是一个可以在 SSH 客户端的配置文件 ~/.ssh/config 或 /etc/ssh/ssh_config 中设置的指令。

csharp 复制代码
hashknownHosts yes

Linux 和类 Unix 系统中用户主目录下的一个隐藏目录

csharp 复制代码
~/.ssh

id_rsa:这是默认的私钥文件,用于 SSH 认证。通常与 id_rsa.pub(公钥)配对使用。

id_rsa.pub:这是与 id_rsa 私钥配对的公钥文件。公钥可以被复制到其他服务器的 ~/.ssh/authorized_keys 文件中,以便实现无密码登录。

known_hosts:这个文件用于存储你曾经连接过的 SSH 服务器的公钥。SSH 客户端会使用这个文件来验证服务器的身份,防止中间人攻击。

authorized_keys:这是一个文件,其中包含了允许无密码登录到该用户账户的公钥列表。通常由系统管理员或用户自己添加。

config:这是 SSH 客户端的配置文件,允许用户自定义 SSH 连接的参数,如指定别名、端口、用户身份验证方法等。

远程拷贝

scp 是一个用于在 Linux 和 Unix 系统之间安全地复制文件的命令行工具。它使用 SSH 协议来确保数据传输的安全性。

csharp 复制代码
scp root@1.1.1.1:/home/kail/.bashrc Copiedbashrc

scp:安全复制命令。

root@1.1.1.1:指定远程服务器的用户名和 IP 地址。在这个例子中,用户名是 root,IP 地址是 1.1.1.1。

:/home/kail/.bashrc:指定要复制的远程文件的路径。冒号(:)前的路径表示远程路径。

Copiedbashrc:指定本地目标文件的名称。如果这是一个文件名,那么 ./ 应该被包含在内,以表示当前目录。如果这是一个路径,那么应该提供完整的路径。

csharp 复制代码
scp passwd -p kail ssh root@127.0.0.1

使用 scp 命令复制文件。

-p 选项可能是用来指定端口的,但在 scp 命令中没有 -p 选项(这个选项在 ssh 和 rsync 中存在)。

kail 可能是您想要复制的文件名,但放置的位置不正确。

ssh 可能是一个误输入,不应该出现在 scp 命令中。

root@127.0.0.1 表示您想要复制到的远程主机的地址和用户名。

csharp 复制代码
history

哈哈哈哈,看来linux的命令很有意思,也很有趣,都是英语的简写噢!!!

能够看到这里,你,值得认真一次,登顶一次就好,不是吗,各位!!!

该说不说

实践是检验真理的唯一标准

相关推荐
Daydreamer108 分钟前
学习笔记——PLCT汪辰:开发RISC-V上的操作系统(持续更新)
笔记·学习·risc-v
地球空间-技术小鱼19 分钟前
2024-Calculate-gentoo安装fcitx拼音输入法
linux·运维·服务器·学习
wanhengwangluo22 分钟前
怎样选择合适的服务器租用呢?
服务器·网络·服务器租用
petaexpress22 分钟前
多链路负载均衡设置在哪里?
网络·智能路由器·负载均衡·多链路负载均衡
weixin_3868136924 分钟前
ubuntu安装配置
linux·运维·ubuntu
Violet_Stray37 分钟前
docker里rtsp推流+同一个docker接受流进行部署
运维·docker·容器
Charary1 小时前
第23天Linux下常用工具(二)
linux·运维·服务器
修修修也1 小时前
【Linux】进程间通信
linux·运维·服务器·操作系统·进程通信
猫头鹰~1 小时前
linux文件
linux·运维·服务器