26 апреля, 2024

Основы Linux. Часть 22 (Samba)

Содержание:

С возвращением, мои хакеры!

Те из вас, кто использует Windows в локальной сети, знают, что компьютеры Windows могут совместно использовать общие каталоги, файлы и принтеры благодаря использованию протокола «shares». Этот протокол берет начало еще с 1980-х годов, когда доминирующая в то время компьютерная фирма IBM разработала способ взаимодействия компьютеров по локальной сети, просто через использование имен компьютеров, а не MAC-адресов или IP-адресов.

Позже Microsoft и Intel разработали аналогичный протокол для совместного использования файлов, который первоначально назывался NetBIOS, а впоследствии был переименован в Server Message Block (SMB). К 1992 году Эндрю Триджелл (Andrew Tridgell) провел реверс-инжиниринг, т.е. реконструкцию SMB для Linux/Unix (включая Mac OSX от Apple) и назвал его Samba. Это серверная реализация протокола SMB, которая не требует установки какого-либо специального программного обеспечения на клиентской машине.

Samba обеспечивает:

  • Обмен файлами («расшаривание»)
  • Сетевую печать
  • Аутентификацию и авторизацию
  • Разрешение имен
  • Объявление об услуге (в режиме просмотра)

Функциональность Samba реализована двумя демонами: smbd и nmbd. Эти демоны (фоновые службы) устанавливаются и запускаются практически во всех дистрибутивах Unix и Linux. Samba, как и NetBios/SMB у Windows, работает на портах 135, 137 и 445.

Так же как и SMB у Windows, Samba у Linux является одним из самых наименее защищенных и наиболее часто используемых протоколов. Существует длинный список уязвимостей и эксплоитов, которые используют Samba. Когда мы хотим использовать уязвимости в системах Linux, то одной из первых вещей, которые мы тестируем, является как раз Samba. Samba 3.6.3 и более ранние версии позволяют анонимным пользователям получать root-доступ через удаленный вызов Samba.

Чем больше мы знаем и понимаем, как работает Samba, тем более профессиональными сетевыми администраторами и Linux-хакерами мы станем. Давайте потратим немного времени на изучение этого очень важного и очень уязвимого протокола в Linux.

Читать также:  Использование приложения Secure Shell в браузере Chrome для SSH-подключения к удаленным устройствам

Шаг 1. Где находится Samba

Чтобы найти файлы Samba на нашей системе Kali, просто введем в консоли команду:

locate smb

Когда вы это сделаете, то увидите десятки файлов с «SMB» или «Samba» в их именах, включая многочисленные модули Metasploit для использования Samba. В верхней части этого списка находится основной файл конфигурации для Samba: /etc/samba/smb.conf. Как почти у любого приложения или демона в Linux у Samba есть файл конфигурации, расположенный в директории /etc. Это простые текстовые файлы, которые можно редактировать для изменения конфигурации приложения или демона. И Samba в этом ничем не отличается.

Откроем ее конфигурационный файл с помощью какого-нибудь текстового редактора на ваш вкус. В этой статье мы воспользуемся редактором Leafpad.

kali> leafpad /etc/samba/smb.conf

У этого файла конфигурации много комментариев, поясняющих, что к чему. Для получения дополнительной информации о настройке Samba вы можете ввести следующую команду:

kali> man samba

Нужно обратить ваше внимание на то, что этот файл конфигурации использует два различных типа комментариев. Первый — это всем знакомые «#», но кроме него также используется «;». В этом файле вы увидите оба типа комментариев.

Шаг 2. Конфигурирование Samba

У Samba есть команда, позволяющая проверить синтаксис файла конфигурации. Это:

kali> testparm -v

Когда вы вводите эту команду в терминале, она проверяет ваши параметры и синтаксис на работоспособность.

Важная деталь — всякий раз, когда вы вносите изменения в файл конфигурации, вы должны перезапустить Samba для того чтобы эти изменения вступили в силу. Чтобы перезапустить Samba введите в консоли:

kali > service smb restart

Шаг 3. Создание пользователя Samba

У Samba есть собственная система аутентификации при помощи пароля. Вы можете создавать пользователей с доступом к Samba, если они существуют, в файле /etc/passwd (другими словами, все они являются пользователями системы) с помощью команды:

kali > smbpasswd -a <имя пользователя>

Мы добавили пользователя с именем OTW в список пользователей Samba с нашим паролем.

Читать также:  Как перехватывать и дешифровать пароли Windows по локальной сети

Шаг 4. Настройка рабочей группы

Если вы хотите присоединиться к рабочей группе с машины под управлением Windows, то вам понадобится имя рабочей группы Windows. В разделе «Global Settings» вы можете увидеть, что значение по умолчанию установлено в значение workgroup, но, конечно же, здесь должно быть указано имя рабочей группы Windows, к которой мы планируем подключать Samba.

Шаг 5. Отчеты и логирование

Следующее, что мы сделаем — перейдем в разделе «Global Settings» в подраздел «Debugging/Accounting» («Отладка/Отчетность»).

Здесь вы можете увидеть местоположение файла журнала (лога):

log file = /var/log/samba/log.%m

Максимальный размер журнала (Kb):

max log size = 1000

Следующий параметр определяет, нужно ли использовать только syslog для централизации ведения нашего лога в отдельной системе логирования:

syslog only = no

И многие другие вещи.

Шаг 6. Аутентификация

Если мы переместимся немного ниже все в том же разделе Global Settings, то мы перейдем к подразделу «Authentication».

Здесь мы можем определить тип сервера Samba:

server role = standalone server

Должна ли Samba подчиняться/использовать подключаемые модули аутентификации (PAM):

obey pam restrictions = yes

Должна ли Samba синхронизировать пароли с системой паролей Linux/Unix:

unix password sync = yes

И, наконец, как Samba обрабатывает настройки пароля.

Шаг 7. Samba Переменные

Вы, наверное, заметили, что в файле конфигурации Samba используются переменные, начинающиеся со знака процента «%». Например, в разделе выше, посвященном логированию, мы видели такую строку:

log file = /var/log/samba/log.%m

«%m» в конце представляет переменную. Если мы используем приведенную ниже таблицу, мы увидим, что «%m» представляет «имя клиента NetBIOS». Если имя NetBIOS для данного компьютера было бы «NullByte», это означало бы, что журналы (логи) для этой системы будут расположены по следующему адресу:

log file = /var/log/samba/log.NullByte

Когда мы заменили значение переменной на имя NetBIOS-клиента

Читать также:  Metasploit для начинающего хакера. Как установить новые модули ( Часть 9)

Хотя в этот файл конфигурации можно внести гораздо больше изменений, во многих случаях настройка по умолчанию будет достаточной для большинства случаев использования Samba, хотя и не оптимального. В ближайшее время мы сделаем вторую статью по Samba, где настроим ее для оптимального совместного использования файлов, так что обязательно возвращайтесь.

Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21).

Добавить комментарий