Содержание:
С возвращением, мои хакеры!
Те из вас, кто использует 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.
Шаг 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 с нашим паролем.
Шаг 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-клиента
Хотя в этот файл конфигурации можно внести гораздо больше изменений, во многих случаях настройка по умолчанию будет достаточной для большинства случаев использования Samba, хотя и не оптимального. В ближайшее время мы сделаем вторую статью по Samba, где настроим ее для оптимального совместного использования файлов, так что обязательно возвращайтесь.
Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21).