声明
学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。
笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了解学习哪些知识对于我们渗透测试有帮助,避免盲目地学习降低效率。
B站超链接:linux基础(1)_哔哩哔哩_bilibili
———————————————————————————————————————————
一.MD5与哈希加密
一.openssl passwd -1 123
openssl是一个开源的加密工具包,提供了各种加密、解密、签名、验证等功能
password表示这个命令用于处理密码相关的操作
-1参数是指定使用md5加密算法对密码“123”进行加密处理。md5是一种常用的哈希算法,它将任意长度的输入数据转换为固定长度的输出(通常是128位的哈希值)使用这个命令可以将“123”生成为md5加密后的密文
二.openssl passwd -5 123
同样,openssl是加密工具包
password用于密码处理
-5参数表示是应用SHA-256,哈希算法对密码“123”进行哈希加密处理。SHA-256是一种更安全的哈希算法,他生成的哈希值长度为256位。每次对相同的密码进行SHA-256加密时,由于加密过程中通常会引入随机因素(如盐值等),所以每次生成的密文都是不一样的,这增加了密码的但全兴,即使攻击者获取了密文,也很难通过逆向计算得到原始密码
二.文件管理
创建空文件
touch newfile
删除文件
rm newfile
#执行之后,主文件夹里的"newfile"文档已删除
新建目录
mkdir newfile
删除空文件
rmdir newdir
#执行之后,主文件夹里的"newfile"文件夹已删除
重命名文件
mv file net
移动文件
mv net(文件) ccc(文件夹)
拷贝文件
cp file new.txt
#创建文本file,将file拷贝一下并命名new.txt
硬链接与软链接
硬链接
ln filename harlink
软链接
ln -s filename1 softlink
本质区别
硬链接:同一个文件,多个名称,共享同一个inode信息
一.inode(索引节点)
它是一个数据结构,用于存储文件的元数据信息。每个文件在文件系统中都有一个唯一的inode编号
二.inode的作用
1.存储元件原数据
- 文件类型:普通文件、目录、符号链接、字符设备、块设备、套接字、命名管道等。
- 文件权限:读、写、执行权限。
- 文件所有者和所属组:用户ID(UID)和组ID(GID)。
- 文件大小:以字节为单位的文件大小。
- 时间戳: 最后访问时间(atime)
最后修改时间(mtime)
最后状态改变时间(ctime)- 链接数:指向该inode的硬链接数量。
- 指向实际数据块的指针:文件内容存储的位置。
2.支持硬链接
inode使得在同一文件系统中创建多个文件名指向同一个文件成为可能,这就是硬链接。硬链接共享同一个inode,因此对其中一个硬链接的修改会反映在所有其他硬链接上3.提高文件访问效率
inode机制允许文件系统高效地管理和访问文件。文件系统通过inode号快速找到文件的元数据和数据块位置,而不需要每次都从文件名开始查找。4.支持文件删除和回收
当一个文件被删除时,实际上只是删除了文件名和目录条目,inode中的链接数会减少。只有当链接数为0时,inode及其关联的数据块才会被真正删除并回收。这有助于防止文件碎片化和提高磁盘空间利用率
软链接:不同的文件,指向另一个文件的路径
可用性
硬链接:只能在同一文件系统中使用,不支持跨文件系统
软链接:可以跨文件系统和操作系统使用
支持的对象
硬链接:不支持对目录创建,只能对文件创建
软链接:可以对文件和目录创建
删除的影响
硬链接:删除其中一个硬链接不会影响其他的硬链接,只有当所有硬链接都被删除时,原始文件才会被删除
软链接:删除软链接不会影响原始文件,但如果原始文件被删除,软链接才会失效
创建方式
硬链接:使用ln命令创建
软链接:使用ln -s命令创建,需要指定原始文件的路径
具体例子和用途
软链接常用于方便管理,例如将复杂路径的文件链接到简单路径下,或者解决文件系统空间不足的问题。硬链接则主要用于防止误删除文件
搜索文件
1.which
echo $PATH
which
作用是查找命令的可执行文件路径。例如,如果你想知道“ls”命令在系统中的具体位置,可以使用“which ls”
“echo $PATH”
"echo"适用于输出内容的命令
“PATH”所列出的目录中依次查找该命令的可执行文件
2.locate(local.db)
sudo updatedb
locate whoami.exe
“locate(local.db)”:
“locate”命令用于快速查找文件,他通过查询一个预先构建的文件数据库来实现
不太清楚“(local.db)”在这里的具体作用,可能是在特定情境下与“local.db”相关的查找操作,但一般来说,单独使用“locate”后面跟文件名或部分文件名可以查找相应的文件
“sudo updatedb”:
“sudo”:是用于以管理员权限执行命令的前缀
“updatedb“用于更新”locate“命令所使用的文件数据库。这个操作可能需要写一些时间,但一般来说,单独使用”locate“后面跟文件名或部分文件名可以查找相应的文件
”locate whoami.exe“:
使用”locate“命令查找名为”whoami.exe“的文件在系统中的位置。如果系统中有这个文件,该命令会输出其路径
3.find
find ~ -mtime 2 -ls | sort -k9 -k10 | more
find . -type f -iname '* .sh' -mmin -30 -ls
find. -name '* .svn' -exec rm -rf {} \;
find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
”find ~ -mtime 2 -ls | sort -k9 -k10 | more“;
"find~"表示在用户的主目录(“~”代表主目录)下进行查找
“-mtime 2”表示查找在两天内被修改过的文件
“-ls”用于一场列表形式显示找到的文件信息
“|”是管道符号,将前一个命令的输出作为后一个命令的输入
“sort -k9 -k10”是按照第九列和第十列的内容对文件信息进行排序
“more”用于分页显示结果,方便查看
“find. -type f -iname '*.sh' -mmin -30 -ls”:
“find.”在当前目录下进行查找
“-type f”表示查找类型为普通文件
“-iname '*.sh' "查找文件名以“sh”结尾的文件,注意这里的空格可能会导致不准确匹配,一般用通配符应该紧贴在前面的字符后面,比如“*sh”
“-mmin -30”表示查找在30分钟内被修改过的文件
“-ls”以长列表形式显示找到的文件信息
“find. -name '*.svn' -exec rm -rf {} \;”:
“find”在当前目录下查找
“-name '.svn'”查找名为“.svn”的文件或目录
“-exec rm -rf {};”表示对找到的每个结果执行,“rm -rf”命令,即删除找到的文件或目录
“find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null”:
find / 在整个文件系统(根目录“/”)下进行查找
-user root 表示查找所有者为“root”用户的文件
-type f 表示查找类型为普通文件
-perm -o=w 表示查找其他用户有写权限的文件
-name '*.sh' 查找文件名以“.sh”结尾的文件
2>/dev/null 将错误输出重定向到“/dev/null”,既不显示错误信息
账号相关命令
用户账号数据库相关文件
/etc/passwd:
这是一个重要的系统文件,存储了系统中用户账号的基本信息
每行代表一个用户,包含了用户名、密码占位符、用户id、用户组id、用户描述信息、用户主目录、用户默认shell等字段
/etc/shadow:
这个文件也与用户账号相关,主要存储用户密码的加密信息一级密码的一些属性,如密码最后一次修改时间、密码最短使用期限、密码最长使用期限等
只有具有足够权限的用户(通常是root)才能读取这个文件,以提高密码的安全性
组合账号相关命令
cat /etc/shadow 查看用户账号信息的同时,也可以间接了解用户所属的组信息,因为其中包含了用户组id。但这并不是专门用于查看组账号的最佳方式,通常使用cat /etc/group 来查看组账号信息
创建用户
1. sudo useradd -m new
useradd 创建用户需要手动设置密码
-m 创建用户并生成主目录
new 新用户用户名
sudo passwd new #设置新用户密码
2. sudo adduser neww
adduser 会自动创建用户的主目录,并为新用户设置基本的环境配置
id neww
验证是否成功
sudo usermod -aG sudo neww
将新用户添加到管理权限(sudo)
禁用账号相关命令
sudo passwd -l username:
"sudo" 表示以管理员权限执行命令
“passwd”适用于管理用户密码的命令
“-l”选项用于锁定用户账号。当执行这个命令后,指定的“username”用户账号将被锁定,无法登录
chage -E 1990-01-01 kali:
“chage”命令用于修改用户密码的过期信息
“-E”选项后面跟着一个日期,表示设置用户账号的过期时间。在这个例子中,将"kali"用户账号的过期时间设置为“1990-01-01”,通常意味着在这个日期之后该账号将无法使用,除非重新设置过期时间或进行其他管理操作
passwd -S username:
“passwd”命令的另一个用法
“-S”选项用于显示指定用户账号的密码状态信息,包括账号是否被锁定、密码是否已设置、密码最后一次修改时间等
文件系统相关命令
Linux系统中一切都是文件
在Linux系统中,几乎所有的资源都被抽象为文件,包括硬件设备(如硬盘、网卡等)、进程间通信、网络连接等。这种设计理念使得对各种资源的管理可以通过统一的文件操作方式来进行,大大简化了系统的架构和管理
权限介绍
在Linux系统中,文件权限是非常重要的概念,它决定了谁可以读取、写入或执行文件。Linux文件权限分为三种类型:用户(user)、组(group)和其他(others)。每种类型都有三种权限:读(read)、写(write)和执行(execute)
文件权限的表示
字符表示法:
r
:读权限,表示可以读取文件内容。w
:写权限,表示可以修改文件内容。x
:执行权限,表示可以执行文件。-
:表示没有该权限。
数字表示法:
- 读(r) =
4
- 写(w) =
2
- 执行(x) =
1
每 3 位权限组合的数值就是这三个权限的和。例如:
- 用户(user):
7
(rwx)——拥有读、写、执行权限。 - 组(group):
5
(r-x)——拥有读、执行权限。 - 其他用户(other):
5
(r-x)——拥有读、执行权限。
chmod 755 filename
常用权限数值组合
777:所有人都有读、写、执行权限(rwxrwxrwx),完全开放。
755:用户有全部权限,组和其他用户只有读和执行权限(rwxr-xr-x),常用于公开的可执行文件。
700:只有用户有全部权限,组和其他用户无权限(rwx------),用于私密文件。
644:用户有读写权限,组和其他用户只有读权限(rw-r--r--),常用于公开的文档文件。
查看权限
ls -la /etc/passwd:
ls是列出目录内容的命令
-l选项以长格式显示文件信息,包括文件的权限、所有者、所属组、文件大小、修改时间等详细信息
-a 选项显示包括隐藏文件在内的所有文件
/etc/passwd 是要查看的文件路径,这个文件存储了系统用户账号的基本信息。通过这个命令可以看到 /etc/passwd 文件的权限设置、所有者、所属组等信息
更改文件所有者
chown root file:
chown 是改变文件所有者的命令
root是新的所有者用户名,这里表示将文件的所有者改为“root”用户
file是要更改所有者的文件名称。执行这个命令后,文件的所有者将变为“root”用户
修改文件权限
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:
同样以管理员权限执行修改文件权限的操作
u+x表示给文件所有者增加执行权限
g+w表示给文件所属组增加写权限
o-r表示去除其他用户的读权限
file是目标文件
chmod 400 <file>:
chmod命令直接以数字方式设置文件权限
400是权限的数字表示,其中第一位数字“4”表示文件所有者的权限,这里代表读权限(r),因为读权限对应的数字是4;后两位数字“00”分别表示文件所属组和其他用户没有任何权限
<file>是要设置权限的文件
系统日志相关命令
ls -l /var/log:
ls 是列出目录内容的命令
-l 选项以长格式显示文件和目录的详细信息,包括权限、所有者、所属组、文件大小、修改时间等
/var/log 是系统日志文件所在的目录。执行这个命令可以查看该目录下的日志文件列表及相关信息
认证信息日志相关命令
sudo tail -3 /var/log/auth. log:
sudo 表示以管理员权限执行命令
tail命令用于查看文件的末尾部分
-3表示显示文件的最后三行内容
/var/log/auth. log 是存储系统认证信息的日志文件,包括用户登录、认证失败等信息。执行这个命令可以查看最近的三条认证相关的日志记录
二进制日志相关命令
who /var/log/wtmp | tail -5:
who 命令用于显示当前登录的用户信息
/var/log/wtmp是一个二进制日志文件,记录了系统的登录和注销信息
|是管道符号,将前一个命令的输出作为后一个命令的的输入
tail -5 表示显示最后5行内容。执行这个命令可以查看最近的五次登录或注销记录
dmesg
dmesg:这个命令用于显示内核环形缓冲区(kernel rinffg buer)中的信息,包括系统启动时的硬件检测信息、内核模块加载信息、设备驱动的初始化信息等。它可以帮助用户了解系统的硬件状态和内核的运行情况
dmesg | grep "module"
查看内核加载的所有模块信息
dmesg | grep "eth0"
查看硬件设备的加载日志(例如网络设备)
dmesg --level=err,warn
检查系统启动过程中是否有硬件错误
dmesg -T
查看系统启动的时间戳
systemd日志相关命令
journalctl:这是一个用于查看和管理systemd日志的命令。systemd是Linux系统的初始化系统和服务管理器,他会记录系统和服务的启动、运行和错误信息等日志。journalctl可以根据不同的参数来筛选、查看特定时间段、特定服务或特定优先级的日志记录
查看系统最近启动后的日志:
journalctl -b
查看SSH服务的相关日志:
journalctl -u ssh
查看2024年10月1日至10月15日的日志:
journalctl --since "2024-10-01" --until "2024-10-15"
查看警告及以上级别的日志信息:
journalctl -p warning
实时跟踪日志更新(适合实时监控服务):
journalctl -f
存储管理相关命令
内存使用量
free -m:
free 命令用于显示系统内存的使用情况
-m 选项表示以兆字节(MB)为单位显示内存信息。执行这个命令后,会显示系统的总内存、已使用内存、可用内存、缓冲内存和缓存内存等信息,帮助用户了解系统当前的内存使用状态
磁盘使用量
df -hT:
df 命令用于显示磁盘空间使用情况
-h 选项表示以人类可读的格式(如KB、MB、GB等)显示磁盘空间大小
-T 选项显示文件系统类型。执行这个命令可以查看各个磁盘分区的总大小、已使用空间、可用空间、可用空间以及文件系统类型等信息
文件或目录大小
sudo du ./* -hsc:
sudo 表示以管理员权限执行命令
du 命令用于统计文件或目录的磁盘使用空间
./* 表示当前目录下的所有文件和目录
-h 选项以人类可读的格式显示大小
-s 选项表示汇总显示每个参数的总大小
-c 选项表示在最后显示总计。执行这个命令可以查看当前目录下每个文件和目录的大小,并在最后显示总计大小。
查看硬盘分区
sudo fdisk -l:
sudo以管理员权限执行
fdisk 是一个磁盘分区工具
-l 选项表示列出系统中的所有磁盘分区信息,包括磁盘的大小、分区类型、分区表好、其实和结束扇区等。这个命令可以帮助用户了解系统的硬盘分区情况
挂载分区
sudo mount /dev/sdb1 /mnt/usb:
sudo 以管理员权限执行
mount 命令用于将一个文件系统挂载到指定的目录
/dev/sdb1 是要挂载的磁盘分区设备路径
/mnt/usb 是挂载点,及要将分区挂载到的目录。执行这个命令后,系统可以访问该分区中的文件和目录,就像访问本地文件系统中的其他目录一样
基本网络枚举
基本网络工具
ifconfig:
是一个用于配置和显示网络接口信息的命令行工具
它可以显示网络接口的IP地址、子网掩码、MAC地址等信息,还可以用于启动、停止或配置网络接口
IP addr:
也是用于查看和管理网络接口的命令
它提供了比ifconfig更详细和灵活的网络接口信息显示,包括接口的状态、IP地址、子网掩码、广播地址等
sudo ifdown eth0:
sudo 表示以管理员权限执行命令
ifdown用于关闭指定的网络接口
eth0 是网络接口名称,这里表示关闭名为"eth0"的网络接口
sudo ifup eth0:
同样以管理员权限执行
ifup用于启动指定的网络接口
eth0表示启动名为”eth0“的网络接口
网络配置
/etc/network/interfaces:
这是一个系统文件、用于配置网络接口的静态IP地址、子网掩码、网关等信息
在一些Linux发行版中,通过编辑这个文件可以实现网络接口的手动配置
NetworkManager:
是一个动态网络控制和配置守护进程
它可以自动管理网络连接,包括有线网络、无线网络和VPN连接等
NetworkManager提供了图形界面和命令行工具来配置和管理网络,使得网络配置更加方便和灵活。他可以自动检测网络变化,并根据配置自动连接到可用的网络
网络连接相关命令
网络连接状态查看工具
netstat -natup
netstat 是一个用于显示网络连接、路由表、接口统计等信息的命令
-n 选项表示以数字形式显示地址和端口号,避免进行域名解析
-a 选项显示所有的连接和监听端口
-t 选项显示TCP连接
-u 选项显示UDP连接
-p 选项显示与连接相关的进程id和程序名称。执行这个命令可以查看系统当前的网络连接状态,包括连接的协议、本地地址和端口、远程地址和端口等信息
ss -natup
ss 是另一个用于显示网络套接字状态的工具,它比netstat更快速和高效
选共享的含义与setstat中的类似,用于显示TCP和UDP连接的状态、地址和端口信息,以及相关的进程信息
二层地址查看工具
arp -en:
arp是地址解析协议(Address Resolution Protocol)的工具
-e选项以详细格式显示ARP缓存表
-n选项以数字形式显示IP地址,避免进行域名解析。执行这个命令可以查看系统的ARP缓存表,其中包含了IP地址和对应的MAC地址映射关系,用于在局域网中进行二层地址解析
路由信息相关工具
route:
用于显示和管理系统的路由表
可以查看系统当前的路由信息,包括目标网络、网关、子网掩码等。还可以用于添加、删除或修改路由条目
ip route:
是IP命令的一部分,用于管理系统的路由表
它提供了更强大的路由管理功能,可以进行更复杂的路由配置操作
sudo ip route add 10.13.30.0/24 dev eth1:
sudo 表示以管理员权限执行命令
IP route add 用于添加一条路由条目
10.13.30.0/24 是目标网络地址和子网掩码
dev eth1 表示通过名为”eth1“的网络接口达到目标网络。执行这个命令可以向系统的路由表中添加一条路由,指定如何到达特定的网络
路由追踪工具
traceroute offensive-security.com:
traceroute是一个用于跟踪数据包从本地主机到目标主机所经过的路由路径的工具
offensive-security.com是目标主机的域名或IP地址。执行这个命令会逐条显示数据包经过的路由器的IP地址和响应时间,帮助用户了解网络连接的路径和可能存在的网络问题
SSH服务
启动服务
sudo systemctl start ssh:
sudo 表示以管理员权限执行命令
systemctl是用于管理系统服务的工具
start ssh是启动名为”ssh“的服务,也就是启动ssh服务器,是其他设备可以通过ssh协议连接到这台主机
连接本地主机
ssh root@localhost:
ssh secure shell的客户端命令
root表示要以”root“用户身份进行登录
@localhost表示连接到本地主机。执行这个命令可以使用ssh协议以”root“用户身份登录到本地主机,如果ssh服务已启动且配置正确,并且用户有相应的权限,就可以成功登录并获得一个远程命令行会话
配置文件
/etc/ssh/sshd config:
这是ssh服务器的主要配置文件
其中包含了各种参数,可以用来配置ssh服务器的行为、比如端口号、允许的登录用户、认证方式、访问控制等。通过编辑这个文件,可以根据具体需求对ssh服务器进行定制化配置
客户端配置
hash knownHosts yes:
通常情况下,~/.ssh/known_hosts文件用于存储已知的远程主机的公钥信息,以确保连接的安全性。这个配置选项可能只是对一直主机文件中的主机名进行哈希处理,这样可以提高一定的安全性,但具体效果可能因不同的ssh实现而有所差异
~/.ssh:
这是用户主目录下的一个目录,用于存储ssh客户端的配置和相关文件
通常包含私钥文件(如id_rsa)、公钥文件(如id_rsa.pub)以及一直主机文件(known_hosts)等。这些文件用于ssh客户端的身份认证和连接管理
远程拷贝
history
scp [email protected]:/home/kali/.bashrc Copiedbashrc:
scp是secure copy 的缩写,用于在不同主机之间安全的复制文件
[email protected]表示从IP地址为1.1.1.1的主机上以”root“用户身份进行操作
/home/kali/.bashrc是源文件路径,即要从远程主机上复制的文件
Copiedbashrc是目标文件名称或目标路径,即将远程文件复制到本地后的名称或存放位置。这个命令会从指定的远程主机复制.bashrc文件到本地,并命名为Copiedbashrc
scp passwd -p kali ssh [email protected]
查看历史命令
history:这个命令用于显示历史记录,即之前在当前终端会话中执行过的命令列表。可以通过查看历史记录来快速重复执行之前的命令,或者查找之前执行过的特定命令
标签:文件,sudo,用户,命令,sec,Linux,泷羽,权限,链接 From: https://blog.csdn.net/m0_68984471/article/details/144020763