Serv-U防溢出提权攻击解决设置方法
前言:
大家应该都还没有忘记三年前在Serv-U5.004版的之前所有版本的"Serv-U FTPMDTM命令缓冲区溢出"与"Serv-U FTP服务器LIST命令超长-l参数远程缓冲区溢出漏洞"吧,这个漏洞让很多服务器管理员立坐不安,也让很多大型的站点、甚至电信级的服务器沦陷了...随着Serv-U新版本的推出,这个漏同已经不存在了;虽然溢出不存在了,但黑客永远也没有停止,所以伴随着来的又是Serv-U5.0到6.0之黑客常用的本地提升权限缺陷。(注:最常见的就如webshell+su提权,我在 Baidu输入"Serv-U提权"关键词,搜索结果“百度一下,找到相关网页约34,000篇,用时0.001秒 ”)因此,解决Serv-U的安全问题迫在眉睫。
Serv-U提权虽然严格来说这个不应该算是Serv-U的重大漏洞,但只要因管理员的配置不当将会产生严重的后果;下面LeeBolin就来为大家介绍下如何安全配置 Serv-U,才能保证Serv-U甚至服务器的安全,跟我来.“go,go,go...”(最近CS玩多了,嘻嘻 :P)
Serv-U防溢出提权攻击解决办法解决办法正文:
一、大家知道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$(%;那么我们将此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访问权限..
五、今天的Serv-U防溢出提权攻击解决办法就为大家介绍到这里,您看到此处后,你会了吗?
后记:其实服务器、系统的安全是个整体的概念;有可能你其它一小点的疏忽就可以让你的网站、甚至服务器沦陷。因此安全策略必需走防患未然的道路,任何一个小地方都不能马虎、今天关于防Serv-U的安全配置小技巧就为大家介绍到这里...其它方面的服务器安全配置经验我们在下一篇文章再见吧:-) (注:由于本人才疏学浅,如文中有错误实为在所难免,还请各位看官见谅!旨在抛砖引玉,如果您有更好的办法请别忘了在服安论坛跟贴^0^,先行谢过!)
关于本文版权:本文版权归[服务器安全讨论区]与[本文作者]共同所有,您可以任意转载,但务必请保留文章的完整性与信息来源及作者信息等链接;但不欢迎转载者除去本版权信息。
关于本文作者:李泊林/LeeBolin 服安科技资深系统工程师、专业网络安全顾问。已成功为国内多家大中型企业,ISP服务商提供了完整的网络安全解决方案。尤其擅长于整体网络安全方案的设计、大型网络工程的策划、以及提供完整的各种服务器系列安全整体解决方案。[S.S.D.A 服务器安全讨论区] www.31896.net E-mail:bolin.lee#gmail.com QQ:24460394 您对本文有任何建议与疑问可以来信或者QQ在线与作者进行交流;或者到服安论坛与作者进行讨论!