时间:2022-12-28 09:39:15 | 栏目: | 点击:次
漏洞详情
VSFTP是一套基于GPL发布的类Unix系统上使用的FTP服务器软件。该软件支持虚拟用户、支持两种认证方式(PAP或xinetd/tcp_wrappers)、支持带宽限制等。
VSFTP中存在安全漏洞,该漏洞源于程序没有正确处理‘deny_file'选项。远程攻击者可利用该漏洞绕过访问限制。
以下产品及版本受到影响:VSFTP3.0.2及之前版本,opensuse13.1版本和13.2版本。
受影响的产品
Vsftpd Vsftpd 3.0.2
创建用户以及共享目录、目录权限
zhangsan #用户名
123456 #密码
lisi
123456使用
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/access
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/access
anonymous_enable=NO local_enable=YES write_enable=YES #不启动锁定用户名单,所有的用户都将被锁定不允许访问上级目录,只允许访问其主目录 chroot_local_user=YES chroot_list_enable=NO #启动log xferlog_enable=YES xferlog_std_format=YES xferlog_file=/etc/vsftpd/vsftpd.log #开启虚拟用户 guest_enable=YES #FTP虚拟用户对应的系统用户 guest_username=vsftpd #PAM认证文件/etc/pam.d/vsftpd pam_service_name=vsftpd virtual_use_local_privs=YES
编写 vsftpd 启动 脚本:/etc/init.d/vsftpd
#!/bin/bash # # vsftpd This shell script takes care of starting and stopping # standalone vsftpd. # # chkconfig: - 60 50 # description: Vsftpd is a ftp daemon, which is the program # that answers incoming ftp service requests. # processname: vsftpd # config: /etc/vsftpd/vsftpd.conf # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/local/sbin/vsftpd ] || exit 0 RETVAL=0 prog="vsftpd" start() { # Start daemons. if [ -d /etc/vsftpd ] ; then for i in `ls /etc/vsftpd/*.conf`; do site=`basename $i .conf` echo -n $"Starting $prog for $site: " /usr/local/sbin/vsftpd $i & RETVAL=$? [ $RETVAL -eq 0 ] && { touch /var/lock/subsys/$prog success $"$prog $site" } echo done else RETVAL=1 fi return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down $prog: " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/$prog ]; then stop start RETVAL=$? fi ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac exit $RETVAL
增加执行权限
登陆测试