Serv-u防溢出提权的解决方法是什么?
发布网友
发布时间:2022-04-30 11:09
我来回答
共1个回答
热心网友
时间:2022-04-22 09:33
一、大家知道Liunx系统和Unix系统比Windows安全的一个重要原因在于:Linux和Unix的系统服务不使用root权限,而是使用权限比较低的另外一个单独用户,比如web服务使用了nobody这个用户。而Serv-U默认是以system身份运行的,而System这个系统内置账户对本机有完全操作的权限;因此如果攻击者利用Serv-U程序的漏洞而获得了可执行shell的那,那么他将可以随意控制操作系统里任何一个目录了
二、我们根据一的讲解知道了为什么Serv-U提权与溢出攻击可怕的原因了,那么我们该如何防止这一类攻击的发生呢?答案就是降底Serv-U的运行权限与控制Serv-U的“Acls”可访问目录…好,下面就一步一步跟我来吧!
三、Serv-U安全配置
1、首先请保持合用Serv-U的最新版本(目前新版为6.4…)。然后在安装Serv-U的时候尽量不要选择默认的安装目录,比如俺将Serv-U安装在D:\Pro_LeeBolin^_^\Serv-U#$2008$\…(因为这样复杂的目录名可防止Hacker的猜解)
2、然后将Serv-U取消MDTM命令的执行,修改Serv-U FTP Banner并开启好Serv-U的FTP日志保存到非系统盘,日志选择记录好Serv-U命名用了那些命令与DLL,并为Serv-U设置一个强壮的本地管理密码(因提权多是因为Serv-U的默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P所造成的,呵呵 $_$),你还可以选择将Serv-U的FTP账户信息保存到注册表,不要存在Serv-U目录下的ini文中,这样更加安全。
3、我们再开启”计算机管理”新建一个用户Serv-UAdmin,设置好密码。将用户退出Users组,不加入任何组。并在用户的“终端服务配置文件” 选项里取消“允许登录到终端服务器。并且禁止Serv-UAdmin用户的本地登陆。进入控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 用户权利指派 -> 拒绝本地登陆。(备注:这个用户我们将它来作为俺们Serv-U的服务运行账号,嘿嘿)[(AD^_^:游刃在技术鬼神边缘,打造服务器安全神话!创世纪网络技术前瞻,成就互联网*先驱!服务器安全讨论区[S.S.D.A]) ]
4、开始运行”Services.msc”打开win的服务管理器,找开Serv-U Ftp Server的Serv-U服务;打开“登陆”对话框。当前默认的为“本地系统帐户”。我们将其修改为我们在3中新建的Serv-UAdmin用户,并输入密码。
5、下面的工作就是设置Serv-U的运行与FTP目录的ACLs权限了:
①C:\Documents and Settings\Serv-UAdmin 目录加入Serv-UAdmin的权限,允许读取与写入..
②D:\Pro_LeeBolin^_^\Serv-U#$2008$\ Serv-U的安装目录加入Serv-UAdmin的权限,允许读取与运行。 (如果选择了账户保存在ini文件的话,这里就需要增加修改与删除权限,因增删FTP账户时需要删改权才成,否则不能增删FTP账户哟^_^)
③如果Serv-U账户选择存在注册表的话。运行regedt32.exe,打开注册表编辑器。找到[HKEY_LOCAL_MACHINE\ SOFTWARE\Cat Soft]分支。在上面点右键,选择权限,然后点高级,取消允许父项的继承权限传播到该对象和所有子对象,删除除admins外的所有的账号。仅添加 Serv-UAdmin账号到该子键的权限列表,并给予完全控制权限。(如果选择了账户信息保存在ini文件中的话可略过此步。)
④现在就来设置WEB目录的ACLs了,比如我的虚拟主机总目录为E:\Leebolin$(%\wwwroot;那么我们将此WEB目录加入Serv- UAdmin账号的权限即可,这样FTP就可以访问我们的WEB目录进行上传下载了,呵.(由于Serv-U并没有以system运行,所以这里只存留 admins与serv-uadmin的权限就OK了。)
⑥如果是asp/php/html脚本的话,WEB目录只需要admins & serv-uadmin & IUSR_XX即可(这里的IUSR_XX是指站点的匿名单用户账号…关于站点的安全与asp.Net的安全请参考我以前的文章:《FSO安全隐患解决办法》、《ASP木马Webshell之安全防范解决办法》、《ASP.NET木马及Webshell安全解决方案》 、《服务器安全检查十大要素》)
四、到目前为止,我们的Serv-U已经简单的做到了防提权,防溢出了。为什么呢?因为能常远程溢出overflow的话,都是通过得一shell而进行进一步的hacking,而我们现在的Serv-U不是以system运行,所以即使执行了overflow指命,也并不能得到什么…防提权就不用我解释了:因为我们的Serv-Uadmin没有任何系统级的ACLs访问权限..