当前位置: 首页 > news >正文

渗透测试之 -- Linux基础

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

一、Openssl

1、openssl passwd -1 123

openssl一个开源加密工具包,用于各种解密、加密、签名、验证等。passwdod表示相关操作。

-1参数指定使用MD5加密算法对密码“123”进行加密处理。MD5常用Hash算法,将任意长度输入数据转换为固定长度输出。

2、openssl passwd -5 123

-5指定SHA-256哈希算法对密码进行加密

二、linux操作

1、文件管理

1、创建空文件以及删除文件

2、新建目录以及删除空目录

3、重命名文件、移动文件、拷贝文件

4、ln -s创建软链接
  • 创建指向原文件的软链接

ln -s original.txt symlink.txt

5、创建硬链接
  • 创建指向原文件的硬链接

软链接(Symbolic Link)
软链接,又称符号链接,是指向原文件路径的链接,类似于快捷方式。软链接文件本身只是一个指针,指向目标文件的位置。删除原文件后,软链接会失效,成为“断开的链接”。软链接可以对文件和目录创建,因此在需要引用目录或文件位置的情况下非常有用。

硬链接(Hard Link)
硬链接是指向原文件数据块的另一个文件名,两个文件共享相同的存储数据块。删除其中一个硬链接并不会影响数据的存在,文件内容依然可以通过其他硬链接访问。硬链接只能对文件创建,不支持对目录创建。只有当删除所有指向同一数据块的硬链接之后,文件数据才会真正被删除。

三、搜索文件

1. which:查找可执行文件

  • 查找系统命令的可执行文件路径,通常用于确定某个命令所在的具体位置。

2、 echo:查看 PATH 环境变量

echo $PATH

3、locate:快速查找文件
  • 使用本地数据库 local.db 快速查找文件,适用于不需要实时数据的情况下进行文件查找。使用前通常需要更新数据库。

4、find:在文件系统中查找文件
1、find <路径> <条件> <操作>

2、查找不同类型文件

查找普通文件(type -f)、目录(type -d)、符号链接(type -l)、块设备文件(-type b)、

字符设备文件(type -c)、套接字文件(type -s)、管道文件(type -p)

3、-mtime -2

find <路径> -mtime -2

find <路径> -atime -1       -atime 小时 

find <路径> -ctime -30     -ctime 分钟

  • 查找过去两天内修改过的文件
4、-size +20M

find -size -10k    k:KB、M:MB、G:GB

  • 按照文件大小查找。+是大于,-是小于

5、按权限查找

find <路径> perm -777

find <路径> -o=w

w:写操作,数字2。

x:执行操作,数字1

r:读操作,数字4

6、按照用户组来查找文件

find -user root

find -group root

查找组为admin的文件

7、-exec追加操作

find /path/to/search -name "*.tmp" -exec rm {} \;

删除在/path/to/search找到的名字后缀为tmp的所有文件,(-exec)并且追加一条命令,(rm)删除找到的每个文件路径,结束命令。

{} 表示找到的每个文件的路径

\; 用于表示命令结束。

8、批量移动文件路径

find <路径> -name "*.jpg" -exec mv {} <路径> \;

批量的将找名字后缀为jpg的文件,并且追加一条命令将找到的文件路径批量移动到第二个路径中去,结束命令。

注意:name区分大小写,iname不区分大小写
9、删除-delete,查找并输出错误到 /dev/null

find <路径> -name "*.txt"  -exec -delete

find <路径> -name "*.txt " 2>/dev/null

10、复杂操作

find . -mtime -2 -ls | sort -k9 -k10 | more

查找两天内修改的文件并列出来,并且将其进行按文件名和时间排序

"|"符号,例如A|B,A的操作结果传入到B中

sort -k9 -k10:按照文件名和时间进行排序。

find . -type f -iname '*.sh' -mmin -30 -ls

查找30分钟内修改过后缀名为sh的文件类型为普通文件的文件并列出来

find . -name '*.svn' -exec rm -rf {} \;

删除查找为svn后缀名的文件并且删除

rm -rf:递归删除文件或目录

find / -user root -type f -perm -o=w -name '*.sh' 2>/dev/null
查找 所有者root的、文件类型为普通文件的、其权限为写的,名后缀为sh的文件,忽略错误信息的输出。/dev/null

which:适用于定位已安装命令的执行路径。
echo $PATH:输出 PATH 环境变量内容,便于查看系统查找可执行文件的路径。
locate:基于数据库的快速文件查找工具,适用于一般的文件查找需求,不提供实时结果。
find:适合实时、精确的文件和目录查找,支持丰富的查找条件(如时间、权限、所有者等),适用于需要精确控制的查找任务。

四、用户和组管理账号

1. 用户账号数据库相关文件

/etc/passwd 是一个文本文件,其中包含了登录 Linux 系统所必需的每个用户的信息。它保存用户的有用信息,如
用户名:密码:用户 ID:群组 ID:用户 ID 信息:用户的家目录: Shell

/etc/shadow:文件是/etc/passwd 的影子文件,这个文件并不由/etc/passwd 而产生的,这两个文件是应该是对应互补的;shadow内容包括用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有root权限可以读取和操作

2. 组账号相关命令

cat /etc/group 

  • 可以查看用户账号所属组的信息,因为其中包含了用户组 ID。

3. 添加用户
1、使用useradd命令。

但是使用useradd命令密码需要自己设置。

sudo useradd -m newuser

  • -m:创建用户的同时为其生成主目录(通常位于 /home/newuser)。
  • new:新的用户名

sudo passwd newuser

  • 为新建用户设置密码。

2、使用adduser 命令

adduser newuser

id newuser 

查询newuser的用户信息,这会显示新用户的 UID、GID 以及所属组的信息。

  • 系统会提示输入新用户的密码、用户信息(如全名、房间号等),这些可以直接按回车跳过。
  • adduser 命令会自动创建用户的主目录,并为新用户设置基本的环境配置。
3. 为用户添加管理员权限

sudo usermod -aG sudo newuser

 4、禁用账号相关命令

sudo passwd -l username

-l 锁定账户禁止登录

username 指定用户名

5、设置账户过期时间

chage -E 1990-1-1 root

设置账户过期时间,

五、文件权限管理

在Linux中,每个文件和目录的权限分三种,用户(user)组(group)、其他用户(other)。每种又分三种权限,R(read)、W(wirte)、X(execute)。

  • 文件类型:第一个字符表示文件类型。每个文件的权限都有七个-符号表示,例如drwxr-x---,第一个-表示文件类型,其次每三个“-”符号分别表示用户、组、其他用户的权限。
    • - 表示普通文件。
    • d 表示目录。
    • l 表示符号链接。
    • b 表示块设备文件。
    • c 表示字符设备文件。
    • R:读文件,列出文件的权限。用数字4表示R
    • W:写入或删改文件的权限。用户数字2表示W
    • X:执行文件的权限。用数字1表示X
1、为文件赋予权限

chmod 777 filename

表示为文件filename赋予用户、组、其他用户都能读写执行的权力。

2. 查看文件权限

 ls -la filename

命令查看文件权限和属性。

3. 更改文件所有者

chown root: filename

将filename文件的所有者改为root

4. 修改文件权限

sudo chmod u=rwx,g=rw,o=r file

使用chmod命令更改文件各个用户的权限,u是文件所有者、g是同组用户、o是其他用户

sudo chmod u+x,g+x,o+w file

增加权限使用”+“符号,减少权限使用“-”符号

sudo chmod u-x,g-x,o-w file

常用数字格式进行更改

chmod 777 666.txt

递归授权:chmod -R <权限> <目录>

-R:表示递归处理,将指定目录下的所有文件和子目录都设置为相同的权限。

代码含义为将选定目录下的所有文件和子目录都统一设置为统一权限。

六、日志查看与管理

1. 系统日志查看命令

ls -l /var/log

目录通常包含系统日志文件,例如系统启动日志、内核日志、安全日志等。这条命令适合用来快速了解日志目录下有哪些文件和它们的基础信息。

其中包含文件权限、文件所有者及其所在组、文件大小、最后修改时间。

2. 认证信息日志查看命令

sudo tail -3 /var/log/auth.log

查看认证日志文件的最后三条文件。

tail -3 用于读取文件最后三行

/var/log/auth.log文件中包含系统的认证信息,包括用户登录成功、失败及权限提升等信息。

注意:kali中没有auth.log文件

3. 二进制日志日志查看命令

who /var/log/wtmp | tail -5

显示5条最近用户登录、注销日志。

who命令来指定文件,tail -5显示最近的5次信息。

4. 内核日志查看命令

dmesg | grep "module"

查看内核加载的所有模块信息

dmesg | grep "eth0"

查看硬件设备加载日志。

dmesg --level=err,warn

检查系统启动过程中是否有硬件错误

dmesg -T

查看系统启动的时间戳

5. systemd日志查看命令

journalctl -b

查看系统最近启动后的日志

journalctl -u sshd

查看ssh服务

journalctl --since "2024-11-01" --until "2024-11-12"

查看自己选择起始时间和结束时间的日志。

journalctl -p warning

查看警号级别的日志

journalctl -f

实时跟踪日志

七、系统资源管理命令

1. 内存使用量

free -m

-m以MB为单位输出

2、磁盘使用量

df -hT

  • -h 选项将输出以易读格式(如 KB、MB、GB)显示磁盘空间大小。执行后可以查看磁盘的总大小、已用空间、可用空间以及文件系统类型等信息。
  • -T选项系那是文件系统类型。
3. 文件或目录大小

sudo du ./* -hsc

du 用于统计文件或目录的磁盘使用空间。

./*表示当前目录下的所有文件和目录。

-h 选项将输出以易读格式显示文件或目录大小。

-s 选项显示目录的总大小。

-c 选项在最后显示总计大小。执行此命令可查看当前目录下每个文件和目录的大小,并显示总大小。

4. 查看硬盘分区

sudo fdisk -l

fdisk是一个磁盘分区管理工具

-l 选项显示系统中所有磁盘分区的详细信息,包括磁盘的大小、分区类型、分区编号、起始和结束扇区等

5. 挂载分区

sudo mount /dev/sdb /mnt/usb

mount 命令用于将设备挂载到指定的目录。

/dev/sdb是要挂载的设备,/mnt/usb是挂载的目标目录

八、网络管理工具

1、ipconfig

用于显示网络配置等信息

2、ip addr

查看和管理网络接口

3、sudo ifdown eth0、sudo ifup eth0

关闭、开启指定的网络接口eth0

4、网络配置信息

/etc/network/interfaces

系统文件,用于配置网络接口的静态 IP 地址、子网掩码、网关等信息。

5、网络状态检查之netstat

netstat显示网络连接、路由表、接口统计等信息的命令。

-n 以数字形式显示地址和端口,避免进行域名解析。

-a 显示所有的连接和监听端口。

-t 显示 TCP 连接。

-u 显示UDP连接。

-p 显示相关的进程名称。

是显示网络套接字状态的工具,速度更快,功能类似 `netstat`,用于显示 TCP 和 UDP 连接的状态、地址和端口信息。

ss -natup

6、arp

arp -en

命令用于查看系统的 ARP 缓存表,显示 IP 地址与对应 MAC 地址的映射关系,用于在局域网中进行二层地址解析。

-e详细格式显示 ARP 缓存表。

-n以数字格式显示 IP 地址,避免域名解析。

7、路由信息查询route

ip route

sudo ip route add 192.168.0.0/24 dev eth0

使用route添加路由指定网络通过eth0接口

traceroute路由跟踪工具

traceroute ip

traceroute traceroute offensive-security.com

九、SSH 服务与配置

1、启动与关闭

sudo systemctl start ssh

systemctl是管理系统服务的工具。

启动ssh服务。

sudo systemctl stop ssh

关闭ssh服务

2、ssh连接服务
ssh root@localhost

使用ssh远程连接服务,以root 用户身份登录本地主机。

3、配置文件

/etc/ssh/sshd_config

4. 客户端配置

hash knownHosts yes

表示使用哈希存储

  • SSH 客户端配置文件(通常为 ~/.ssh/config)中的一个配置选项。
  • 该选项用于控制是否将已知主机文件(~/.ssh/known_hosts)中的主机名和 IP 地址以哈希格式存储。
  • SSH 客户端会将已知主机的密钥信息存储在 ~/.ssh/known_hosts 文件中,

十、远程拷贝

1、scp命令

scp [源文件路径] [目标路径]

scp root@192.168.1.1:/home/kali/.rrr RRR

表示使用root用户身份使用scp命令对192.168.1.1的/home/kali/.rrr文件拷贝下来,并命名为RRRS

十一、历史记录查看

history

最后,制作不易,您的点赞是对我最大的支持,感谢大家点赞关注一键三连,未来我还会更新更多红队文章

http://www.lryc.cn/news/482870.html

相关文章:

  • 【excel】easy excel如何导出动态列
  • [Linux] 进程间通信
  • 【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最大的数
  • 【Linux】sudo make install 命令往系统中安装了什么 指定目录进行安装
  • RT-DETR融合CVPR[2020]轻量化卷积模块Ghost Module模块
  • 发布rust crate
  • Sequelize+Sqlite3使用示例
  • MyBatisPlus 用法详解
  • 强化学习入门笔记(Reinforcement Learning,RL) 强推!
  • C++ QT 工具日志异步分批保存
  • win32com库基于wps对Word文档的基础操作
  • Kubernetes 网络之深度探索:网络模型与 CNI 插件
  • Go 模块管理教程:go.mod 与依赖版本控制
  • 大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
  • 鸿蒙next版开发:订阅应用事件(ArkTS)
  • F litter 开发之flutter_local_notifications
  • springboot参数校验
  • Spring生态学习路径与源码深度探讨
  • C++:set详解
  • (一)- DRM架构
  • Docker了解
  • 【DL】YOLO11 OBB目标检测 | 模型训练 | 推理
  • vue读取本地excel文件并渲染到列表页面
  • github 以及 huggingface下载模型和数据
  • 使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏
  • 51c视觉~合集6
  • STM32(hal库)在串口中,USART和uart有什么区别?
  • 机器学习、深度学习面试知识点汇总
  • FPGA高速设计之Aurora64B/66B的应用与不足的修正
  • 如何通过PHP脚本自动推送WordPress文章至百度站长平台