在本节中, 我们将对Metasploit进行更高级的了解, 并且将了解如何使用它来利用某些服务中存在的漏洞。这是一个代码执行漏洞, 它将使我们能够完全访问目标计算机。现在回到Nmap中的结果, 我们将做与以前相同的事情。我们复制服务名称, 然后查看它是否有漏洞。现在, 我们将查看端口139, 该端口具有Samba服务器版本3.X。就像上一节一样, 我们将转到Google, 并搜索Samba 3.X漏洞利用。我们将看到很多结果, 但是我们对Rapid7感兴趣。 Rapid7是制作Metasploit框架的公司, 所以这就是我们选择这种特殊漏洞的原因。我们将使用的漏洞利用是用户名映射脚本。这是一个命令执行漏洞。该漏洞的名称是exploit / multi / samba / usermap_script, 因此与我们之前在FTP服务中使用恶意后门时所使用的相同。这只是我们将要使用的另一个名称, 如以下屏幕截图所示:
文章图片
我们将转到Metasploit并运行msfconsole。我们将像上一节一样编写命令。我们将编写用法, 然后键入要使用的漏洞利用程序的名称。我们要做的下一件事是显示选项。命令如下:
文章图片
使用这些漏洞利用几乎总是一样的。唯一的区别是我们可以为每个漏洞利用设置的选项。我们总是运行use, 然后键入漏洞利用程序的名称, 然后显示选项以查看我们可以更改以使用该漏洞利用程序的内容。每当我们要运行漏洞利用程序时, 我们都会使用< exploit name> , 然后显示选项以查看要配置的选项。但是使用漏洞利用并设置选项并运行它们始终是相同的。
我们需要设置RHOST, 它是目标计算机的IP。我们将以与上一节相同的方式进行操作。设置选项始终相同。就像以前一样, 我们使用set命令设置一个选项, 即RHOST, 然后将目标计算机的IP设置为10.0.2.4。我们将运行显示选项, 如下面的屏幕截图所示, 将根据指定的IP正确设置RHOST:
文章图片
这与上一节有所不同。在上一节中, 我们需要一个已安装在目标计算机上的后门, 因此我们要做的就是连接到后门, 然后我们就可以在目标计算机上运行任何Linux命令。在此部分中, 目标计算机没有后门。它具有一个普通程序, 该程序具有代码执行漏洞和缓冲区溢出。该程序没有任何允许我们运行Linux命令的代码。它具有一定的缺陷, 可以让我们运行一小段代码, 这些小段代码称为有效负载。我们需要做的是创建一个有效负载, 然后使用发现的漏洞在目标计算机上运行它。这段代码将使我们能够做不同的事情。
将来我们将研究各种各样的有效负载, 这些负载可能会让我们执行Linux命令。我们可以运行show payloads命令来查看用于此特定漏洞利用的有效负载。我们可以使用不同类型的有效负载, 如以下屏幕截图所示:
文章图片
有效负载是一小段代码, 一旦漏洞被利用, 它将在目标计算机上执行。当我们利用此漏洞时, 将执行我们将选择的代码。现在, 根据我们选择的有效载荷的类型, 有效载荷将对我们有用。在上面的屏幕截图中, 我们可以看到所有有效负载都是命令行, 因此它们使我们可以在目标计算机上运行命令, 就像Linux命令一样。它们都只能在Unix上运行, 因为我们的目标是Linux。
【利用代码执行漏洞】有效载荷有两种主要类型:
- 绑定有效负载:他们打开目标计算机上的端口, 然后我们可以连接到该端口。
- 反向有效负载:反向有效负载与绑定有效负载相反。他们打开我们机器上的端口, 然后从目标计算机连接到我们的机器。此有效负载很有用, 因为这使我们可以绕过防火墙。防火墙会过滤与目标计算机的任何连接, 但是如果目标计算机连接到我们并且我们没有防火墙, 那么我们将能够绕过防火墙。
文章图片
我们将以设置选项的相同方式设置有效负载。我们确实显示选项以查看是否需要设置其他选项, 并且由于我们选择了有效负载, 因此还有更多选项。在以下屏幕截图中, 我们可以看到有一个名为LHOST的选项, 它是监听地址, 这是我们自己的地址:
文章图片
现在, 我们将使用ifconfig获取自己的IP地址, 此示例的IP地址为10.2.0.15, 如下所示:
文章图片
我们将以与之前设置RHOST相同的方式设置LHOST。我们将LHOST设置为10.2.0.15。为此, 我们将使用set命令, 然后将< option name> , 然后是我们想要将其设置为的< value> :
文章图片
然后, 我们将显示选项, 一切看起来都很好, 如下面的屏幕快照所示:
文章图片
我们正在使用此漏洞利用。 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命令, 如下所示:
文章图片