前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 7.4 - Linux上的权限提升

Kali Linux Web渗透测试手册(第二版) - 7.4 - Linux上的权限提升

作者头像
Power7089
发布2019-07-25 13:06:58
9480
发布2019-07-25 13:06:58
举报

7.4、Linux上的权限提升

对于某些渗透测试项目,在利用和展示漏洞影响方面获得Web外壳可能就足够了。 在其他一些情况下,我们可能需要超越它来扩展该服务器中的特权级别,或者使用它来转向网络中的其他主机。

在关于权限提升的第一个配方中,我们将利用上一个配方,我们上传并执行反向shell到我们的攻击机器,并使用Kali Linux中包含的工具获取服务器上的管理访问权限

实战演练

建议前两个配方,即利用Shellshock执行命令以及使用Metasploit创建和捕获反向shell,在开始之前完成,尽管可以从远程服务器上的任何有限shell获得相同的结果。

实验开始

我们在受感染的服务器上运行了一个meterpreter shell - 更具体地说,是具有IP 192.168.56.12的beebox。 让我们从找到升级权限的方法开始:

1. KaliLinux包含一个名为unix-privesc-check的工具; 它会检查系统是否存在可能允许我们升级权限的配置漏洞。 从meterpretershell,我们可以使用upload命令将其上传到服务器。 在您的meterpreter会话中,发出upload / usr / bin /unix-privesc-check / tmp /命令。

2. 上传文件后,打开系统shell(使用meterpreter中的shell命令)并使用/ tmp / unix-privesc-checkstandard运行脚本。 以下屏幕截图显示了该过程:

3. 该脚本将显示一长串结果,但我们对开头显示WARNING的那个感兴趣。 在下面的屏幕截图中,我们可以看到有一个脚本(/etc/init.d/bwapp_movie_search)在启动时由root运行,每个人都可以写入它(设置了World write):

4. 我们将使用该文件使root用户在启动时执行命令。 我们将创建一个具有管理权限的用户,以便我们可以通过SSH连接随时到服务器。为此,我们需要检查系统中存在的组,以便我们了解哪些组具有特权访问权限。 在系统shell中,运行cat / etc / group | sort -u命令。 您将看到有一些有趣的名称,例如adm,admin和root。

5. 由于我们没有完整的shell,我们无法打开文本编辑器将命令添加到目标文件中,因此我们需要使用echo将它们逐行附加到文件中:

6. 要验证命令是否已正确引入,请使用tail。 它将显示文件的最后几行:tail /etc/init.d/bwapp_movie_search。 在屏幕截图中,我们可以看到它应该是什么样子:

7. 由于此服务器是我们测试实验室的一部分,我们可以重新启动它。在实际情况中,攻击者可能会尝试攻击以使服务器重新启动,或者DoS会强制管理员重新启动它。

8. 重新启动服务器后,在Kali Linux中使用ssh登录sshhacker@192.168.56.12,然后使用在步骤5中设置的密码。如果询问是否接受主机证书,请键入yes并按Enter键。

9. 如果一切正常,您将能够登录。以下屏幕截图显示用户具有对所有命令的root访问权限,因为它们属于组admin(sudo -l)并且可以模拟root用户(sudo su):

原理剖析

在本文中,我们使用现有的meterpretershell将脚本上载到受感染的服务器。 unix-privesc-check是一个shell脚本,它自动查找系统中的某些配置,特征和参数,这些配置,特性和参数可能允许受限用户访问未授权的资源,例如属于其他用户或程序的文件。在更高权限配置文件下运行。 我们使用标准参数运行unix-privesc-check,它只进行一组基本测试; 还有一个详细的选项,需要更长的时间,但也会进行更深入的分析,并可以给我们更多的升级备选方案。

在分析了unix-privesc-check的结果后,我们决定修改在启动时以高权限运行的脚本,并向其添加两个命令。第一个是创建属于admin,adm和root组的用户,另一个是为这样的用户设置密码。 要将这些命令添加到文件中,我们使用了echo命令和输出重定向操作符(>),因为我们的有限shell不允许我们打开文本编辑器并直接编辑该文件。然后我们重新启动了虚拟机。

当机器重新启动时,我们使用我们设置的用户通过SSH连接到它,并验证它是否具有root权限。 删除我们添加到/etc/init.d/bwapp_movie_search脚本中的行也是一个好主意,以避免触发进一步的警报。

另请参阅

我们决定使用在启动时使用root权限执行的文件的修改作为获取管理访问权限的方式。还有其他选项可能不需要攻击者等待服务器重新启动,尽管更改启动脚本可能是一种保留持久访问的方法,特别是如果这些更改是在脚本中的模糊功能中完成的,这些功能很少被 管理员和开发者。尝试升级基于Unix的系统中的权限时要查找的其他常见方面如下:

SUID位:当在程序或脚本的属性中设置此位时,此类程序将在所有者用户的权限下执行,而不是在执行它的用户的权限下执行。例如,如果可执行文件属于root用户(所有者是我们对文件执行ls -l时显示的名字)并且由用户www-data执行,则系统会将该程序视为由root执行。 因此,如果我们找到这样的文件并设法更改它打开或使用的文件,我们就可以获得root执行权。

PATH和其他环境变量:当程序调用其他程序或读取系统文件时,需要在系统中指定它们的名称和位置;有时这些程序只指定名称和相对路径。而且,操作系统有一些优先级标准,关于在未指定绝对路径时首先查看的位置 - 例如,首先查看当前文件夹,程序位置或PATH环境变量中指定的位置。这两个条件为攻击者添加恶意文件打开了大门,该恶意文件的名称与特权程序所需的名称相同,位于将要查看的位置由操作系统在文件的实际位置之前,强制易受攻击的程序处理攻击者文件的内容而不是合法的文件。

对已知漏洞的利用:在实际组织中,基于Unix的系统通常是最不经常修补和更新的。这为攻击者和渗透测试人员提供了寻找公开可用漏洞的机会,这些攻击将使他们能够利用过时软件中存在的漏洞。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白帽学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档