??? Сетевой протокол SMB.
???? Приветствую тебя user_name.
• Любой
пентестер должен уметь осуществлять атаки на
SMB. Но прежде чем перейти к делу, мы разберемся, что представляет из себя данный протокол.
??
SMB (Server Message Block) — это сетевой протокол
прикладного уровня для удалённого доступа к файлам,
принтерам и другим
сетевым ресурсам, а также для межпроцессного взаимодействия. Как правило, работает на
445 или
139 порту (в зависимости от сервера).
• Первая версия протокола, также известная как
Common Internet File System (CIFS) была разработана компаниями
IBM, Microsoft, Intel и
3Com в
1980-х годах;
• Вторая версия протокола, была разработана целиком компанией Microsoft, поэтому в Windows SMB доступен по-умолчанию, сразу же после установки.
• В 1992 году появилась Samba — свободная реализация протокола SMB для
UNIX-подобных операционных систем. Так как Microsoft не любит делиться своими наработками, разработчикам Samba пришлось провести
обратную разработку этого протокола.
•
Аутентификация в SMB состоит из
двух уровней защиты:
user-level (пользовательский уровень) и
share-level (уровень совместно используемого ресурса). Под
share понимается файл, каталог,
принтер и т.д.
• Аутентификация на уровне user-level означает, что клиент, который пытается получить доступ к ресурсу на сервере, должен иметь
user_name и
password. Если аутентификация прошла
успешно, клиент имеет доступ ко всем доступным ресурсам сервера,
кроме ресурсов с share-level-защитой.
• Аутентификация на уровне share-level означает, что доступ к ресурсу контролируется
только паролем, установленным конкретно на этот ресурс. В отличие от
user-level, этот уровень защиты
не требует имя пользователя для аутентификации и не устанавливается никакая уникальность текущего пользователя.
• Самая частая ошибка при использовании данного протокола заключается в использовании
стандартных учетных данных, а иногда и
отсутствие аутентификации для доступа к важным ресурсам сервера. О
дефолтных паролях я уже писал очень много, не будем делать акцент на
данную тему.
• Второй недостаток - Samba-сервера:
огромное количество уязвимостей, поэтому их использование небезопасно. Достаточно просто ввести в Google
«samba server exploit», чтобы получить огромный список эксплойтов. Но не смотря на свою печальную известность, Samba-сервера используются
75% предприятий.
Благодаря
Nmap NSE мы можем определить
версию сервера:
nmap -p445 -script smb-protocols target ip
или
nmap -p139 —script smb-protocols target ip
Мы также можем попытаться узнать дополнительную информацию, используя:
nmap -sC -p 139,445 -sV target ip
• Благодаря этому запросу, мы можем узнать
версию сервера и попробовать найти информацию о том,
является ли данная версия уязвимой или нет.
• Есть много способов получить информацию об атакуемом сервере. Самый быстрый способ - использование инструмента под названием
enum4linux или
smbmap.
• Для быстрого поиска
конфиденциальных данных в SMB можно использовать
SMBSR. Это скрипт принимает адрес или список хостов, находит все открытые службы SMB (445) и пытается аутентифицироваться. Для сканирования портов SMB используется модуль
masscan. Интересные ключевые слова, которые должен искать инструмент, определяются в командной строке. (о скрипте узнал у
SHADOW:Group, за что автору большое спасибо).
• Даже если мы не смогли найти какую-либо информацию, мы можем попытаться поймать
ntlm хеш с помощью
responder: https://pentestlab.blog/2017/12/13/smb-share-scf-file-attacks
• В общем, информации по данной теме очень много и я рекомендую начать с отличной книги по SMB
на русском языке: https://hackware.ru/?p=11141 приятного чтения и изучения.
Твой S.E.
#SMB #Пентест
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram