为Serv-U创建一个独立的用户,提高安全性

2012-5-30 13:30:07 来源:网络转载 浏览:389
Serv-U默认是以System组的身份运行的,对本机有完全操作的权限。所以如果攻击者利用Serv-U程序的漏洞而获得了可执行shell,那么他将可以操作系统里任何一个目录。
Serv-U默认是以System组的身份运行的,对本机有完全操作的权限。所以如果攻击者利用Serv-U程序的漏洞而获得了可执行shell,那么他将可以操作系统里任何一个目录。
  
   对于Serv_U的安全设置,我主要从服务与权限二方面来着手的,由于Serv_U默认运行服务的用户是SYSTEM,用户特权很高,是导致被提权的导火线。那好,我们单独建立一个guests组的用户来运行Serv_U,然后我们再来提权,看是不是也会成功?
    首先,我们建一个属于guests组的ftpuser为名的用户,密码也为ftpuser。具体步骤:首先我们创建一个ftpuser帐户,从users组中去除,然后再增加到guests组中。
     好了,用户建好了,并且赋予到了guests组中了,现在我们来把Serv_U的服务以ftpuser这个权限低的用户来运行一下。
     首先,我们直接进入服务(services.msc)中,并且找到Serv_U这个服务,如图:
     在此服务上面,右键,选其属性,在出来的 Serv_U FTP服务器属性窗口中,选择“登录”选项卡,把登录身份从“本地系统帐户”改为“指定帐户”,这里我们选择刚才自行建立的ftpuser这个用户。
     应用确定后,我们下面再来对Serv_U安装目录加以权限的设置,只保留administrators、system,还有我们刚才新建ftpuser这个用户的权限,首先我们来对安装目录Rhinosoft.com给予ftpuser权限,权限如下:
     这样一来,整个Serv_U的安装目录Rhinosoft.com的权限如下:
     好了,我们来重新启动一下Serv_U的这个服务,OK,成功启动了,接着,我们再来看一下任务管理器,看一下Serv_U现在是用什么用户运行服务的了。
     可以看到,做了指定用户启动服务后,这里Serv_U的进程是使用ftpuser这个低权限的用户来启动。这样是不是真的就安全了呢?我们还是以上面的木马来加以测试吧,我们直接访问木马页面http://60.19*.*.*/index.asp
     还是和前面没有做安全时出来的结果一样,难道一番辛苦设置就这样付诸东流了?系统中是不是真的建立了goldsun这个用户呢,我们还是进入服务器一看究竟:

     原来是谎报,呵呵,事实上并没有建立上用户。好了,整个设置大致如此。不过,在使用Serv_U时,有一点要特别注意的,在建立ftp用户时,指定的主目录也必须给ftpuser的权限,如果你想上传,要给此目录加上ftpuser修改的权限,而且此目录的根目录至少也要给上ftpuser读取权限,不然ftp不能正常使用的。
  
  首先建立一个用户,名称可以任意定义,比如叫做ftpuser。进入开始 -> 控制面板 -> 管理工具 -> 计算机管理,找到用户一项,点击右键选择添加。打开一个记事本,随便敲击一段密码,越复杂越好,16位以上为佳。把这段密码复制下来,贴到创建新用户的对话框里边去。
  
  下边修改磁盘权限,首先修改Serv-U的安装目录。点击右键,选择属性。切换到安全标签。可以看到当前目录的权限是只有管理员和系统用户能够操作。点击添加,在用户名那里输入ftpuser,即刚才新建的那个用户。然后点击确定。将ftpuser的权限设置为“读取及运行”、“列出文件夹目录”、“读取”。进入目录,找到ServUAdmin.ini文件,点击右键,选择属性。点击安全的标签,可以看到当前的文件权限,和刚才设置的目录权限是一致的。我们给他添加“修改”和“写入”的许可权限。在“D:\Serv-U”目录下找到ServUDaemon.ini这个文件,也给他添加“修改”和“写入”的许可权限。
  
  接下来给站点目录添加Serv-U的读写权限。给你开设的所有站点分别给予ftpuser权限,并将其权限设置为除了完全操作之外的所有权限。
  
  现在对C盘设置权限。为了不让Serv-U的运行用户ftpuser读写cmd.exe等文件,我们需要给其添加禁止写入的权限。找到C:\WINNT\system32\cmd.exe,点击右键选择属性,进入安全,然后添加禁止任何操作的权限。通理,给C:\WINNT\explorer.exe也设置禁止操作的权限。
  
  另外,还需要在“本地安全设置”,设置禁止ftpuser用户本地登陆。进入控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 用户权利指派 -> 拒绝本地登陆。
  
  设置都完成后,我们把Serv-U的启动身份切换到ftpuser。进入控制面板 -> 管理工具 -> 计算机管理,找到Serv-U的服务。双击它,打开“登陆”对话框。当前默认为“本地系统帐户”。修改为ftpuser用户,并且把刚才设置的复杂密码填写进去 。 点击确定,并且重新启动服务。
  
  经过如此设置,ftpuser运行者将只能读写规定的站点目录,对其他目录没有写入权限。而其本身是非system身份的普通用户,降低了他对系统的潜在危险。

注意:

今天对Serv-U进行了一下安全配置,把运行Serv-U的角色单独配置了一个用户名,该用户名没有给任何权限,这样别人即便攻破了Serv-U也无法对系统进行破坏。
谁知道重启了Serv-U后,用FTP软件无法列出文件夹文件,提示错误:
530 Not loged in,home directory does not exist。
查看问题所在,该用户对FTP目录已经具有了修改权限了呀?这是怎么回事?
没有办法,上网查找相应问题,最后得到结果:
原来不仅仅需要设置该用户对下载目录具有修改权限,还要求该用户对上级目录具有读取,读取和运行,列出文件夹目录的权限,于是进行了相应修改,问题解决。
看来问题随时都会出现呀!自己还需要更深的学习。

现举例如下:                                     权限
D:(下载目录上一级目录)         读取,读取和运行,列出文件夹目录
ftproot(下载目录)                             修改


(0)
(0)