English | 简体中文
SMBpider is a Python-powered SMB enumeration built to help you scour Windows shares for sensitive files, credentials, or metadata in a fast and efficient way.
This tool performs recursive enumeration of SMB shares, helping you discover and download files, search for specific keywords (regex or fuzzy matches), and optionally read “juicy” file contents on the fly.
SMBspider supports authentication using cleartext credentials (username/password) or domain credentials, and it records previously downloaded files in an SQLite database to avoid re-downloading. It also offers an interactive tree browsing mode to let you selectively grab only what you need.
It can operate without SMB encryption (though it's not recommended) and may be tunneled through a SOCKS proxy if configured at the system or networking level. This flexibility makes SMBspider a convenient component for security assessments or general SMB share enumeration.
smbspider_demo.mp4
▄▄▄▄▄ █▀▄▀█ ███ ▄▄▄▄▄ █ ▄▄ ▄█ ██▄ ▄███▄ █▄▄▄▄
█ ▀▄ █ █ █ █ █ █ ▀▄ █ █ ██ █ █ █▀ ▀ █ ▄▀
▄ ▀▀▀▀▄ █ ▄ █ █ ▀ ▄ ▄ ▀▀▀▀▄ █▀▀▀ ██ █ █ ██▄▄ █▀▀▌
▀▄▄▄▄▀ █ █ █ ▄▀ ▀▄▄▄▄▀ █ ▐█ █ █ █▄ ▄▀ █ █
█ ███ █ ▐ ███▀ ▀███▀ █
▀ ▀ ▀ v1.4
[email protected] | dcollao.pages.dev | @3ky_sec
usage: smbspider.py [-h] --ip IP [--share SHARE] [--username USERNAME] [--password PASSWORD] [--domain DOMAIN] [--port PORT] [--remote_path REMOTE_PATH] [--local_path LOCAL_PATH] [--read] [--regex-search REGEX_SEARCH] [--fuzzy-search FUZZY_SEARCH] [--fuzzy-threshold FUZZY_THRESHOLD] [--tree-interactive] [--metadata] [--loglevel LOGLEVEL] [--hidden-read]
SMBspider
options:
-h, --help show this help message and exit
--ip IP SMB server IP address
--share SHARE SMB share name (optional). If not specified, enumerates shares
--username USERNAME SMB username (optional)
--password PASSWORD SMB password (optional)
--domain DOMAIN SMB domain (optional)
--port PORT SMB server port (default: 445)
--remote_path REMOTE_PATH
Initial directory on the SMB share
--local_path LOCAL_PATH
Directory to save downloaded files
--read Read 'juicy' files after downloading
--regex-search REGEX_SEARCH
Regex pattern(s) to search in downloaded files (e.g. 'password|credential|secret')
--fuzzy-search FUZZY_SEARCH
Path to a file containing words (one per line) to fuzzy-search in downloaded files
--fuzzy-threshold FUZZY_THRESHOLD
Minimum fuzzy match ratio (0-100). Default=80
--tree-interactive If set, show a tree preview and allow interactive selective download
--metadata Extract basic metadata from each downloaded file (also computes file hash)
--loglevel LOGLEVEL Set logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL). Default=INFO
--hidden-read Silently read all juicy files and store their contents in a separate JSON file
python smbspider.py --ip 10.129.180.104 --share "Users" --username "rose" --password "KxEPkKe6R8su"
python smbspider.py --ip 10.129.180.104 --share "Users" --username "rose" --password "KxEPkKe6R8su" --read
python smbspider.py --ip 10.129.180.104 --share "Users" --username "rose" --password "KxEPkKe6R8su" --fuzzy-search common.txt --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --share "Users" --regex-search "password|secret" --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --share "Users" --read --metadata
Spidering a Specific Share with Hidden Reading
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --share "Users" --hidden-read --metadata
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --share "Users" --remote_path "\Default\Appdata\Local\Microsoft\Windows\WinX\Group3\" --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --share "Users" --remote_path "\Default\Appdata\Local\Microsoft\Windows\WinX\Group3" --local_path "Group_Downloads" --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su"
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --fuzzy-search common.txt --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --regex-search "password|secret" --read
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --read --tree-interactive
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --read --metadata
Spidering All Shares with Hidden Reading
python smbspider.py --ip 10.129.180.104 --username "rose" --password "KxEPkKe6R8su" --hidden-read --metadata