您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

Linux 提权—突破受限制的shell权限

时间:2020-02-16 18:35:51  来源:  作者:
Linux 提权—突破受限制的shell权限

 

 

​在我们渗透测试的过程中,当拿到普通用户的shell后,可能会因为各种各样的权限限制,导致无法进行更多的操作,这个时候我们就要想办法进行提权。

 

收集环境信息

一旦我们拿到了受限制的shell,第一步是尽可能多地收集有关我们当前shell环境的信息。收集的信息将让我们了解我们所处的受限制的shell类型,以及所提供的功能和我们可以使用的技术。我们可以做以下的测试:

 

  • 检查可用的命令,方法是手动尝试,按两次TAB键看看能不能列出文件和目录
  • 检查使用SUID权限配置的命令,看看它们是不是归root用户所有
  • 检查可以使用的命令列表sudo,看看能不能用我们的密码执行其他用户的权限命令
  • 检查有什么语言,如Python,expect,perl,ruby等,他们会在以后派上用场
  • 检查重定向运算符是否可用,例如'|' (pipe), “>”, “>>”, “<”
  • 检查转义字符和执行标记,例如:( “;”冒号),“&”(后台支持),“’”(单引号),“”(双引号),“$(”(shell执行标记),“${”

 

然后,自己在本地搭建环境,进行各种测试,根据报错信息,确认是哪种类型的shell...

常见的shell类型报错如下:


rbash

Linux 提权—突破受限制的shell权限

 

rksh

Linux 提权—突破受限制的shell权限

 

rzsh

Linux 提权—突破受限制的shell权限

 

lshell

Linux 提权—突破受限制的shell权限

 

 

一些受限制的shell在错误消息中会显示其名称,有些则没有。


 

常用的突破技术


我们从基础开始、我们可以使用一些非常简单的技术逃避受限制的shell来执行命令或访问我们不能或者不应该访问的系统区域、、、这些技术大多依赖简单的命令转义字符,重定向运算符甚至linux系统shell变量污染、、、我们来分析一下:

1.Console编辑(vim)

Vim有一个功能,允许我们在其中运行脚本和命令、如果vim可用,可以用一下的命令来进行测试:

:!/bin/ls -l b*

Vim会离开编辑器并显示“ls -l b*”执行命令的结果,显示所有目前目录下以字母“b”开头的文件...

Linux 提权—突破受限制的shell权限

 

我们可以使用这个技术执行任何其他命令甚至是另一个可用的shell,比如bash,以突破我们目前的限制,就比如:

:set shell=/bin/sh:shell

或者

:!/bin/sh

 

另一个好例子是ed。它是一个旧的默认Unix控制台编辑器。通常ed是提供给用户,它功能非常简单,但它仍然有内部的第三方命令执行功能,非常类似于vim。一旦进入,ed我们可以通过执行另一个来逃避正常的shell,!’/bin/sh’如下所示:

Linux 提权—突破受限制的shell权限

 

另一个编辑器的例子是ne,它是一个非常小巧的被用来设计成替代vi的东西。使用ne,可以突破的例子如下:这是一个lshell、我们没有权限回到“/”上面的任何其他目录。。。。

Linux 提权—突破受限制的shell权限

 

那么就轮到我们的ne上场了,ne编辑器有一个非常骚的功能,允许我们保存或加载配置首选项。我们可以用这个功能来读取文件系统中的内容。按一下ESC一旦可以打开主配置菜单、转到最后一个菜单,“Prefs”选项“Load Prefs”:

Linux 提权—突破受限制的shell权限

 

点击后,它就会显示文件系统的内容,让我们可以从中选择我们的首选项文件。但是在这里,请注意,我们现在可以进入到上一级文件系统中的目录,甚至到达“/”或任何其他目录,获取和读取它里面的内容:

Linux 提权—突破受限制的shell权限

 

我们甚至可以打开/etc目录文件/etc/passwd来枚举用户:

Linux 提权—突破受限制的shell权限

 

2.Pager命令

Linux 的Pager类型命令是一些简单实用的命令、它们允许我们以分页的方式查看特定命令或文本文件的输出,最着名的是“more”和“less”、它还具有执行脚本的功能。。。是不是很骚。。。举个栗子:我们less一个文件,然后输入 !'ls'或者 !'sh',这里它就会成功的显示本目录下所有的文件

Linux 提权—突破受限制的shell权限

 


Linux 提权—突破受限制的shell权限

 

这种技术,适用于more和less

3.man命令

命令“man”用于显示Linux命令的手册页,也具有突破功能功能。只需使用man命令显示任何命令手册,如下所示:$ man ls当ls出现命令手册时,我们可以使用more和less相同的技术、原因是 “man”使用“less”或“more”作为默认的man打开命令

Linux 提权—突破受限制的shell权限

 

4.pinfo命令

这个命令比较偏,只适用于一些个别的shell类型中,作用和man一样,这里使用 lshell 来演示一些受限制下的 lshell 如何使用 pinfo 提权。。。。我们尝试一些命令如“nc”,“/bin/bash”或“ls /etc”,都无法被执行,lshell限对这些命令有限制,然后我们来尝试用pinfo提权:

Linux 提权—突破受限制的shell权限

 

用pinfo打开ls手册user@kali:~$ pinfo ls当ls手册页面打开后,在里面打“!”(感叹号)。请注意,这里就会打开了一个命令执行功能,现在执行一些简单的命令试试吧,就比如之前的“ls /etc”,可以看到成功执行:

Linux 提权—突破受限制的shell权限

 


Linux 提权—突破受限制的shell权限

 

这里我们就成功绕过了lshell执行受限命令的限制。。。

5.find命令

find是一个非常着名的命令,用于在Linux文件系统中查找文件。它有许多功能,其中“-exec”选项是一个让我们可以执行shell命令。关于这个命令,我在博客中有提过,这里就不详细说了,放两个例子:
/usr/bin/find examples.desktop -exec whoami ;
/usr/bin/find examples.desktop -exec /bin/sh ;

可以直接进入root权限的shell中。。。

6.nmap命令

nmap是一个非常著名的扫描端口的命令,它有一个选项叫做“--interactive”,该“--interactive”选项在2009年5月之前的版本中用于打开交互式控制台,可以运行其他命令。但是有点忧伤的是,这个功能在版本r17131中已停用,不过如果我们再有点旧版的Linux中可以尝试一下,当可以使用这个选项时,可以输入“!sh”,看看能不能打开一个shell

user@kali:~$ nmap --interactivenmap> !sh$

 

7.export

 

如果这个命令可以,就可以直接添加环境变量,获取到更多可以执行的命令,比如:

export PATH=/usr/sbin:/usr/bin:/sbin:/bin

 

利用编程语言的技巧

 

1.awk命令

awk是一种为文本处理而设计的解释型编程语言。它是大多数类Unix操作系统的标准功能,我们通常可以在shell中找到它们。它有很多的类似功能如print(),sprintf()以及其他。其中最有意思的是system()、system()函数允许我们/bin/sh$ awk 'BEGIN {system("/bin/sh")}'即使 lshell 不允许 /bin/sh 直接运行另一个shell(),我们也可以通过使用awk为我们打开shell来突破它的限制:

Linux 提权—突破受限制的shell权限

 

2.Python

Python是世界上最好的语言、哈哈哈。它有很多的功能,我们可以用它来执行的shell命令,比如system(),pty()等等,来看个栗子:

Linux 提权—突破受限制的shell权限

 

我们执行函数print()来回显字符串“testing”,因此我们就可以执行任何其他命令(如ls甚至是shell)。对于第一个示例,我们导入OS模块,负责操作系统交互,最后使用system()函数运行本来不让运行的命令cp,这里只是随便证明一下:

Linux 提权—突破受限制的shell权限

 

可以看到,我们成功运行了cp命令,因此运行shell应该也可以吧,来试试:

Linux 提权—突破受限制的shell权限

 

可以看到,我们成功得到了shell。同样的例子可使用多种不同的方式,主要看掌握的基础知识是不是强大,再来个例子,如spawn()的pty模块:

Linux 提权—突破受限制的shell权限

 

多说一句,你掌握的知识,决定你可以使用的功能。。。

如果我们想要shell可以远程使用,我们可以使用反弹shell让python打开我们的攻击者机器的socket,如下所示:

Linux 提权—突破受限制的shell权限

 

检查已经在端口5000上侦听的攻击者的电脑看看反弹过来了没:

Linux 提权—突破受限制的shell权限

 

3.Ruby

Ruby中可以让我们使用irb(Interactive Ruby Shell)直接调用shell或任何其他命令:

Linux 提权—突破受限制的shell权限

 

可以反弹一个shell

Linux 提权—突破受限制的shell权限

 

4.Perl

我们使用perl with system()method来执行禁止本来没法执行的命令cp,也可以调用/bin/sh,如下:

Linux 提权—突破受限制的shell权限

 


Linux 提权—突破受限制的shell权限

 

完成同样骚操作的另一种方法是使用exec()方法,如下所示:

Linux 提权—突破受限制的shell权限

 

反弹个shell

Linux 提权—突破受限制的shell权限

 


Linux 提权—突破受限制的shell权限

 

5.php

PHP语言有很多选项可以在shell中执行命令,其中包括已经很有名的system()和exec()。您可以在php控制台内以交互方式进行,也可以直接在命令行中进行,就像之前在ruby,python和perl中做的那样。。。

以下是交互式使用PHP的示例:还是一样,试试cp命令

Linux 提权—突破受限制的shell权限

 

再使用exec()函数来尝试执行交互式shell:

Linux 提权—突破受限制的shell权限

 

也不一定非得要交互模式来获取shell、我们可以用简单的php在命令行上执行脚本并让我们的靶机向我们反弹shell,如下所示:

Linux 提权—突破受限制的shell权限

 


Linux 提权—突破受限制的shell权限

 

是不是很棒。。。

 

当然,提权的方式还有很多很多 ,后续会陆续发出,如果大家还有什么更骚的操作,欢迎私信。。。



Tags:Linux提权   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
0x001 linux提权描述大多数计算机系统设计为可与多个用户一起使用。特权是指允许用户执行的操作。普通特权包括查看和编辑文件或修改系统文件。特权升级意味着用户获得他们...【详细内容】
2020-11-04  Tags: Linux提权  点击:(156)  评论:(0)  加入收藏
​在我们渗透测试的过程中,当拿到普通用户的shell后,可能会因为各种各样的权限限制,导致无法进行更多的操作,这个时候我们就要想办法进行提权。 收集环境信息一旦我们拿到了受...【详细内容】
2020-02-16  Tags: Linux提权  点击:(170)  评论:(0)  加入收藏
▌简易百科推荐
在最近的一波攻击中,黑客利用多个插件中未修补的漏洞攻击了 160 万个 WordPress 网站。 易受攻击的插件对 WordPress 网站产生了的巨大攻击数据。 Wordfence 最近发现 WordPr...【详细内容】
2021-12-16  蚁安    Tags:WordPress   点击:(9)  评论:(0)  加入收藏
事件起因从安全分析系统里面发现一条带有病毒的下载,然后针对这条记录展开了一系列的分析分析过程1.登录到被感染服务器,查看系统状况,hadoop 这个用户在 2020/6/18 20:32 从这...【详细内容】
2021-11-23  Z2990Lig    Tags:SSH   点击:(32)  评论:(0)  加入收藏
1、除了服务器需要用的一些正规软件,其它都不要安装。2、在用户中把administrator改名,这样做的目的是即使对方暴破了我们的密码用户名也不容易猜住,相当于又加了一道关卡。...【详细内容】
2021-11-01  IT小哥吧    Tags:服务器   点击:(37)  评论:(0)  加入收藏
账户安全(1)更名administrator本地用户并禁用guest账户步骤:点击“开始”,找到“管理工具”,点击里面的“计算机管理”,找到“本地用户和组” (2)设定账户锁定策略尝试5次失败...【详细内容】
2021-10-12  Kali与编程  今日头条  Tags:Windows主机   点击:(62)  评论:(0)  加入收藏
本文主要介绍以Microsoft的Windows Server 2019 ,版本:Datacenter(Domain Controller)安全加固保护.企业随着规模不断扩大,业务增多,信息安全建设是企业里一条只有重点没有终点...【详细内容】
2021-09-17  Vireshark    Tags:服务器安全   点击:(64)  评论:(0)  加入收藏
目录常见共享命令IPC$IPC$的利用条件1:开启了139、445端口2:目标主机开启了IPC$共享3:IPC连接报错IPC空连接空连接可以做什么?(毫无作用)IPC$非空连接IPC$非空连接可以做什么?di...【详细内容】
2021-09-16  网络说安全    Tags:系统安全   点击:(86)  评论:(0)  加入收藏
昨天一个老哥找到我,说他的服务器这几天一直被CC攻击,问我这边有没有什么解决的方法? 近年来,网络攻击事件越来越频繁,最常见的就是CC攻击和DDOS攻击,主要的区别就是针对的对象不...【详细内容】
2021-09-10  小蚁GDRAGON    Tags:cc攻击   点击:(58)  评论:(0)  加入收藏
网站页面上的登录操作,通常都是输入帐号密码,传输至网站后台验证。在网站页面、数据传输中,通过技术手段,都可以得到用户输入的信息,并可以修改,从而发起网络攻击。典型的如:使用自...【详细内容】
2021-08-30  修丹道的程序猿    Tags:登录方式   点击:(62)  评论:(0)  加入收藏
网络安全研究人员披露了一类影响主要 DNS 即服务 (DNSaaS) 提供商的新漏洞,这些漏洞可能允许攻击者从企业网络中窃取敏感信息。基础设施安全公司 Wiz 的研究人员 Shir Tamar...【详细内容】
2021-08-12  零日时代    Tags:漏洞   点击:(66)  评论:(0)  加入收藏
001暴力破解1. 指定用户名爆破密码传统型爆破思路,用户名可以通过猜测或者信息收集获得。猜测:admin、网站域名等信息收集:新闻发布人、whoami等2. 指定密码爆破用户名如果是后...【详细内容】
2021-07-23  KaliMa  今日头条  Tags:登陆框   点击:(85)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条