СТОП! Этот инструмент больше не поддерживается!
Решено объединить функции SMBSR и RSMBI, пожалуйста, обращайтесь к SMBAT.
SMBSR — что это?
SMBSR — это скрипт на Python, который для заданного CIDR/IP/IP-файла/ИМЕНИ_ХОСТА(ов) перечисляет все службы SMB, прослушивающие порт 445 среди целей, и пытается пройти аутентификацию; если аутентификация успешна, то все папки и подпапки рекурсивно обходятся для поиска секретов в файлах и... секретных файлов. Для сканирования целей на открытые порты SMB используется модуль masscan. SMBSR считает что-то интересным на основе:
- Содержимого
- Расширения
- Имени
Интересные ключевые слова, которые должен искать инструмент, задаются через командную строку, а также:
- Чёрный список расширений файлов (этот список автоматически обновляется во время выполнения на основе исключений, вызванных потоком, и типа файла)
- Чёрный список общих папок
- Чёрный список папок (Внимание, подпапки также игнорируются)
- Количество потоков
- Нужно ли использовать masscan?
- Интересные расширения файлов (например, ppk, kdbx, ...)
- Максимальный размер файла (в байтах), разрешённый для проверки (Поверьте, слишком большие файлы могут занять много времени)
- Нужно ли экспортировать результаты в два CSV-файла?
- Насколько глубоко просматривать подпапки?
- Список регулярных выражений для сопоставления
- IP-адрес контроллера домена для LDAP-привязки
- Другие общие и обязательные параметры
Конечно, всё сохраняется локально в базе данных SQLite. База данных содержит одну таблицу для совпадений вида «надеюсь, это пароль от DA» под названием smbsr со следующими столбцами:
- file
- share
- ip
- position
- matchedWith
- Creation Date
- Last Modified Date
- Last Accessed Date
- Count (если в одном файле найдено более одного совпадения, этот счётчик увеличивается)
А также ещё одну таблицу для списка интересных файлов со следующими столбцами:
- file
- share
- ip
- Creation Date
- Last Modified Date
- Last Accessed Date
Поддерживаемые файлы
SMBSR научился читать:
- .csv — с помощью встроенных средств Python
- .doc — через antiword
- .docx — через python-docx2txt
- .eml — с помощью встроенных средств Python
- .epub — через ebooklib
- .gif — через tesseract-ocr
- .jpg и .jpeg — через tesseract-ocr
- .json — с помощью встроенных средств Python
- .html и .htm — через beautifulsoup4
- .mp3 — через sox, SpeechRecognition и pocketsphinx
- .msg — через msg-extractor
- .odt — с помощью встроенных средств Python
- .ogg — через sox, SpeechRecognition и pocketsphinx
- .pdf — через pdftotext (по умолчанию) или pdfminer.six
- .png — через tesseract-ocr
- .pptx — через python-pptx
- .ps — через ps2text
- .rtf — через unrtf
- .tiff и .tif — через tesseract-ocr
- .txt — с помощью встроенных средств Python
- .wav — через SpeechRecognition и pocketsphinx
- .xlsx — через xlrd
- .xls — через xlrd
LDAP
Наконец-то! Теперь учётные данные домена, указанные для SMB-подключений, также можно использовать для получения списка объектов компьютеров из Active Directory.
reg_gen.py
В последнем обновлении SMBSR получил возможность искать секреты, соответствующие заданному регулярному выражению (см. файл regulars.txt с несколькими хорошими примерами для сопоставления). Благодаря этой новой суперспособности я также реализовал новый скрипт, который на основе заданного списка слов генерирует список регулярных выражений, соответствующих шаблонам паролей, найденным в этом списке. Перед выводом всего списка регулярных выражений выполняется сортировка (sort -u). Скрипт можно оптимизировать, если шаблон содержит, например, два или более символов ascii_lower подряд, но пока это не сделано.
Требования
pip3 install -r requirements.txt
Также необходимо установить:
- krb5
- libkrb5-dev
- tesseract-ocr
- unrtf
- antiword
Использование
Например, из папки проекта:
./smbsr.py -IP 127.0.0.1 -word-list-path tomatch.txt -multithread -max-size 1000 -T 2 -username OB -password '****' -domain OB -file-extensions dll,exe,bin
Благодарности
- Всем, кто поможет найти проблемы и улучшить проект
- Retrospected: за помощь в отладке кода каждую пятницу и обсуждение новых функций
- ropnop: за работу над windapsearch.py