为 FTP 设置可写的 chroot 目录有什么危险?

Nar*_*asK 8 security chroot ftp permissions

网络上的人们都在大喊拥有可写的根 FTP 目录是多么不安全,如果您使用该chroot选项配置您的 FTP 服务器(vsftpd甚至不会运行)。

我想念为什么不好的解释?

有人可以就该主题进行更多扩展并解释危险是什么,如何利用非特权用户可写的 chroot 目录?

Cas*_*lia 8

这里的攻击俗称“咆哮野兽”攻击;您可以在这些公告中阅读更多相关信息:

为了使用该chroot(2)功能,FTP 服务器必须具有 root 权限。之后,非特权客户端请求在该 chroot 服务器进程内/etc(或/lib)内创建文件。这些目录通常包含动态加载的库和系统库的配置,如 DNS 解析器、用户/组名称发现。客户端创建的文件是不是现实 /etc//lib目录的系统上- chroot,这些客户端创建的文件是真实的

因此,恶意客户端连接到文件树根切换的过程中的FTP服务器,他们创造必要的/lib/etc目录/文件的chroot内,上传一些动态库的恶意拷贝,然后让服务器执行一些动作触发利用自身新的动态库(通常只是一个目录列表,导致使用系统函数进行用户/组发现等)。服务器进程运行该恶意库,并且因为该服务器可能仍然具有 root 权限,该恶意库代码可以有额外的访问权限以执行其想做的任何事情。

请注意,/etc/lib不是唯一要观看的目录;问题更多是关于系统库对其文件位置的一般假设。因此不同的平台可能有其他目录需要保护。

例如,ProFTPD 现在禁止在 chroot 时创建此类/etc//lib目录,以减轻此类攻击。

  • 为什么 FTP 服务器默认使用 chroot 中包含的库? (2认同)
  • 不一定是使用库的 _server_;大多数情况下,是 C 库例程从“众所周知的位置”(例如从 `/etc/` 或 `/lib/`)动态加载库。想想`gethostbyname(3)`自动读取`/etc/hosts`或`/etc/resolv.conf`;`getpwnam(3)` 可能会使用 NSS,因此读取 `/etc/nsswitch.conf` 和相关的 NSS 库。 (2认同)