• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Как работать с SMB при пентесте

Azrv3l

win32kfull
Эксперт
Регистрация
30.03.2019
Сообщения
215
Реакции
539
Вступление:
1.png


Любой пентестер должен уметь осуществлять атаки на SMB. Но прежде чем перейти к делу, давайте разберемся,
что же представляет из себя данный протокол.

Теория:
SMB (Server Message Block
) - сетевой протокол для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Как правило,
работает на 445 или 139 порту (в зависимости от сервера). Вторая версия этого протокола была разработана целиком компанией Microsoft, и в поэтому в Windows SMB доступен по-умолчанию,
сразу же после установки. В 1992 году появилась Samba — свободная реализация протокола SMB для UNIX-подобных операционных систем.
Так как Microsoft не любит делиться своими наработками, разработчикам Sabma пришлось провести обратную разработку этого протокола.

Аутентификация в SMB состоит из двух уровней защиты:
  • user-level (пользовательский уровень)
  • share-level (уровень совместно используемого ресурса).
Под share (выложенный в сеть ресурс) понимается файл, каталог, принтер, любая услуга, которая может быть доступна клиентам по сети.

Аутентификация на уровне user-level означает, что клиент, который пытается получить доступ к ресурсу на сервере, должен иметь username (имя пользователя) и password (пароль).
Если аутентификация прошла успешно, клиент имеет доступ ко всем доступным ресурсам сервера, кроме тех, что с share-level-защитой.

Аутентификация на уровне share-level означает, что доступ к ресурсу контролируется паролем, установленным конкретно на этот ресурс. В отличие от user-level,
этот уровень защиты не требует имя пользователя для аутентификации и не устанавливается никакая уникальность текущего пользователя.
В обоих этих уровнях защиты используется шифрование.

Самая частая ошибка при использовании данного протокола заключается в использовании стандартных или легко угадываемых учетных данных,
а иногда и отсутствие аутентификации для доступа к важным ресурсам сервера. Администраторы обязаны использовать надежные пароли для пользователей,
которые хотят получить доступ к ресурсам, используя SMB.

Второй недостаток - Samba-сервера. За 28 лет своего существования было выявлено огромное количество уязвимостей, поэтому их использование априори небезопасно. Не верите мне?
Просто введите в Google «samba server exploit», чтобы получить букет эксплойтов для этого сервера. В Metasploit хранится так много вспомогательных сканеров и эксплойтов для Samba-сервера, что я уже сбился со счету!

Не смотря на свою печальную известность, Samba-сервера используются 75% предприятий [прим. ред. - в оригинальной статье ни одного ссылки на источник].
Обнаружили мы открытый 445 или 139 порты в Nmap, что же дальше?

От теории к практике
Итак, первое, что мне нравится делать, - это использовать Nmap-сценарии, также известные как NSE. Это очень мощная функция Nmap, и, вероятно, потребуется отдельная статья, чтобы продемонстрировать ее в полную силу.
Чтобы определить версию сервера, наберите в терминале:
Bash:
nmap -p445 —script smb-protocols <target ip>

или
Bash:
nmap -p139 —script smb-protocols <target ip>

Для 445 и 139 порта, соответственно.
Мы также можем попытаться узнать дополнительную информацию, используя:
Bash:
nmap -sC -p 139,445 -sV 10.0.2.30

2.png


Ницца! Теперь мы знаем версию Samba, работающую на сервере. Теперь просто можно зайти в Google и попробовать найти информацию о том,
является ли данная версия уязвимой или нет.

Это замечательно, но что если сервер с Samba исправен?

Есть много способов выудить информацию об атакуемом сервере. Самый быстрый способ - использование инструмента под названием enum4linux. Однако результат, при использовании enum4linux иногда разочаровывает.
Поэтому я чувствую себя уютнее, когда использую smbclient и smbmap.

Но давайте сначала попытаемся подключиться к серверу вручную. Для этого перейдем в файловый менеджер и введем его IP-адрес:
3.png


Я, на самом деле, даже и не знаю, почему. Иногда такое случается, но, как правило, все в порядке и подключиться удается.
Во всяком случае, такая ошибка нам дает понять, почему smbclient и smbmap лучше.

Давайте сначала попробуем воспользоваться smbmap. Чтобы использовать его базовую версию, введите:
4.png


Аргумент -H служит для указания имени хоста, а -R - рекурсивный ключ, то есть он будет проходить через каждый каталог и выводить список файлов. Хотя я вынужден сказать вам,
что сейчас никаких ошибок не возникло из - за того, что разрешен на сервере разрешен анонимный вход, то есть на реальной машине нам,
вероятно, понадобились бы имя пользователя и пароль.

Используя smbmap, мы можем скачивать и удалять файлы на сервере (а также загружать свои). Но что, если мы хотели бы получить полноценную командную строку для взаимодействия с системой?
Это возможно с smbclient. Давайте попробуем это сделать.
5.png


Эта команда пытается установить анонимный вход в систему с Metasploitable, чтобы мы могли видеть, к каким файлам мы можем получить доступ.
Вы видите, что соединение успешно установлено, и у нас есть доступ к общим ресурсам, таким как opt и tmp.

Теперь, как мне воспользоваться smbshell в любом из дисков? Для этого нужно выполнить следующую команду
6.png


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

Послесловие:
Cybred (авторы данного перевода)- канал об информационной безопасности и конкурентной разведке, вдохновленный идеями олдскульных андеграундных интернет-сообществ,
о свободе распространения информации в сети и всеобщей взаимопомощи.
Статья доступна в оригинале на английском языке - читать.
ТС взял статью здесь
 

Вложения

  • 1.png
    1.png
    19.2 КБ · Просмотры: 8
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх