在前两篇我们对 Metasploitable 2? 进行了信息的枚举和漏洞的基本评估。从这篇文章开始,我将教大家如何利用这些被发现的漏洞。我将结合手工和工具 Metasploit 的方式,演示关于 VSFTPD v2.3.4 的漏洞利用过程。对于 VSFTPD 的漏洞利用是非常简单的,因此对于 Metasploitable 2 而言,这是一个好的开始。我们首先会对漏洞的代码进行分析,测试。而不是直接启动 metasploit ,来进行简单的漏洞利用。这将会让我们更好的理解漏洞的原理,及了解漏洞是如何产生和发生的。
漏洞利用的最终目标,是要取得目标主机的 root 或 administrator 权限,并可在目标机器上执行我们发送的的操作指令。我们所能获取的权限大小与我们植入 shell 的运行服务权限,紧密相关!例如:如果我们利用的 ?VSFTPD v2.3.4 服务,是以 root 权限运行的,那么我们也将会是 root 的权限。但是通常系统管理员,都对运行的软件及服务做了严格的权限限制。当我们取得权限比较小的时候,那么将它提权为管理员账户是非常重要的一步。下面看看我们是否可以成功利用 vsftpd v2.3.4 的漏洞,并获取到 root 权限的 shell 。
VSFTPD v2.3.4 漏洞
从漏洞评估那篇文章我们得知,该版本的 VSFTPD 存在一个后门漏洞。虽然该问题迅速得到了开发人员的修复及删除,但是仍有不少人已经下载安装了该漏洞版本。这个后门的载荷以 🙂 字符的形式拼接在用户名上。其代码绑定的侦听端口是 6200 。
VSFTPD v2.3.4 漏洞代码
我们来查看下 VSFTPD v2.3.4 这个存在漏洞版本的代码,问题出在哪。这里令人惊讶的是,该源代码没有做任何混淆加密,我们很容易就能读懂和知道它的工作原理。我在?Pastebin 复制了这段验证漏洞的代码,在这个链接可以复制:http://pastebin.com/AetT9sS5。下面的代码验证了用户名上的用户输入:
可以看到第 37 和 第 38 行在检查用户输入时,后面分别跟了 0x3a 和 0x29 这两个十六进制数,而它们则分别表示 :和 ) 。当用户名包含了这两个字符,那么接下来就会执行 vsf_sysutil_extra 这个函数。让我们看看该函数所执行的内容:
在代码的第 79 行 “struct sockaddr_in sa”,可以看出这里构造了一个名为 sa 的网络地址。The structure is defined by the which is set to the constant AF_INET, sin_port (6200) and the client address set to any on line 83, 84 and 85.对该构造则分别在第 83,84,85行,定义了常量 sin_family 值为 AF_INET, sin_port (6200) 及 客户端地址为任意地址。按照使用的代码结构来设置绑定 socket和 socket 用于传入连接的侦听进程。由于该段代码运行于服务器端,因此服务器设置了,可被攻击者远程连接的 socket 和侦听。代码的第 94 行提供了一个 shell 让任何人,都可以连接到该服务的 6200 端口上。
VSFTPD v2.3.4 后门之手动利用
现在我将用手动的方式,来利用 Metasploitable 2 VSFTPD 这个漏洞程序。我将使用一个“笑脸”,来进行用户名的验证。这里假设你的 Metasploitable 2 虚拟机安装和运行了该服务。我们使用如下命令:
telnet [Metasploitable IP] 21
接着我们再输入以下命令:
USER user:)
PASS pass
当成功执行以上命令后,我们打开 nmap 扫描端口 6200 ,我们可以看到那段恶意代码已经被成功执行,并且 6200 端口也已被成功开启侦听。
我们通过以下命令来连接 6200 端口:
telnet [Metasploitable IP] 6200
当我们使用 id 命令后,从返回信息我们可以得知,当前我们已经取得了 root 的权限。下面让我们学习下,如何使用 Metasploit Framework 来利用该漏洞。
VSFTPD v2.3.4 后门之 Metasploit 利用
我们直接来启动 metasploit 。命令如下:
msfconsole
当成功启动 msfconsole 后,我们来选择使用针对该漏洞的利用模块:
use exploit/unix/ftp/vsftpd_234_backdoor
查看该模块的配置选项:
Show options
可以看到,我们只需设置下目标的主机的 IP 及 端口即可,默认为 21 端口。下面我们执行 run 命令,来开始利用!
总结:
在这篇文章中,我们分别使用了手工及 metasploit 对 VSFTPD v2.3.4? 这个存在后门漏洞的版本,成功进行了利用。并进行了简单的代码分析,了解了其大致的漏洞产生原理及过程。虽然这是一个比较古老的漏洞,但在今天看来仍是值得我们学习和参考的。希望大家能学会,这种漏洞利用的方法及思路。
本文由