
3 инструмента, которые работают вместе для упрощения разведки общих файловых ресурсов Windows
Одна из самых трудоёмких задач для red teamer'а — погружение в файловые системы и общие ресурсы в попытке найти любую потенциально конфиденциальную информацию. SMBCrunch позволяет red teamer'у быстро находить Windows File Shares в сети, выполнять рекурсивный обзор директорий указанных общих ресурсов и даже забирать файл с удалённого ресурса, если он выглядит как лакомая цель.
В комплекте три (3) разных инструмента, работающих вместе. Прочитайте все три раздела ниже, чтобы понять, как они взаимодействуют.
Получая на вход файл (или gnmap-файл), SMBHunt находит все Windows File Shares, связанные с указанными серверами (если передан gnmap-файл, смотрит на серверы с открытым портом 445). Если для проверки не указаны учётные данные, он проверит доступность ресурсов через нулевую сессию.
Предупреждение: Если ваш пользователь имеет доступ к одному ресурсу на сервере, скрипт покажет все ресурсы, размещённые на этом сервере. Если ресурс указан в выводе, это не означает, что у вас есть доступ к нему. Используйте для этого следующий инструмент.
Этот скрипт предупреждает, если предоставленные учётные данные недействительны, чтобы избежать блокировки доменных учётных записей. Ключ "-f" отключает эту защиту.
Этот скрипт проверяет сервер только с одной учётной записью. Это сделано намеренно, так как сервер вернёт полный список ресурсов, если у пользователя есть доступ хотя бы к одному ресурсу на системе.
./SMBHunt.pl [-a <account>] -i <file> [-o <output_file>]
./SMBHunt.pl -a 'testdomain\john:hunter2' -i portscan445.gnmap -o shares_found.txt
./SMBHunt.pl -h
-a, --account <строка>
Учётные данные для проверки. Имена пользователей принимаются в формате 'Domain\Username:Password' ('Domain' необязательно). Если учётные данные не указаны, скрипт проверяет ресурсы через нулевую сессию.
-i, --inputFile <файл>
Файл со списком систем, разделённых новой строкой, или gnmap-файл результата сканирования портов, содержащий порт 445. Каждый сервер с открытым портом 445 будет проверен на наличие SMB-ресурсов.
-o, --output <файл>
Вывод результатов в файл.
-f, --force
Принудительно продолжает выполнение скрипта, даже если доменные учётные данные могут быть неверными.
--noipc
Не показывать IPC-ресурсы (IPC$).
--nohidden
Не показывать скрытые ресурсы (C$, IPC$, ADMIN$ и т.д.).
SMBList принимает выходной файл от "SMBHunt.pl" (или файл с ресурсами, разделёнными новой строкой в формате "\сервер\ресурс") и выполняет рекурсивный обзор директорий этих ресурсов с использованием предоставленных учётных данных. SMBList будет пытаться аутентифицироваться на ресурсе, пока не найдёт действительные учётные данные из предоставленного списка. Затем он сохранит списки директорий в указанную подпапку.
Это делает поиск по списку файлов чрезвычайно простым с помощью grep!
Лучший файл результатов: <директория>/ALL_COMBINED_RESULTS.txt
./SMBList.pl -c <credential/file> -s <share/file> -o <несуществующая_директория>
./SMBList.pl -c credentials_found.txt -s shares_found.txt -o share_listing -m 150
./SMBList.pl -h
-c, --credentials <учётная_запись/файл>
Одна учётная запись или файл с учётными записями для проверки. Учётные данные принимаются в формате 'Domain\Username:Password', разделённые новой строкой (если передаётся файл).
-s, --shares <ресурс/файл>
Один ресурс или файл с ресурсами для проверки. Каждый набор учётных данных будет проверяться на авторизацию, пока не будет найден действующий. Ресурсы должны быть в формате "\сервер\ресурс", разделённые новой строкой (если передаётся файл).
-o, --output <несуществующая_директория>
Будет создана новая директория с указанным именем. Для защиты результатов скрипт не может быть запущен, если эта директория уже существует. Она должна быть несуществующей!
-m, --maxexec <секунды>
Максимальное время (в секундах) на дамп любого одного ресурса. По умолчанию 300 секунд (5 минут).
-f, --force
Никогда не удалять ресурс из списка при ошибке и никогда не удалять учётную запись при сообщении о неудачном входе. Если вы используете этот флаг, убедитесь, что знаете, что делаете! Вы можете заблокировать учётные записи, если не будете осторожны!
-n, --nocreds
Не включать учётные данные в вывод. ПРЕДУПРЕЖДЕНИЕ: Если вы используете этот ключ, вы не сможете использовать вывод со следующим инструментом, "SMBGrab.pl".
Списки файлов от SMBList.pl можно передать через конвейер в эту утилиту, чтобы забрать нужные файлы с ресурсов. Исходный список от SMBList.pl следует сначала обработать через "grep" перед передачей в этот скрипт, иначе будут скачаны все файлы (что эквивалентно копированию всего ресурса и является плохой практикой).
Этот скрипт требует, чтобы в него был передан вывод SMBList.pl через конвейер. Смотрите "Пример использования" ниже.
./SMBGrab.pl [-s <директория>]
grep -i 'password.txt' share_listing/ALL_COMBINED_RESULTS.TXT | ./SMBGrab.pl -s savedfiles
./SMBGrab.pl -h
Если аргументы не указаны, файл извлекается из ресурса и выводится пользователю на экран. Он не сохраняется.
-s, --savedir <директория>
Директория для сохранения всех извлечённых файлов. Если эта директория не существует, она будет создана. Использование этого аргумента сохраняет файлы, но предотвращает их вывод на экран.
-a, --all
Читать все файлы, переданные через конвейер. Без этого флага скрипт защищает от случайной загрузки огромного количества файлов, ограничивая ввод 100 файлами.
-n, --noedit
Сохраняет файлы в исходном виде. Если этот флаг не используется, в конце каждого файла будет добавлена заметка с информацией о метаданных файла (время чтения/записи, расположение файла в ресурсе и т.д.).
-h, --help
Показать справку.
Не стесняйтесь обращаться ко мне с любыми изменениями или запросами функций!