Linux提权--本地环境变量文件配合 SUID

免责声明:本文仅做技术交流与学习...

目录

背景:

前提条件:

演示:

实战中如何操作?

探针发现:


背景:

环境变量提权-------->

背景:

管理员编译了程序,给予了程序管理员运行的方案,

攻击通过对程序的运行调试反编译等得到了程序的运行大概逻辑,

尝试对程序调用的环境变量进行复制后覆盖,导致的程序加载继承权限.


前提条件:

ROOT 用户对某个第三方程序给予了 SUID 权限 .


演示:

某特殊程序有高权限-->调用环境变量,覆盖-->运行程序(脚本)

//假设管理员自己写了个脚本叫demo.c
//--->用系统命令执行ps命令(查看进程命令).
---------------
//demo.c
#include<unistd.h>
void main()
{setuid(0);setgid(0);system("ps");
}

---这里你执行ps命令(或执行demo.c),会调用自带的环境变量.  

demo.c ---> 会执行ps命令自带的环境变量路径:/bin/ps
 

---通过执行命令进行反编译.-->生成shell文件,再给他一个管理员权限.

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

--->现在再执行shell文件 (相当于ps命令)

编译后shell(给到suid权限)可执行文件执行后相当于会运行ps命令
复制bash到当前目录取名ps
如果shell再次执行ps==>bash
####没有环境变量就找当前目录对应程序名有环境变量就找环境调用

#创建普通用户
useradd xiaodi
id xiaodi

---咋办,shell文件还是ps原始的样子.

--->设置环境变量

原始:ps命令
由于环境变量加了tmp执行ps执行/tmp/ps
ps又是通过bash复制的就是bash
shell执行bashsuid执行bash就是直接提权

实战中如何操作?

探针发现:

find / -user root -perm -4000 -print 2>/dev/null
实战中的发现挖掘这类的安全问题:
1、先获取suid所有程序
2、去除系统自带的一些命令(筛选第三方或编译等的程序) 
3、下载这个程序进行反编译或找源代码看运行结果是干什么 
4、思考程序有没有执行一些环境变量命令(ps ping su sudo等) 
5、尝试通过复制suid提权的命令(findbash)复制替换原有的执行命令(先添加一个环境变量)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05-Fortran基础--Fortran文件操作

05-Fortran基础--Fortran文件操作 0 引言1 文件操作有关的关键字介绍1.1 打开文件&#xff08;OPEN&#xff09;1.2 文件关闭&#xff08;CLOSE&#xff09;1.3 文件查询&#xff08;INQUIRE&#xff09;1.3 文件读写&#xff08;read/write&#xff09;1.4 文件操作符&#xf…

二叉树介绍

引入 定义 区别 定义不同 形态不同 基本形态

重生奇迹mu再生宝石怎么用有什么用

重生奇迹mu再生宝石有2个用处&#xff1a; 1、在玛雅哥布林处给380装备加PVP属性4追4以上的380级装备,守护宝石一颗,再生宝石一颗,成功得到PVP装备,失败宝石消失,装备无变化&#xff1b; 2、给非套装点强化属性用法跟祝福,灵魂,生命一样直接往装备上敲,成功得到随机强化属性一…

睿尔曼机械臂ROS控制

下载git工程 git clone https://github.com/RealManRobot/rm_robot.git安装配置 catkin build rm_msgs source devel/setup.bash catkin build source setup.bash这里注意&#xff0c;如果采用setup.sh多半不会成功&#xff0c;必须要source setup.bash文件&#xff0c;ros才…

vue2项目升级到vue3经历分享5

写到第5篇了&#xff0c;解决了很多问题&#xff0c;还有一些需要调整 1 el-input-number指令兼容性调整 下面这个可编辑的表格&#xff0c;全是0&#xff0c;于是需要一个指令&#xff0c;让它自己实现如果是0&#xff0c;就置空&#xff1b;如果是数字就是格式化为千分位&…

HTTP1.1的优化措施

3.2 HTTP/1.1 如何优化&#xff1f; 可以从以下三个方面来优化http/1.1协议&#xff1a; 尽量避免发送 HTTP 请求&#xff1b; 在需要发送 HTTP 请求时&#xff0c;考虑如何减少请求次数&#xff1b; 减少服务器的 HTTP 响应的数据大小&#xff1b; 避免发送HTTP请求 对于…

文献阅读——中国农产品期货的正负价格泡沫(LPPLS)

Positive and negative price bubbles of Chinese agricultural commodity futures Fang, Ming, Yizhou Lin, and Chiu-Lan Chang. “Positive and negative price bubbles of Chinese agricultural commodity futures.” Economic Analysis and Policy 78 (2023): 456-471. 经…

React 第三十章 前端框架的分类

现代前端框架&#xff0c;有一个非常重要的特点&#xff0c;那就是基于状态的声明式渲染。如果要概括的话&#xff0c;可以使用一个公式&#xff1a; UI f&#xff08;state&#xff09; state&#xff1a;当前视图的一个状态f&#xff1a;框架内部的一个运行机制UI&#xff1…

ADS基础介绍篇1

一. ADS简介 常用的射频仿真软件有ADS和AWR&#xff0c;ADS(Advanced Design system)最传统&#xff0c;是Agilent公司于2008年推出的电磁场仿真器&#xff0c;可提供原理图设计和layout版图设计。仿真功能十分强大&#xff0c;可提供从无源到有源&#xff0c;从直流到交流&am…

【激活函数--中】激活函数和阶跃函数的可视化及对比

文章目录 一、Python中绘制阶跃函数的图形二、实现和可视化Sigmoid函数2.1 Python实现2.2 可视化Sigmoid函数 三、比较Sigmoid函数与阶跃函数3.1 Sigmoid函数与阶跃函数的差异3.2 Sigmoid函数与阶跃函数的共同点 一、Python中绘制阶跃函数的图形 在Python中实现阶跃函数的代码…

SD-WAN提升Microsoft 365用户体验

随着数字化时代的到来&#xff0c;SaaS应用如Microsoft 365已经成为各类企业的主流选择。在这一趋势下&#xff0c;企业需要以更加灵活、高效的方式使用Microsoft 365&#xff0c;以满足日益增长的业务需求。而传统的网络基础设施可能无法满足这一需求&#xff0c;因此&#xf…

Gitlab:从其它项目组里导入一个项目

1.首先获取原项目的http地址 http://ip/projectGroup/ProjectX.git其中&#xff0c;ip 为公司gitlab内网地址。 2.进入目的项目组进行创建 首先&#xff0c;需要拥有一个该组拥有者权限的账号&#xff0c;才能进行后续的操作。 2.1.点击创建项目按钮 2.2.选择导入项目 其中…