0 знаков
26. Поиск общих папок с помощью CrackMapExec, SMBMap, smbclient
Инструменты- 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:
crackmapexec smb 192.168.56.10-23 -u 'a' -p '' --shares
Для доступа необходимо авторизоваться на сайте Codebra.
Как видно на скриншоте, анонимно доступны общие папки двух серверов: 192.168.56.22
и 192.168.56.23
. Занесем в наши заметки найденные общие папки, это нам пригодится в дальнейшем.
Далее мы попробуем перечислить папки еще двумя инструментами, подключиться к одной из них и скачать файл с нее на свою машину.
Находим общие папки с помощью smbmap
Попробуем другую утилиту для перечисление общих папок - SMBMap. Эта программа предустановлена в Kali Linux. Запустим для гостевой учетной записи:
smbmap -u "a" -p "" -H 192.168.56.22
Для доступа необходимо авторизоваться на сайте Codebra.
В флаге -H
указываем цель. В нашем случае, это сервер CASTELBLACK
. Результат аналогичен выводу CrackMapExec, но представлен в другом виде.
Далее перечислим общие папки третьим инструментом и подключится к одной из них.
Подключение к общей папке с помощью smbclient
Инструмент smbclient - клиент для доступа к SMB/CIFS ресурсам на серверах (CIFS - старое название первой версии SMB).
Утилита smbclient так же может перечислять доступные сетевые ресурсы, как предыдущие инструменты. Для этих целей используйте флаг -L
:
smbclient -L 192.168.56.22
Для доступа необходимо авторизоваться на сайте Codebra.
Чтобы более детально показать работу с smbclient, нам нужно забежать вперед и использовать учетную запись, которую найдем позднее. Так как в планах нет возвращаться к перечислению общих папок, посмотрим на это сейчас.
Каким-то «волшебным способом» в наши руки попала учетная запись khal.drogo
. Про «волшебные способы» получения учетных записей поговорим в следующих разделах. Запускаем CrackMapExec:
crackmapexec smb 192.168.56.10-23 -u 'khal.drogo' -p 'horse' --shares
Для доступа необходимо авторизоваться на сайте Codebra.
Для экономии места на скриншоте представлено сканирование только нужного сервера. Нам повезло, khal.drogo
является администратором сервера.
Открываем help утилиты smbclient и смотрим как использовать учетные записи в ней:
smbclient -?
Формат команды следующий:
smbclient -U [DOMAIN/]USERNAME[%PASSWORD] <service>
Перечисляем доступные ресурсы для khal.drogo
:
smbclient -U essos.local/'khal.drogo'%'horse' -L 192.168.56.23
Для доступа необходимо авторизоваться на сайте Codebra.
Глаз сразу цепляется за CertEnroll
. Вероятно, сервер выполняет роль ADCS. Его наличие открывает множество векторов атак, о которых будем говорить в дальнейшем, а пока подключимся к какой-нибудь общей папке, например, public
:
smbclient -U essos.local/'khal.drogo'%'horse' \\192.168.56.23\Users
Для доступа необходимо авторизоваться на сайте Codebra.
И посмотрим содержимое:
ls
Для доступа необходимо авторизоваться на сайте Codebra.
Можем заметить несколько папок, например: Administrator
, daenerys.targaryen
, sql_svc
. Вероятно это означает, что на сервер заходили другие пользователи и могли оставить чувствительную информацию.
Утилита smbclient позволяет так же скачивать файлы. Чтобы скачать файл, вводим команду get
:
get <file>
Далее рассмотрим доработанный smbclient, инструмент под названием smbclient-ng.
Работаем с общей папкой с помощью smbclient-ng
Рассмотрим инструмент smbclient-ng, который разработал p0dalirius (Security Researcher). Это более дружелюбная версия smbclient. Разницы практически нет, поэтому рассмотрим его для расширения кругозора.
Для доступа необходимо авторизоваться на сайте Codebra.
Установим smbclient-ng с помощью уже знакомого pipx:
pipx install smbclientng
Для доступа необходимо авторизоваться на сайте Codebra.
Теперь посмотрим документацию, чтобы понять как использовать инструмент:
Для доступа необходимо авторизоваться на сайте Codebra.
Нужные флаги:
-u
: пользователь-p
: пароль-d
: домен--target
: цель, на которой доступен SMB сервер
Подключаемся:
smbclientng -u khal.drogo -p horse -d essos.local --target 192.168.56.23
Для доступа необходимо авторизоваться на сайте Codebra.
Используйте команду help
для отображения доступных команд. Посмотрим информацию о сервере:
info
Для доступа необходимо авторизоваться на сайте Codebra.
Выведем общие папки:
shares
Для доступа необходимо авторизоваться на сайте Codebra.
Перейдем на CertEnroll
:
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
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ