翻译来自:掣雷小组
成员信息:
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的系统通常是最不经常修补和更新的。这为攻击者和渗透测试人员提供了寻找公开可用漏洞的机会,这些攻击将使他们能够利用过时软件中存在的漏洞。