
SMBeagle - инструмент аудита файловых ресурсов.
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
SMBeagle — это кроссплатформенное средство аудита файловых ресурсов SMB, которое находит все файлы, доступные в сети, и сообщает, можно ли их прочитать и/или записать. Все результаты передаются либо в CSV-файл, либо на узел Elasticsearch, либо сразу в оба! 🚀
При запуске в Windows без указания учётных данных SMBeagle использует Win32 API для максимальной скорости и встроенную аутентификацию.
При запуске в Linux или при указании учётных данных используется кроссплатформенное сканирование через SMBLibrary.
SMBeagle до версии v3 был цифровым подписью, но v4 добавляет более атакующие функции. А именно, теперь он ищет и извлекает подозрительные файлы. Отлично подходит для пентестов, но мы не хотим подписывать такие функции цифровой подписью!
Если вам нужна оригинальная версия без функций захвата файлов, используйте v3, которая подписана.
У него два отличных сценария использования:
Компании любого размера часто имеют файловые ресурсы с ужасными правами доступа.
Крупные предприятия имеют обширные общие папки на файловых серверах, и нередко в них обнаруживаются конфиденциальные данные с неправильно настроенными разрешениями.
Малые предприятия часто имеют небольшой NAS в углу офиса вообще без ограничений!
SMBeagle обходит эти общие папки и перечисляет все файлы, которые может прочитать и записать. Если он может их прочитать, то и программы-вымогатели тоже смогут.
SMBeagle может предоставить пентестерам менее очевидные пути для повышения привилегий и бокового перемещения.
Выводя результаты напрямую в Elasticsearch, тестеры могут быстро найти читаемые скрипты и записываемые исполняемые файлы.
Находить атаки типа «водопой» и незащищённые пароли ещё никогда не было так просто! 🐱👤
Чтобы упростить задачу, мы добавили флаг -g, который теперь будет извлекать файлы, если они выглядят интересно!
Что выглядит интересно? По умолчанию мы ищем скрипты и имена файлов, содержащие такие слова, как password.
... Вы можете задать собственные регулярные выражения с помощью флага --file-pattern.
Подробные инструкции по установке и использованию панелей Kibana, которые предоставляют управленческую визуализацию и облегчают анализ данных, см. в документации Kibana.
docker pull punksecurity/smbeagleЕдинственный обязательный параметр — указать выходной поток: либо IP-адрес узла Elasticsearch, либо CSV-файл.
Хорошей отправной точкой является включение быстрого режима и вывод в CSV, но этот CSV может стать огромным в зависимости от количества найденных файлов.
./SMBeagle.exe -c out.csv -f
Сканирование обнаруженных публичных хостов и сетей отключено по умолчанию, так как SMBeagle обнаруживает сети из netstat, который включает все текущие подключения, например, сеансы браузера.
Чтобы просканировать публичную сеть, укажите её вручную, например: -n 1.0.0.1/32 или -n 1.0.0.0/24.
Punk security предоставляет образ Docker для Linux с SMBeagle.
Чтобы получить результаты, вам нужно примонтировать папку в контейнер и указать SMBeagle сохранять вывод в эту папку (или использовать Elasticsearch).
Хороший начальный пример:
docker run -v "$(pwd)/output:/tmp/output" punksecurity/smbeagle -c /tmp/output/results.csv -n 10.10.10.0/24
Обратите внимание, что обнаружение сети отключено при запуске в Docker, поэтому обязательно передавайте диапазоны, которые вы хотите сканировать, с помощью ключа командной строки -n, или хосты с ключом -h.
USAGE:
Output to a CSV file:
SMBeagle -c out.csv
Output to elasticsearch (Preferred):
SMBeagle -e 127.0.0.1
Output to elasticsearch and CSV:
SMBeagle -c out.csv -e 127.0.0.1
Disable network discovery and provide manual networks:
SMBeagle -D -e 127.0.0.1 -n 192.168.12.0./23 192.168.15.0/24
Do not enumerate ACLs (FASTER):
SMBeagle -A -e 127.0.0.1
-c, --csv-file (Group: output) Output results to a CSV
file by providing filepath
-e, --elasticsearch-host (Group: output) Output results to
elasticsearch by providing elasticsearch
hostname (default port is 9200 , but can be
overridden)
-a, --aggression (Default: 6) Vary scanning speed in a range
between 1 and 10. 10 being fastest [No
decimals]
--elasticsearch-port (Default: 9200) Define the elasticsearch
custom port if required
-f, --fast Enumerate only one files permissions per
directory
-l, --scan-local-shares Scan the local shares on this machine
-D, --disable-network-discovery Disable network discovery
-n, --network Manually add network to scan (multiple
accepted)
-N, --exclude-network Exclude a network from scanning (multiple
accepted)
-h, --host Manually add host to scan
-H, --exclude-host Exclude a host from scanning
-q, --quiet Disable unneccessary output
-S, --exclude-share Do not scan shares with this name (multiple
accepted)
-s, --share Only scan shares with this name (multiple
accepted)
--file-pattern Only fetch files matching these regexes
patterns
-g, --grab-files Grab files and store them locally
--loot (Default: loot) Path to store grabbed files
-E, --exclude-hidden-shares Exclude shares ending in $
-v, --verbose Give more output
-m, --max-network-cidr-size (Default: 20) Maximum network size to scan
for SMB Hosts
-A, --dont-enumerate-acls (Default: false) Skip enumeration of file
ACLs
-d, --domain (Default: ) Domain for connecting to SMB
-u, --username Username for connecting to SMB - mandatory
on linux
-p, --password Password for connecting to SMB - mandatory
on linux
--help Display this help screen.
--version Display version information.
SMBeagle выполняет много работы, которая разбита на слабо связанные модули, передающие данные друг другу. Это сохраняет простоту дизайна и позволяет легко расширять каждый модуль.
Вкратце:
