December 1st, 2011

chuck
  • dadv

FreeBSD remote root exploit для ftpd и proftpd

В сети появился рабочий remote root exploit для штатного ftpd и для proftpd (ссылку не дам, кому надо - найдет в листах). Проверено, работает.

Для взлома требуется знать логин-пароль юзера, которого ftpd засовывает в chroot и которому разрешено создавать в этом корне файлы /etc/nsswitch.conf и /lib/nss_compat.so.1 - exploit заливает туда код, который, будучи запущенным от рута, через ptrace подключается к inetd/syslogd/cron вне chroot и внедряет в них код, который открывает TCP-коннект от рута обратно к машине атакующего на заранее указанный порт, который там должен слушать nc -l или аналог и даёт root shell уже вне chroot. Подгружает /lib/nss_compat.so.1 сама libc, баг в ней.

Против взлома кроме фильтрации доступа к порту 21 файрволлом или через /etc/hosts.allow, ещё помогает либо полностью запретить юзеру запись в свой домашний каталог (можно оставить право на запись в существующие подкаталоги), либо запретить создавать /etc/nsswitch.conf и /lib/nss_compat.so.1 в домашнем каталоге юзера: touch etc lib && chflags uchg etc lib

Для штатного ftpd и ftp-пользователей, не имеющих другого доступа на запись к своему домашнему каталогу (через samba/http/whatever) есть и другое временное решение, не требующее что-либо менять в домашних каталогах пользователей: патч на ftpd, позволяющий администратору задавать гибкие ограничения в зависимости от логина пользователя и IP-сети, из которой он подключился.

Collapse )