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

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt

标记红色的部分为今日更新内容。

7.0、介绍

7.1、使用Exploit-DB利用Heartbleed漏洞

7.2、通过利用Shellshock执行命令

7.3、利用metasploit创建并反弹shell

7.4、Linux上的权限提升

7.5、Windows提权

7.6、使用Tomcat管理界面执行代码

7.7、通过John the Ripper使用字典来破解密码哈希值

7.8、使用Hashcat暴力破解密码哈希


7.4、Linux上的权限提升

对于某些渗透测试项目,在利用和展示漏洞影响方面获得Web shell 可能就足够了。 在其他一些情况下,我们可能需要进行提权,做进一步的内网渗透。

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

实战演练

实验两种方案,利用Shellshock执行命令以及使用Metasploit创建和捕获反向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的系统通常是最不经常修补和更新的。这为攻击者和渗透测试人员提供了寻找公开可用漏洞的机会,这些攻击将使他们能够利用过时软件中存在的漏洞。

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2019-02-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券