📜  道德黑客|利用代码执行漏洞

📅  最后修改于: 2020-12-23 09:49:03             🧑  作者: Mango

利用代码执行漏洞

在本节中,我们将对Metasploit进行更高级的了解,并且将了解如何使用它来利用某个服务中存在的漏洞。这是一个代码执行漏洞,它将使我们能够完全访问目标计算机。现在回到Nmap中的结果,我们将做与以前相同的事情。我们复制服务名称,看看它是否有漏洞。现在,我们将查看端口139 ,该端口具有Samba服务器版本3.X。就像上一节一样,我们将转到Google,并搜索Samba 3.X漏洞利用。我们将看到很多结果,但是我们对Rapid7感兴趣。 Rapid7是一家制造Metasploit框架的公司,所以这就是我们选择这种特殊漏洞的原因。我们将使用的漏洞利用是用户名映射脚本。这是一个命令执行漏洞。该漏洞的名称是exploit / multi / samba / usermap_script ,因此与我们之前在FTP服务中使用后门的情况相同。这只是我们将要使用的另一个名称,如以下屏幕截图所示:

我们将转到Metasploit并运行msfconsole 。我们将像上一节一样编写命令。我们将编写用法,然后输入要使用的漏洞利用程序的名称。我们要做的下一件事是显示选项。命令如下:

使用这些漏洞利用几乎总是一样的。唯一的区别是我们可以为每个漏洞利用设置的选项。我们总是运行use,然后键入漏洞利用程序的名称,然后显示选项以查看我们可以更改以使用该漏洞利用程序的内容。每当我们要运行漏洞利用程序时,我们都会使用 ,然后我们会显示选项以查看要配置的选项。但是使用漏洞利用并设置选项并运行它们始终是相同的。

我们需要设置RHOST ,它是目标计算机的IP。我们将以与上一节相同的方式进行操作。设置选项始终相同。就像我们之前所做的一样,我们使用set命令设置一个选项,即RHOST,然后将目标计算机的IP设置为10.0.2.4 。我们将运行显示选项,如下面的屏幕截图所示,将根据指定的IP正确设置RHOST:

这是与上一节有所不同的地方。在上一节中,我们需要一个已安装在目标计算机上的后门,因此我们要做的就是连接到该后门,然后我们就可以在目标计算机上运行任何Linux命令。在此部分中,目标计算机没有后门。它具有一个普通程序,该程序具有代码执行漏洞和缓冲区溢出。该程序没有任何允许我们运行Linux命令的代码。它具有一定的缺陷,可以让我们运行一小段代码,这些小段代码称为有效负载。我们需要做的是创建一个有效负载,然后使用发现的漏洞在目标计算机上运行它。这段代码将使我们能够做不同的事情。

将来我们将研究各种各样的有效负载,这些负载可能会让我们执行Linux命令。我们可以运行show payloads命令来查看用于此特定漏洞利用的有效负载。我们可以使用不同类型的有效负载,如以下屏幕截图所示:

有效负载是一小段代码,一旦漏洞被利用,它将在目标计算机上执行。当我们利用此漏洞时,将执行我们将选择的代码。现在,根据我们选择的有效负载的类型,有效负载将对我们有用。在上面的屏幕截图中,我们可以看到所有有效负载都是命令行,因此它们使我们能够像Linux命令一样在目标计算机上运行命令。它们都只能在Unix上运行,因为我们的目标是Linux。

有效载荷有两种主要类型:

  • 绑定有效负载:他们打开目标计算机上的端口,然后我们可以连接到该端口。
  • 反向有效负载:反向有效负载与绑定有效负载相反。他们打开我们机器上的端口,然后从目标计算机连接到我们的机器。此有效负载很有用,因为这使我们可以绕过防火墙。防火墙会过滤与目标计算机的任何连接,但是如果目标计算机连接到我们并且我们没有防火墙,那么我们将能够绕过防火墙。

我们将使用cmd / unix / reverse_netcat有效负载。这些有效负载的最后一部分是将用于促进连接的编程语言或工具。例如,在前面的屏幕截图中,我们可以看到有用Perl,PHP, Python,Ruby编写的有效负载,或者有一个称为Netcat的工具,该工具允许计算机之间的连接。 cmd / unix / reverse_netcat有效负载是我们将使用漏洞利用的相同方式使用的负载。我们将只使用set命令来使用它。命令如下:

我们将以设置选项的相同方式设置有效负载。我们确实显示了选项,以查看是否需要设置其他选项,并且由于我们选择了有效负载,因此还有更多选项。在以下屏幕截图中,我们可以看到有一个名为LHOST的选项,它是监听地址,这是我们自己的地址:

现在,我们将使用ifconfig获取自己的IP地址,此示例的IP地址为10.2.0.15 ,如下所示:

我们将以与之前设置RHOST相同的方式设置LHOST。我们将LHOST设置为10.2.0.15 。为此,我们将使用set命令,然后将 ,然后是我们要将其设置为的

然后,我们将显示选项,一切看起来都很好,如下面的屏幕快照所示:

我们正在使用此漏洞利用。将RHOST设置为10.0.2.4,这是可以的,然后将LHOST设置为10.0.2.15,这是完美的。我们还可以设置将要在当前计算机上监听的端口。如果需要,可以将其设置为80。Web浏览器使用该端口。如果将LPORT设置为80,则目标计算机将尝试使用端口80连接到我们,该端口永远不会在防火墙上进行过滤,因为这是Web服务器或Web浏览器使用的端口。如果我们在机器上打开PORT 80,并且目标通过端口80连接到我们,则防火墙认为目标只是在浏览Internet。我们现在不打算这样做,因为我们有一个在端口80上运行的Web服务器,这将发生冲突。我们将以与LHOST相同的方式将LPORT设置为5555。同样,我们将显示选项。在以下屏幕截图中,我们可以看到端口已更改为5555:

现在,我们将运行exploit命令来运行exploit。在以下屏幕截图中,我们可以看到会话1已打开,并且连接是10.0.2.15:5555设备和10.0.2.4:48184设备之间的连接,这是我们的设备与目标设备:

我们要先做pwd ,然后再做id 。我们将看到我们是根。如果执行uname -a ,我们将看到我们在Metasploitable机器中。如果执行ls,我们将能够列出文件,依此类推。我们可以像上一部分中一样使用任何Linux命令,如下所示: