渗透测试之 -- 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
最后,制作不易,您的点赞是对我最大的支持,感谢大家点赞关注一键三连,未来我还会更新更多红队文章
相关文章:

渗透测试之 -- Linux基础
声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章笔记的只是方便各位师傅学习知识,以下网站涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一、Openssl 1、openssl passwd -1 123 openssl一个开源加密工具包,用于各种解密、加…...

【excel】easy excel如何导出动态列
动态也有多重含义:本文将描述两种动态场景下的解决方案 场景一:例如表头第一列固定为动物,且必定有第二列,第二列的表头可能为猫 也可能为狗;这是列数固定,列名不固定的场景; 场景二࿱…...
[Linux] 进程间通信
进程间通信(Inter-Process Communication, IPC)是指不同进程之间的数据交换与协作。在Linux中,进程间通信有多种方式,每种方式都有其适用的场景。本文将介绍Linux中常见的几种进程间通信方法:管道(Pipe&…...

【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最大的数
CL13 最大的数(20 分) 输入一个有 n 个无重复元素的整数数组 a,输出数组中最大的数。提示:如使用排序库函数 sort(),需要包含头文件#include 。输入: 第一行是一个正整数 n(2<n<20); 第二行包含 n 个不重复的整…...

【Linux】sudo make install 命令往系统中安装了什么 指定目录进行安装
前情提要 假如我们通过源码安装的方式,安装一个动态库,风格往往是这样的: # 克隆仓库 git clone https://github.com/xxx.git# 进入仓库目录 cd xxx编译 # ... 可能有一些校验代码完整性的sh命令# 构建 mkdir build cd build cmake ..# 编…...

RT-DETR融合CVPR[2020]轻量化卷积模块Ghost Module模块
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《GhostNet: More Features from Cheap Operations》 一、 模块介绍 论文链接:https://arxiv.org/abs/1911.11907 代码链接:GitHub - huawei-noah/Effici…...

发布rust crate
文章目录 一、cargo构建的配置类型:dev与release两种1.编译级别2.将 crate 发布到 Crates.io对整个库的注释pub use再导出功能发布crates.io 参考 一、cargo构建的配置类型:dev与release两种 $ cargo buildFinished dev [unoptimized debuginfo] targe…...
Sequelize+Sqlite3使用示例
以下是一个简单的示例,展示了如何在Node.js中使用Express框架、Sequelize ORM以及SQLite数据库来构建一个支持RESTful API的Web应用程序。 一,安装必要的npm包: npm install express sequelize sqlite3 body-parser 二,创建Jav…...
MyBatisPlus 用法详解
MyBatisPlus 用法详解 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了丰富的功能,包括强大的CRUD操作、条件构造器、自动填充、分页插件等&…...

强化学习入门笔记(Reinforcement Learning,RL) 强推!
由于本人的近期研究方向涉及到强化学习,本科时已经学习过了,但是感觉还是有些概念和算法没有学懂学透,所以想重新系统性的学习一下,记录了整个学习过程,而且对当时没有理解不是特别深刻的内容有了一些更加深刻的理解&a…...
C++ QT 工具日志异步分批保存
C QT 工具软件一般可以如此实现日志保存: #define THREAD_ID (reinterpret_cast<qulonglong>(QThread::currentThreadId()) & 0x0FFF) #define TIME (QDateTime::currentDateTime().toString("yyyy_MM_dd_hh_mm_ss_zzz"))#define LOGD(msg) qD…...
win32com库基于wps对Word文档的基础操作
win32com库基于wps对Word文档的基础操作 文章目录 win32com库基于wps对Word文档的基础操作新建/打开文档段落操作(Paragraph)字体设置(Font)图表操作(Shape) 参考链接: WAS API手册 新建/打开文档 import win32com import win32com.client as win32 # 启动WPS进程 word_obj …...
Kubernetes 网络之深度探索:网络模型与 CNI 插件
Kubernetes 网络之深度探索:网络模型与 CNI 插件 在 Kubernetes 中,网络是一个至关重要的组成部分。它不仅决定了容器之间如何通信,还影响着整个集群的可扩展性和稳定性。本节课将深入剖析 Kubernetes 的网络模型以及 CNI(Container Network Interface)网络插件。 一、K…...
Go 模块管理教程:go.mod 与依赖版本控制
Go 模块管理教程:go.mod 与依赖版本控制 Go 从版本 1.11 开始引入了 Go Modules,通过 go.mod 文件来管理项目的依赖关系和版本。Go 模块系统大大简化了 Go 项目的依赖管理,解决了之前 GOPATH 模式的许多问题。本教程将介绍如何使用 Go 模块管…...
大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
大数据 ETL Flume 数据清洗 — 详细教程及实例 1. ETL 和 Flume 概述1.1 ETL(Extract, Transform, Load)1.2 Flume 概述 2. Flume 环境搭建2.1 下载并安装 Flume2.2 启动 Flume 3. Flume 配置和常见 Source、Sink、Channel3.1 Flume Source3.2 Flume Si…...
鸿蒙next版开发:订阅应用事件(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的应用事件订阅机制,允许开发者订阅和处理系统或应用级别的事件。这一功能对于监控应用行为、优化用户体验和进行性能分析至关重要。本文将详细介绍如何在ArkTS中订阅应用事件,并提供示例代码进行说明。 应…...
F litter 开发之flutter_local_notifications
flutter_local_notifications 消息通知 flutter_local_notifications地址 flutter_local_notifications: ^18.0.1class NotificationHelper {//工厂模式调用该类时,默认调用此方法,将实例对象返回出去static NotificationHelper? _instance null;sta…...
springboot参数校验
springboot 参数校验 Validated 以及 Valid - 唏嘘- - 博客园 SpringBoot参数校验Validated、Valid_springboot validate-CSDN博客...

Spring生态学习路径与源码深度探讨
引言 Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学…...

C++:set详解
文章目录 前言一、set概念介绍二、set的使用1. 插入删除相关2. 查找相关1)find2)count3)lower_bound与upper_bound4)equal_range 三、set的值是不能修改的原理四、基于哈希表的set总结 前言 根据应用场景的不同,STL总…...

React 第五十二节 Router中 useResolvedPath使用详解和注意事项示例
前言 useResolvedPath 是 React Router v6 提供的一个实用钩子,用于解析给定路径为完整路径对象。 它根据当前路由上下文解析相对路径,生成包含 pathname、search 和 hash 的完整路径对象。 一、useResolvedPath 核心用途 路径解析:将相对…...

命令行以TLS/SSL显式加密方式访问FTP服务器
昨天留了一个小尾巴~~就是在命令行或者代码调用命令,以TLS/SSL显式加密方式,访问FTP服务器,上传和下载文件。 有小伙伴可能说ftp命令不可以吗?不可以哦~~ ftp 命令本身不支持显式加密。要实现 FTP 的显式加密,可以使…...

入门AJAX——XMLHttpRequest(Post)
一、前言 在上篇文章中,我们已经介绍了 HMLHttpRequest 的GET 请求的基本用法,并基于我提供的接口练习了两个简单的例子。如果你还没有看过第一篇文章,强烈建议你在学习完上篇文章后再学习本篇文章: 🔗入门AJAX——XM…...

Unity优化篇之DrawCall
当然可以!以下是完整、详尽、可发布的博客文章,专注讲解 Unity 的静态合批与动态合批机制,并详细列出它们对 Shader 的要求和所有限制条件。文章结构清晰、技术深度足够,适合发布在 CSDN、掘金、知乎等技术平台。 urp默认隐藏动态…...

第2天:认识LSTM
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 目标 具体实现 (一)环境 语言环境:Python 3.10 编 译 器: PyCharm 框 架: pytorch (二)具体步骤…...
动静态库的使用(Linux下)
1.库 通俗来说,库就是现有的,可复用的代码,例如:在C/C语言编译时,就需要依赖相关的C/C标准库。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。通常我们可以在windows下看到一些后…...

短视频矩阵SaaS系统:开源部署与核心功能架构指南
一、系统架构概述 短视频矩阵系统是基于SaaS(软件即服务)模式的多平台内容管理解决方案,通过开源技术实现账号聚合、智能创作、跨平台分发及数据闭环。系统采用微服务架构,支持高并发场景下的弹性扩展。 二、核心功能模块开发逻辑…...

LRU 和 DiskLRU实现相册缓存器
我是写Linux后端的(golang、c、py),后端缓存算法通常是指的是内存里面的lru、或diskqueue,都是独立使用。 很少有用内存lru与disklru结合的场景需求。近段时间研究android开发,里面有一些设计思想值得后端学习。 写这…...
MidJourney入门学习
1. 引言 MidJourney 是一款由美国科技公司开发的先进文本到图像生成 AI 工具,自 2022 年推出以来迅速在创意产业和社交媒体领域引发轰动。与 Stable Diffusion 不同,MidJourney 以其独特的美学风格、高度细节化的图像生成能力和强大的创意引导功能著称,成为设计师、艺术家和…...

学习笔记(24): 机器学习之数据预处理Pandas和转换成张量格式[2]
学习笔记(24): 机器学习之数据预处理Pandas和转换成张量格式[2] 学习机器学习,需要学习如何预处理原始数据,这里用到pandas,将原始数据转换为张量格式的数据。 学习笔记(23): 机器学习之数据预处理Pandas和转换成张量格式[1]-CSDN博客 下面…...