msf之vsftpd漏洞
最近写ELK 规则提到了vsftpd漏洞,经过查询资料发现有一个简单的复现过程于是想写篇文章记录一下
首先介绍下vsftpd
0x01vsftpd介绍
vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。
在vsftpd.conf中有如下内容定义了日志的记录方式:
1 | # 表明FTP服务器记录上传下载的情况 |
vsftpd的两个日志文件分析如下:
/var/log/xferlog
记录内容举例
1 | Thu Sep 6 09:07:48 2007 7 192.168.57.1 4323279 /home/student/phpMyadmin-2.11.0-all-languages.tar.gz b -i r student ftp 0 * c |
/var/log/vsftpd.log
记录内容举例
1 | Tue Sep 11 14:59:03 2007 [pid 3460] CONNECT: Client "127.0.0.1" |
FTP数字代码的意义
1 | 110 重新启动标记应答。 |
vsftpd-2.3.4早期版本存在恶意的后门,在钟馗之眼上目前骇客以收到如此的主机,不过很多的服务器都已经被修复过,但总有漏网之鱼,有兴趣的小伙伴不妨去试试
0×02前言
1 | vsftpd-2.3.4早期版本存在恶意的后门,在钟馗之眼上目前骇客以收到如此的主机,不过很多的服务器都已经被修复过,但总有漏网之鱼,有兴趣的小伙伴不妨去试试, |
0×03工具
1 | metasploit |
0x04漏洞探测
1 | 先经过nmap –script=vuln扫一遍,得出我们的目标主机的ftp是可以匿名登录的,并且版本也是2.3.4,当然这个主机 是metasploitable2 |
下一步,还等什么,看一下msf中有没有相关可以用的exp啊,这里我省略了搜索的过程,大家如果不知道怎么搜,可以搜他的服务,或者是他的版本,或者是其他的一些关键词,
针对 vsftp的2.3.4版本的exp只有这个,那我们就简单的试一下,老样子,还是看一下他需要的参数,然后我们再给他添加一些,基本上就可以了,喜欢细致的我,在说一遍这里的参数,其中 rhost 表示目标主机的ip地址,rport当然就是目标主机的端口啦,这里默认给出的是21,当然,任何端口都是可以进行修改的,所以大家在实际使用过程中要注意好端口哦
1 | 这里的目标主机的ip是 10.0.10.104 在新版本的msf中,允许不添加payload参数,可有系统自动给出,所以这里我就不直接写上了 |
0×05攻击
1 | 攻击的话,直接使用参数exploit就可以了,如果其中发生报错,我们就需要根据每一条去解决, |
执行到这里,基本上拿到了shell,而且是root权限,那我们就可以创建一个用户,用普通用户正大光明的登陆进去,然后在,想办法提权,
0×06分析
1 | 首先 msfconsole通过发送ack的探测包,确定了目标服务器的21端口的服务版本,通过返回的数据包可以明确的看到具体的版本,这里我也建议大家使用namp的时候用ack的扫描方式和syn的扫描方式,速度快而且准确, |
接着,msf通过匿名登录到目标服务器上,并尝试触发恶意后门,
1 | 恶意后门被触发成功,并且反弹了一个shell给8这台机器,上半文是以前做的日志,下面抓包的图是现在截获的,所以大家就不要好奇了,同样在攻击者这边每次执行命令之后,都会发送到受害者这边,我们在wireshack截获的数据包中可以清晰的看到 |
这是刚刚触发的图,我们可以清楚的看到,这是而已代码执行,而没有建立会话,如果是会话会有提示符的,而这个没有,也就是说他可以使用当前的root用户执行任意命令,比如说添加一个用户
klion大佬的叙述:https://klionsec.github.io/2017/12/09/vsftp-secfig/