Искать
Вы превысили запрос на
0 знаков

26. Поиск общих папок с помощью CrackMapExec, SMBMap, smbclient

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

Инструменты

- CrackMapExec

- SMBMap

- smbclient

- smbclient-ng

Кратко

- Статья посвящена изучению инструментов CrackMapExec, SMBMap и smbclient для работы с общими папками.

- В уроке рассматриваются методы перечисления доступных общих папок, подключения к ним и скачивания файлов.

- Нулевые сеансы в Windows могут предоставить доступ к общим ресурсам с пустым логином и паролем, что может представлять угрозу безопасности.

- Анонимный доступ к общим ресурсам возможен через гостевые учетные записи.

- В статье представлены примеры использования CrackMapExec, SMBMap и smbclient для перечисления и подключения к общим папкам.

- Упоминаются различия между инструментами smbclient и smbclient-ng, а также их функциональные возможности.

Раздел «Сбор дополнительной информации из доступных общих папок» начнем с продолжения изучения инструмента CrackMapExec и познакомимся с двумя новыми для нас утилитами для работы с общими папками: SMBMap и smbclient. В этом уроке научимся перечислять (enumerate) доступные общие папки, подключаться к ним и скачивать файлы. На данном этапе пентеста лабораторного стенда GOAD у нас нет учетных записей, поэтому будет искать ресурс, на котором разрешен анонимный доступ к общим папкам.

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Нулевой сеанс

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

Анонимный доступ

Аналогично нулевому сеансу, любой пользователь может получить доступ к общим ресурсам под гостевой учётной записью.

Попробуем на практике найти доступные общие ресурсы с помощью CrackMapExec.

Ищем доступные общие папки с помощью CrackMapExec

Переходим к практике. Проверим наличие общих папок доступных анонимно с помощью CrackMapExec:

Пример (bash)
crackmapexec smb 192.168.56.10-23 -u 'a' -p '' --shares 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Как видно на скриншоте, анонимно доступны общие папки двух серверов: 192.168.56.22 и 192.168.56.23. Занесем в наши заметки найденные общие папки, это нам пригодится в дальнейшем.

Далее мы попробуем перечислить папки еще двумя инструментами, подключиться к одной из них и скачать файл с нее на свою машину.

Находим общие папки с помощью smbmap

Попробуем другую утилиту для перечисление общих папок - SMBMap. Эта программа предустановлена в Kali Linux. Запустим для гостевой учетной записи:

Пример (bash)
smbmap -u "a" -p "" -H 192.168.56.22 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

В флаге -H указываем цель. В нашем случае, это сервер CASTELBLACK. Результат аналогичен выводу CrackMapExec, но представлен в другом виде.

Далее перечислим общие папки третьим инструментом и подключится к одной из них.

Подключение к общей папке с помощью smbclient

Инструмент smbclient - клиент для доступа к SMB/CIFS ресурсам на серверах (CIFS - старое название первой версии SMB).

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

Пример (bash)
smbclient -L 192.168.56.22 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Чтобы более детально показать работу с smbclient, нам нужно забежать вперед и использовать учетную запись, которую найдем позднее. Так как в планах нет возвращаться к перечислению общих папок, посмотрим на это сейчас.

Каким-то «волшебным способом» в наши руки попала учетная запись khal.drogo. Про «волшебные способы» получения учетных записей поговорим в следующих разделах. Запускаем CrackMapExec:

Пример (bash)
crackmapexec smb 192.168.56.10-23 -u 'khal.drogo' -p 'horse' --shares 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Для экономии места на скриншоте представлено сканирование только нужного сервера. Нам повезло, khal.drogo является администратором сервера.

Открываем help утилиты smbclient и смотрим как использовать учетные записи в ней:

Пример (bash)
smbclient -? 

Формат команды следующий:

Пример (bash)
smbclient -U [DOMAIN/]USERNAME[%PASSWORD] <service> 

Перечисляем доступные ресурсы для khal.drogo:

Пример (bash)
smbclient -U essos.local/'khal.drogo'%'horse' -L 192.168.56.23 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Глаз сразу цепляется за CertEnroll. Вероятно, сервер выполняет роль ADCS. Его наличие открывает множество векторов атак, о которых будем говорить в дальнейшем, а пока подключимся к какой-нибудь общей папке, например, public:

Пример (bash)
smbclient -U essos.local/'khal.drogo'%'horse' \\192.168.56.23\Users 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

И посмотрим содержимое:

Пример (bash)
ls 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Можем заметить несколько папок, например: Administrator, daenerys.targaryen, sql_svc. Вероятно это означает, что на сервер заходили другие пользователи и могли оставить чувствительную информацию.

Утилита smbclient позволяет так же скачивать файлы. Чтобы скачать файл, вводим команду get:

Пример (bash)
get <file> 

Далее рассмотрим доработанный smbclient, инструмент под названием smbclient-ng.

Работаем с общей папкой с помощью smbclient-ng

Рассмотрим инструмент smbclient-ng, который разработал p0dalirius (Security Researcher). Это более дружелюбная версия smbclient. Разницы практически нет, поэтому рассмотрим его для расширения кругозора.

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Установим smbclient-ng с помощью уже знакомого pipx:

Пример (bash)
pipx install smbclientng 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Теперь посмотрим документацию, чтобы понять как использовать инструмент:

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Нужные флаги:

  • -u: пользователь
  • -p: пароль
  • -d: домен
  • --target: цель, на которой доступен SMB сервер

Подключаемся:

Пример (bash)
smbclientng -u khal.drogo -p horse -d essos.local --target 192.168.56.23 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Используйте команду help для отображения доступных команд. Посмотрим информацию о сервере:

Пример (smbclientng)
info 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Выведем общие папки:

Пример (smbclientng)
shares 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Перейдем на CertEnroll:

Пример (smbclientng)
use CertEnroll
ls 

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

С помощью команды get можем скачать нужные файлы:

Здесь изображение или скриншот.
Для доступа необходимо авторизоваться на сайте Codebra.

Доступные в smbclient-ng команды:

  • bat: Форматированный (с подсветкой) вывод содержимого файла. Синтаксис: bat <file>
  • cat: Получить содержимое файла. Синтаксис: cat <file>
  • cd: Изменить текущую рабочую директорию. Синтаксис: cd <directory>
  • close: Закрытие соединения по SMB с удаленным компьютером . Синтаксис: close
  • connect: Подключение к удаленному компьютеру (полезно, если время ожидания подключения истекло). Синтаксис: connect
  • dir: Перечисление содержимого текущего рабочего каталога. Синтаксис: dir
  • exit: Выход из smbclient-ng. Синтаксис: exit
  • get: Скачать файл с сервера. Синтаксис: get [-r] <directory or file>
  • help: Отобразить список команд. Синтаксис: help
  • info: Получить информацию о сервере или общей папке. Синтаксис: info [server|share]
  • lbat: Форматированный (с подсветкой) вывод содержимого локального файла. Синтаксис: lbat <file>
  • lcat: Вывод содержимого локального файла. Синтаксис: lcat <file>
  • lcd: Изменить текущую локальную директорию. Синтаксис: lcd <directory>
  • lcp: Создать копию локального файла. Синтаксис: lcp <srcfile> <dstfile>
  • lls: Содержимое текущей локальной рабочей директории. Синтаксис: lls
  • lmkdir: Создать новую локальную директорию. Синтаксис: lmkdir <directory>
  • lpwd: Вывести текущую локальную директорию. Синтаксис: lpwd
  • lrename: Переименовать локальный файл. Синтаксис: lrename <oldfilename> <newfilename>
  • lrm: Удалить локальный файл. Синтаксис: lrm <file>
  • lrmdir: Удалить локальную директорию. Синтаксис: lrmdir <directory>
  • ls: Содержимое текущей удаленной рабочей директории. Синтаксис: ls
  • ltree: Отобразить древовидную структуру текущего локального каталога. Синтаксис: ltree [directory]
  • mkdir: Создать новую удаленную директорию. Синтаксис: mkdir <directory>
  • module: Загрузка модуля для дополнительных функциональных возможностей. Синтаксис: module <name>
  • mount: Создание точки монтирования удаленного общего ресурса на локальном компьютере. Синтаксис: mount <remote_path> <local_mountpoint>
  • put: Поместить локальный файл или каталог на удаленный общий ресурс. Синтаксис: put [-r] <directory or file>
  • reconnect: Подключиться повторно к удаленной машине (полезно, если время ожидания соединения истекло). Синтаксис: reconnect
  • reset: Сброс вывода TTY (полезно, если он был поврежден после печати двоичного файла в стандартном режиме вывода). Синтаксис: reset
  • rm: Удалить файл на удаленном ресурсе. Синтаксис: rm <file>
  • rmdir: Удалить директорию на удаленном ресурсе. Синтаксис: rmdir <directory>
  • shares: Список общих ресурсов (SMB), обслуживаемых удаленным ресурсом. Синтаксис: shares
  • sizeof: Рекурсивное вычисление размера папки. Синтаксис: sizeof [directory|file]
  • tree: Отобразить древовидную структуру текущего удаленного каталога. Синтаксис: tree [directory]
  • umount: Удаление точки монтирования удаленного общего ресурса на локальном компьютере. Синтаксис: umount <local_mount_point>
  • use: Выбор общей папки (SMB). Синтаксис: use <sharename>

Заключение

В этом уроке узнали больше об инструменте CrackMapExec и познакомились с SMBMap и smbclient, научились перечислять доступные общие папки. В следующем уроке автоматизируем поиск информации в доступных общих папках с помощью manspider.

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Итоги сбора дополнительной информации из доступных общих папокРазведка и сканирование
Поиск хостов с помощью NmapРазведка и сканирование
Поиск информации в общих папках с помощью manspiderРазведка и сканирование
Поиск сетевых уязвимостей с помощью Metasploit Framework (MSF)Разведка и сканирование
Перечисление информации с помощью enum4linux и rpcclientРазведка и сканирование
Обнаружение сетевых служб с помощью NmapРазведка и сканирование
Первое знакомство с PythonЗнакомство с Python
Поиск хостов с помощью CrackMapExecРазведка и сканирование
Поиск сетевых уязвимостей с помощью NmapРазведка и сканирование
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно