SMBCrunch
Описание SMBCrunch
SMBCrunch представляет собой 3 инструмента, которые работают вместе для сбора информации о файловых шарах (совместных сетевых папках) Windows. Названия инструментов:
- SMBHunt
- SMBList
- SMBGrab
Одними из самых затратных по времени задачами ред тимеров (red teamer) является углубление в файловые системы и сетевые папки в попытке идентифицировать любую потенциально чувствительную информацию. SMBCrunch позволяет тестерам на проникновение быстро идентифицировать в сети Windows File Shares (сетевые папки), выполнить рекурсивный листинг директорий указанных шар и может даже собрать файлы с удалённых шар, если они выглядят интересными целями.
Домашняя страница: https://github.com/Raikia/SMBCrunch
Автор: Chris King
Лицензия: GPLv3
Справка по SMBHunt
Использование:
./SMBHunt.pl АРГУМЕНТЫ [ОПЦИИ]
Аргументы и опции:
Аргументы: -a, --account <строка> Учётные данные пользователя для тестирования. Имена пользователей принимаются в формате "ДОМЕН\ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ" ("ДОМЕН\" является опциональным) (Опциональные аргументы: если аккаунт не указан, скрипт проверит доступность общих папок в нулевой сессии) -i, --input <файл или слово> Цель или файл с целями, например, файл gnmap (результат сканирования Nmap) с данными сканирования 445 порта. Каждый сервер с открытым 445 портом будет проверен на наличие сетевых папок с общим доступом Опции: -o, --output <файл> Напечатать результаты в файл -f, --force Принуждает скрипт продолжать, даже если учётные данные для этого домена неверны --noipc Не показывать шары IPC --nohidden Не показывать скрытые шары (C$, IPC$, ADMIN$ и так далее)
Справка по SMBList
Использование:
./SMBList.pl АРГУМЕНТЫ [ОПЦИИ]
Аргументы и опции:
Аргументы: -c, --credentials <строка/файл> Строка или файл пользовательских учётных данных для тестирования. Имя пользователя принимается в форме "ДОМЕН\ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ" ("ДОМЕН\" является необязательным) (разделитесь в строке ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ можно настроить) -s, --shares <строка/файл> Строка или файл с сетевыми папками для тестирования. Каждые учётные данные будут протестированы на каждой из этих шар пока не будут найдены правильные. Шары должны быть в формате "\\server\share" -o, --output <строка> Будет создана новая директория с этим именем. Для защиты вывода, скрипт не может быть запущен, если эта директория уже существует. Это должна быть папка, которая ещё не существует! Опции: -m, --maxexec <число> Максимальное число времени расходуемое на получение любой одной шары, в секундах. По умолчанию это 300 секунд (5 минут) -f, --force Никогда не удалять шары из списка если она вызывает ошибку, и никогда не удалять учётные данные если для них получено сообщение о неудачном входе. Если вы используете этот флаг, убедитесь, что вы понимаете, что вы делаете! Вы можете заблокировать аккаунты если вы действуете неосторожно! -n, --nocreds Не включать учётные данные в вывод. ПРЕДУПРЕЖДЕНИЕ: Если вы используете этот переключатель, то вы не можете использовать этот вывод с ./SMBGrab.pl
Справка по SMBGrab
Использование:
./SMBGrab.pl АРГУМЕНТЫ [ОПЦИИ]
Аргументы и опции:
Аргументы: Если аргументы не используются, то скаченные файлы будут отображены на экране без сохранения. Опции: -s, --savedir <директория> Директория для сохранения всех скаченных файлов. Если эта директория не существует, то она будет создана. Использование этого аргумента сохраняет файлы, но файлы не будут выведены на экран. -a, --all Скачать все найденные файлы. Без этого переключателя, скрипт защищает против загрузки большого количества данных ограничивая ввода 100 файлами. -n, --noedit Это сохранить файлы в их оригинальной форме. Если не использовать этот переключатель, внизу каждого файла будет добавлена заметка, содержащая информацию об этом файле. -h, --help Показать справку
Руководство по SMBCrunch
Страница man отсутствует.
SMBHunt
Для заданного хоста, файла со списками хостов или файла gnmap (с результатами сканирования программой Nmap) находит все сетевые папки Windows данных серверов. Если предоставлен файл gnmap, то скрипт ищет сервера с открытым портом 445. Если для проверки не предоставлены учётные данные, то программа проверит доступность общих папок по нулевой сессии.
Предупреждение: если ваш пользователь имеет доступ к одной совместной папке на сервере, скрипт покажет все шары, размещённые на этом сервере. Если сетевая папка показана в выводе, то это не означает, что у вас есть доступ к этой шаре. Для определения возможности доступа используйте следующий инструмент SMBList.
Этот скрипт предупреждает вас, если предоставленные вами учётные данные не подошли, это сделано для того, чтобы избежать блокировки доменных аккаунтов. Переключатель "-f" отменяет эту защиту.
Этот скрипт проверяет только сервер, используя одну пару учётных данных. Это сделано специально, поскольку сервер ответит полным списком общих ресурсов, даже если пользователь имеет доступ только к одной общей папке в системе.
SMBList
Сохраняет рекурсивный листинг директорий всех обнаруженных сетевых папок. Вы можете указать список учётных данных для тестирования. Затем с помощью программы grep вы можете найти потенциально хорошие файлы на цели.
SMBList принимает файл вывода от "SMBHunt.pl" (или файл содержащий сетевые папки, разделённые переводом новой строки в формате "\server\share") и выполняет рекурсивный листинг этих общих папок используя предоставленные учётные данные. SMBList попытается аутентифицироваться на сетевых папках пока не будут найдены верные учётные данные из предоставленного списка. Затем скрипт сохранит списки файлов директорий в указанной подпапке.
Такой подход делает поиск по списку файлов с помощью команды grep крайне простым!
Самые полные результаты собраны в файле ALL_COMBINED_RESULTS.txt.
SMBGrab
Списки файлов из утилиты SMBList.pl могут быть переданы по трубе (контейнеру) в эту утилиту для скачивания всех нужных файлов с сетевых папок. Исходный список из SMBList.pl следует отфильтровать с помощью grep перед передачей в этот скрипт, в противном случае будут загружены все файлы (что эквивалентно копированию целой сетевой папки, что может быть плохо).
Примеры запуска SMBCrunch
Подключиться к указанному хосту (-i 192.168.0.101), с логином и паролем (-a 'Alexey:qweqwe123'), найденные сетевые папки записать в файл (-o shares_found.txt):
./SMBHunt.pl -a 'Alexey:qweqwe123' -i 192.168.0.101 -o shares_found.txt
Программой Nmap просканировать порты (-p 139,445) в подсети (192.168.0.0/24) и собранные данные сохранить в файл, удобный для анализа программой grep (-oG portscan445.gnmap):
sudo nmap 192.168.0.0/24 -p 139,445 -oG portscan445.gnmap
Используя файл с результатами сканирования Nmap из предыдущей команды (-i portscan445.gnmap), извлечь хосты с открытым портом 445 и подключиться с указанными учётными данными (-a 'Alexey:qweqwe123'), сохранить списки сетевых папок в файл (-o shares_found.txt):
./SMBHunt.pl -a 'Alexey:qweqwe123' -i portscan445.gnmap -o shares_found.txt
Используя файл со списком сетевых папок (-s shares_found.txt) подключиться к ним с указанными учётными данными (-c 'Alexey:qweqwe123'), составить списки файлов и сохранить их в указанную директорию (-o share_listing) расходуя на каждую шару не более 150 секунд (-m 150):
./SMBList.pl -c 'Alexey:qweqwe123' -s shares_found.txt -o share_listing -m 150
Из файла share_listing/ALL_COMBINED_RESULTS.txt, содержащего все списки файлов, отфильтровать только удовлетворяющие указанному шаблону (grep -i 'password.txt'), скачать их и сохранить в директорию (-s savedfiles):
grep -i 'password.txt' share_listing/ALL_COMBINED_RESULTS.txt | ./SMBGrab.pl -s savedfiles
Скачать исполнимые файлы (с расширением .exe) их всех сетевых папок, сохранить их в папку (savedfiles -n) и не добавлять в конец каждого файла информацию о нём (-s):
grep -i '[.]exe' share_listing/ALL_COMBINED_RESULTS.txt | ./SMBGrab.pl -s savedfiles -n
Установка SMBCrunch
Установка в Kali Linux
git clone https://github.com/Raikia/SMBCrunch cd SMBCrunch/ ./SMBHunt.pl -h
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S smbcrunch
Информация об установке в другие операционные системы будет добавлена позже.
Comments are Closed