热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Serv-U漏洞解析防患于未然serv_u安全设置

Serv-U是一个极为强大的FTP服务器软件,而近两年不断爆出的各个版本的安全漏洞,却让大家在使用Serv-U时不得不多留个心眼。本文对Serv-U漏洞进行详细地分析,防患于未然,安全设置以后还是可以使用的
如上描述,如果serv_u不做任何安全设置就投入使用,到时候引起后果请大家一定要看下,一句话降低serv_u运行权限,设置密码,如果不会可以找我们帮忙解决。所有的工具服务器安全设置频道都有都有。

Serv-U是一个极为强大的FTP服务器软件,界面简洁,容易上手,不论是商业用途,还是自己搭个人FTP,它几乎成了首选软件,而近两年不断爆出的各个版本的安全漏洞,却让大家在使用Serv-U时不得不多留个心眼。

攻击手段

纵览一下当前网络上流行的漏洞攻击方式,软件缺陷所造成的溢出最为关键,简单的说溢出就是针对软件的bug,提交构造的恶意代码,造成软件执行攻击者的代码或指令。从2004到2005年内Serv-U就出现了4~5个溢出漏洞,极其严重的可远程获取电脑的完全管理权限,非常危险,这将直接导致我们的个人隐私完全暴漏,入侵者可以通过漏洞进入我们的计算机,肆意翻看电脑上的文章、照片。当前在网络中出现的攻击手段,主要有嗅探窃听、恶意攻击、权限提升、账号隐藏、漏洞溢出五种方式,而这些又是一个互相关联的过程。

嗅探窃听:这算是对Serv-U攻击的一个前奏。入侵者会通过一些嗅探软件窃听到FTP密码,毕竟一些攻击工具必须拥有账号才能实施攻击。

恶意攻击:使用大容量文件攻击,入侵者会利用这漏洞对Serv-U软件发送大容量的文件,然后导致FTP处理不过来而造成程序没响应或者自动关闭。

权限提升:前提是攻击者取得对Serv-U安装目录完全控制权限。如果Serv-U把配置信息写入扩展名为ini的文件,大部分攻击者会对目标主机Web服务进行渗透入侵,诸如利用流行的SQL注入,上传漏洞来进行入侵,进而对Serv-U的安装目录实施篡改ServUDaemon.ini文件,替换为自己设定好拥有执行权限的配置信息,以此来获取管理员身份特权。

账号隐藏:通过第三方插件(Serv-U扩展库),实现“账号-映射”,也就是让一个固定账号下面映射几个子账号,继承账号权限。攻击者必须拿到Serv-U目录的写权限,利用插件来对账号隐藏。

漏洞溢出:一般情况下,攻击者在确定版本有溢出漏洞之后,会自己编译或者在网络上寻找所对应的溢出漏洞攻击工具对目标系统进行溢出,成功将会取得目标系统的系统权限,由于Serv-U默认是以system权限运行,所以溢出成功后,所得到的权限为system权限。

大家可能会发现,除了软件异常以外,Serv-U目录读写权限已成为关键,可能就会想到设置好Serv-U目录权限,安全就得以保障了,其实不然,安全是一个整体。很多时候,在装有Serv-U的服务器上架设着Web服务器,我们不得不两者兼顾,有的放矢,才能把安全做好。

一次模拟入侵

我们可以从国内权威安全组织“绿盟”漏洞数据库中查找到在过去一年内的相关Serv-U漏洞,结果足让人吃惊,平均下来三个月就有一次漏洞。

2004-09-14 Serv-U FTP服务器设备文件名远程拒绝服务漏洞

2004-08-09 Serv-U本地权限提升漏洞

2004-04-22 Serv-U FTP服务器LIST命令超长-l参数远程缓冲区溢出漏洞

2004-02-27 Serv-U FTP服务器MDTM命令远程缓冲区溢出漏洞

2004-01-29 Serv-U FTP服务器SITE CHMOD命令超长文件名远程溢出漏洞

下面我们就以Serv-U本地权限提升漏洞为例来说明其危害性。

PCS小提示:尽管在Serv-U6.0.0.2中增加了密码安全设置功能。但是本文作者在对Serv-U6.0.0.2进行测试的时候发现,在安装Serv-U的服务器权限设置不当的时候依然能提升权限成功。

漏洞发现日期:2004-08-09

影响版本:RhinoSoft Serv-U 3.0.0.20 至RhinoSoft Serv-U 6.0.0.2

漏洞危害:Serv-U存在设计问题,本地攻击者可以利用这个漏洞以SYSTEM权限在操作系统上执行任意命令。

测试环境:Microsoft Windows Server 2003, Enterprise Edition+Serv-U FTP Server 6.0.0.2

测试过程:

第一步:以普通用户身份登录Windows,在开始菜单的运行窗口中输入cmd,在命令提示符下输入Serv-U6(运行Serv-U6本地提升权限工具,见图1):

输入serv-u6.exe 43958 “net user test test /add”,添加一个名为“test”的用户。

第二步:接着输入serv-u6.exe 43958 “net localgroup administrators test /add”将该账户提升为超级用户权限,如果成功,那么软件界面将会返回提示信息

<220 Serv-U FTP Server v6.0 for WinSock ready...

>USER LocalAdministrator

<331 User name okay, need password.
******************************************************

>PASS #l@$ak#.lk;0@P

<230 User logged in, proceed.
******************************************************

这个时候,你可以使用用户名test,密码test进行登录了,并且发现自己已经成为超级用户了,这里不需要再说明什么了,你已经拥有了系统的超级权限了,入侵者已经可以在你的电脑上为所欲为了。

漏洞解决方案:尽快升级到最新版本,由于此本地提升权限漏洞为软件设计问题,并非程序出现异常。

安全对策

Serv-U安全隐患重重,那么如何才能防范入侵呢?笔者以Windows 2003 Sp1系统、NTFS分区为例,在保证系统安装好最新补丁的情况下,来对系统进行安全部署。首先安装Serv-U最新版本于非系统分区,由于默认情况下系统盘的一些目录都被赋予了everyone权限,这给攻击者在获取Webshell的时候执行攻击程序提供了环境。安装过程很简单,注意安装过程中是否有必要设置匿名登录,否则禁止匿名登录。

1.系统权限设置

第一步:对Serv-U目录设置权限。对用户组进行清理,留下Administrators和system,我们赋予Administrator权限,当然我们还可以新建立一个用户组来对Serv-U操作,把目录赋予此用户完全控制的能力,不过此方法不适合虚拟主机进行日常添加和删除用户操作。

第二步:建立一个FTP用户目录,根目录赋予Administrators完全控制权限,System只读权限。

第三步:为每个用户创建各自的目录,并赋予如下安全策略:

删除 Everyone group(这里尤为关键)

该System account's folder's 完全控制

添加给用此目录的用户完全访问控制

第四步:通过Serv-U设置用户权限,取消“执行”权限。在Web目录中去掉执行权限,以防止取得webshell后运行攻击程序来对Serv-U进行攻击。在进行权限设置的时候请遵循基本规律:有特殊属性的放在前面,共用属性的放在后面!

此外,针对Serv-U的插件实现账号隐藏的攻击方式惟有在目录权限设置不当并且入侵者取得WebShell的时候进行文件替换,挂接Dll。只要权限设置合理,定期对Serv-U目录检查,Serv-U安装后文件并不多,此类攻击方式很容易现形。

2.防范大容量文件攻击

在安装好FTP软件后,首先需要添加自己的域,然后在域上添加FTP的登录用户,当添加用户后,软件一般默认没有对添加的用户进行文件上传、下载的速率进行设置,因此这样一来就有被攻击的隐患,那就是黑客会利用这个漏洞对FTP软件发送大容量的文件,然后导致FTP处理不过来而造成程序没响应或者自动关闭。

在“常规”中能看到“最大上传速度、最大下载速度(KB/秒)”的选项。我们一般默认是不填的,建议用户设置一个具体的数字来限制这个速度。同时,最好把在“空闲超时、任务超时、最大用户数”的选项上也设置一个具体的数值。一般地,默认10分钟就足够了(见图2)。

3.溢出防范

近期内暂未发现软件所造成的缓冲区溢出漏洞,但是建议用户关注安全新闻,注意打补丁,新版本中也解决了出现的BUG,最好的方法就是升级,以免造成不必要的损失。当然这是极为被动的方式,但愿广大朋友对安全多一点认识,多一点细致,多一点防范,也就会少一点损失。

4.端口密码设置

由于笔者使用的是Serv-U6.0.0.2版本,固可以在ServUDaemon.ini中加上LocalSetupPortNo=12345来改变本地管理端口,不用去改ServUDaemon.exe。修改以后我们要利用IPSec来限制IP访问12345端口。在新版本Serv-U6.0.0.2中已经提供对本地密码进行修改的功能,在其主界面右边,我们可以更改设置本地服务器密码,这样一来,就需要输入密码才能进行本地管理,默认的是#l@$ak#.lk;0@P也就是空,不需要密码就可以管理。我们设置和更改密码的时候,旧密码留空,然后设置好你的本地管理密码。设置完成后会在ServUDaemon.ini中添加LocalSetupPassword=eq8BD223881747 DB4FCC458FC5EE3774D6之类的一段(见图3)。

5.传输安全

由于Serv-U在未开启SSL时,FTP传输是以明文方式传输数据,在位于路由或交换环境下,这很容易被嗅探工具捕获,如强大的Sniffer Pro、NetXray,小一点的arpsniffer、Dsniffer都可以抓到,利用此方式攻击,很多安全站点被渗透也不是什么新鲜的话题了。所以下面我们来看看如何启用Serv-U的SSL功能。

第一步: 首先为Serv-U创建新的SSL服务器证书,启动Serv-U管理员,Serv-U默认为我们提供了一个证书,但所有默认安装的SSL证书私人密钥均一样。为安全起见,我们需重新建立一个,很简单,打开Serv-U“本地服务器”的“设置”选项,在管理界面右边,打开“SSL证书”,依次填入“普通名称(FTP服务器的IP地址)”、“电子邮件”等相关信息(见图4),点“应用”按钮将会在Serv-U目录下覆盖掉原Serv-U提供的证书ServUCert.crt。

第二步:初次使用我们应该对证书进行认证,把它安装到受信任的区域,点击“安装证书”,进入下一步“证书导入向导”,选择默认存储区域,点击“下一步”或者自行选择存储区域、完成,接着会弹出安全性警告(因为没有从证书颁发机构安装),这里不管它,点击“是”,进行证书安装,成功后会弹出“证书导入成功”对话框,确定后,我们再次打开ServUCert.crt,OK,证书已经信任了,这方便了FTP客户端进行登录时候不会弹出“是否信任”烦人的提示框,下一步我们来设置Serv-U以提供SSL支持(见图5)。

第三步:打开Serv-U服务器下面的域,比如www.xhacker.cn),在右边出现的“安全性”下拉框中,有三个选项,默认的是“仅仅规则FTP,无SSL/TLS会话”,既然我们要对FTP服务器进行SSL支持,我们就选择下面的“只允许SSL/TSL会话”,也可以根据需要选择“同时允许规则FTP,SSL/TSL会话”,应用后,Serv-U服务器就已经具备了SSL传输加密传输功效。

为安全考虑,只有对FTP客户端也启用SSL连接。以FlashFxp为例,首先在FlashFxp的快速连接窗口中,选择“SSL”,然后在“安全套接字”下面选择“认证SSL”。这样我们就可以使用SSL连接了,连接成功后,我们将会在FlashFxp的状态栏下看到一把小锁的标志,说明已经进行成功SSL安全连接。现在大家可以用嗅探工具对ftp端口进行嗅探,在未使用SSL传输连接的时候,可以嗅探到明文密码,通过使用SSL加密传输连接,逃过了明文传输被嗅探这一劫。

现在Serv-U FTP服务器在国内应用相当广泛,小到个人,大到集团,只要BUG一发现,针对漏洞的攻击代码一流传起来,将给诸多企业及个人用户带来巨大的灾难。对此,我们惟有确保安全部署好系统的情况下,对安全界投以关注的目光,时刻关注最新漏洞,做好防范措施,发现漏洞,及时给系统打上补丁,才能够保证Serv-U不被入侵。


推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文详细介绍了Mybatis中#与$的区别及其作用。#{}可以防止sql注入,拼装sql时会自动添加单引号,适用于单个简单类型的形参。${}则将拿到的值直接拼装进sql,可能会产生sql注入问题,需要手动添加单引号,适用于动态传入表名或字段名。#{}可以实现preparedStatement向占位符中设置值,自动进行类型转换,有效防止sql注入,提高系统安全性。 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
author-avatar
ruishao520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有