
Rastrea redes enteras en busca de archivos interesantes en recursos compartidos SMB. Busca nombres de archivos o contenido de archivos - ¡regex compatible!
¡Manspider 2.0 ha llegado! Esto trae mejoras significativas:
--modified-after y --modified-before
PDFDOCXXLSXPPTX
# Run directly without installing
uvx --from git+https://github.com/blacklanternsecurity/MANSPIDER manspider --help
# Install globally
uv tool install git+https://github.com/blacklanternsecurity/MANSPIDER
# Run
manspider --help
pipx install git+https://github.com/blacklanternsecurity/MANSPIDER
Manspider utiliza Kreuzberg para la extracción de texto de varios formatos de archivo. Algunos formatos requieren dependencias adicionales del sistema:
# For OCR text extraction from images (PNG, JPEG, etc.)
sudo apt install tesseract-ocr
# For legacy Microsoft Office format support (.doc, .xls)
# Kreuzberg uses LibreOffice for conversion
sudo apt install libreoffice
Sin estas dependencias: Manspider seguirá funcionando para PDF, DOCX, XLSX, PPTX y archivos de texto, pero omitirá el OCR de imágenes y los formatos de Office antiguos.
docker run --rm -v ./manspider:/root/.manspider blacklanternsecurity/manspider --help
Nota: también hay un script auxiliar manspider.sh que montará automáticamente volúmenes para los directorios loot y logs de manspider, haciéndolo un poco más conveniente de ejecutar:
./manspider.sh --help
NOTA: los archivos coincidentes se descargan automáticamente en $HOME/.manspider/loot! (-n para deshabilitar)
$ manspider 192.168.0.0/24 -f passw user admin account network login logon cred -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -f passw -e xlsx csv -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -c passw -e xlsx csv docx pdf -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -e bat com vbs ps1 psd1 psm1 pem key rsa pub reg pfx cfg conf config vmdk vhd vdi dit -d evilcorp -u bob -p Passw0rd
Este ejemplo busca en directorios con nombres financieros archivos que contengan 5 o más números consecutivos (ej. 000202006.EFT)
$ manspider share.evilcorp.local --dirnames bank financ payable payment reconcil remit voucher vendor eft swift -f '[0-9]{5,}' -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -e ppk rsa pem ssh rsa -o -f id_rsa id_dsa id_ed25519 -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -e '' -c 'BEGIN .{1,10} PRIVATE KEY' -d evilcorp -u bob -p Passw0rd
# .kdbx - KeePass Password Database (KeePass, KeePassXC)
# .kdb - KeePass Classic Database (KeePass 1.x)
# .1pif - 1Password Interchange Format (1Password)
# .agilekeychain - Agile Keychain Format (1Password, deprecated)
# .opvault - OPVault Format (1Password)
# .lpd - LastPass Data File (LastPass)
# .dashlane - Dashlane Data File (Dashlane)
# .psafe3 - Password Safe Database (Password Safe)
# .enpass - Enpass Password Manager Data File (Enpass)
# .bwdb - Bitwarden Database (Bitwarden)
# .msecure - mSecure Password Manager Data File (mSecure)
# .stickypass - Sticky Password Data File (Sticky Password)
# .pwm - Password Memory Data File (Password Memory)
# .rdb - RoboForm Data File (RoboForm)
# .safe - SafeInCloud Password Manager Data File (SafeInCloud)
# .zps - Zoho Vault Encrypted Data File (Zoho Vault)
# .pmvault - SplashID Safe Data File (SplashID Safe)
# .mywallet - MyWallet Password Manager Data File (MyWallet)
# .jpass - JPass Password Manager Data File (JPass)
# .pwmdb - Universal Password Manager Database (Universal Password Manager)
$ manspider share.evilcorp.local -e kdbx kdb 1pif agilekeychain opvault lpd dashlane psafe3 enpass bwdb msecure stickypass pwm rdb safe zps pmvault mywallet jpass pwmdb -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -e pfx p12 pkcs12 pem key crt cer csr jks keystore key keys der -d evilcorp -u bob -p Passw0rd
$ manspider share.evilcorp.local -e docx xlsx pdf --modified-after 2026-01-01 -d evilcorp -u bob -p Passw0rd
Puedes ejecutar múltiples instancias de manspider al mismo tiempo. Esto es útil cuando una instancia ya está ejecutándose y quieres buscar lo que ha descargado (similar a grep -R). Para ello, especifica la palabra clave loot como objetivo, que buscará en los archivos descargados en $HOME/.manspider/loot.
Los valores predeterminados razonables ayudan a evitar escenarios no deseados como quedarse atascado en un solo objetivo. Todos ellos se pueden sobrescribir:
-m)-s)-t)C$, IPC$, ADMIN$, PRINT$ (sobrescribir con --exclude-sharenames)Manspider acepta cualquier combinación de los siguientes como objetivos:
Por ejemplo, podrías especificar cualquiera o todos estos:
192.168.1.250share.evilcorp.local192.168.1.0/24smb_hosts.txtloot (para buscar archivos ya descargados)/mnt/share (para buscar recursivamente en un directorio)
usage: manspider [-h] [-u USERNAME] [-p PASSWORD] [-d DOMAIN] [-l LOOT_DIR] [-m MAXDEPTH] [-H HASH] [-k] [-aesKey HEX] [-dc-ip IP] [-t THREADS] [-f REGEX [REGEX ...]] [-e EXT [EXT ...]]
[--exclude-extensions EXT [EXT ...]] [-c REGEX [REGEX ...]] [--sharenames SHARE [SHARE ...]] [--exclude-sharenames [SHARE ...]] [--dirnames DIR [DIR ...]]
[--exclude-dirnames DIR [DIR ...]] [-q] [-n] [-mfail INT] [-o] [-s SIZE] [-v]
targets [targets ...]
Busca datos jugosos en recursos compartidos SMB. Los archivos coincidentes y los registros se almacenan en $HOME/.manspider. Todos los filtros no distinguen entre mayúsculas y minúsculas.
argumentos posicionales:
targets IPs, nombres de host, rangos CIDR o archivos que contengan objetivos a rastrear (NOTA: también se admite búsqueda local, especifica el nombre del directorio o la palabra clave "loot" para buscar archivos descargados)
opciones:
-h, --help muestra este mensaje de ayuda y sale
-u, --username USERNAME
nombre de usuario para la autenticación
-p, --password PASSWORD
contraseña para la autenticación
-d, --domain DOMAIN dominio para la autenticación
-l, --loot-dir LOOT_DIR
directorio de loot (por defecto ~/.manspider/)
-m, --maxdepth MAXDEPTH
profundidad máxima a rastrear (por defecto: 10)
-H, --hash HASH hash NTLM para la autenticación
-k, --kerberos Usar autenticación Kerberos. Obtiene credenciales del archivo ccache (KRB5CCNAME) basado en los parámetros del objetivo
-aesKey, --aes-key HEX
clave AES a usar para la autenticación Kerberos (128 o 256 bits)
-dc-ip, --dc-ip IP Dirección IP del controlador de dominio. Si se omite, usará la parte del dominio (FQDN) especificada en el parámetro del objetivo
-t, --threads THREADS
hilos concurrentes (por defecto: 5)
-f, --filenames REGEX [REGEX ...]
filtrar nombres de archivo usando expresiones regulares (separados por espacios)
-e, --extensions EXT [EXT ...]
mostrar solo nombres de archivo con estas extensiones (separados por espacios, ej. `docx xlsx` para solo documentos de word y excel)
--exclude-extensions EXT [EXT ...]
ignorar archivos con estas extensiones
-c, --content REGEX [REGEX ...]
buscar contenido de archivos usando expresiones regulares (múltiples compatibles)
--sharenames SHARE [SHARE ...]
buscar solo recursos compartidos con estos nombres (múltiples compatibles)
--exclude-sharenames [SHARE ...]
no buscar recursos compartidos con estos nombres (múltiples compatibles)
--dirnames DIR [DIR ...]
buscar solo directorios que contengan estas cadenas (múltiples compatibles)
--exclude-dirnames DIR [DIR ...]
no buscar directorios que contengan estas cadenas (múltiples compatibles)
-q, --quiet no mostrar el contenido del archivo coincidente
-n, --no-download no descargar archivos coincidentes
-mfail, --max-failed-logons INT
limitar inicios de sesión fallidos
-o, --or-logic usar lógica O en lugar de Y (los archivos se descargan si coinciden el nombre de archivo O la extensión O el contenido)
-s, --max-filesize SIZE
no recuperar archivos de más de este tamaño, ej. "500K" o ".5M" (por defecto: 10M)
-v, --verbose mostrar mensajes de depuración
--modified-after DATE
mostrar solo archivos modificados después de esta fecha (formato: YYYY-MM-DD)
--modified-before DATE
mostrar solo archivos modificados antes de esta fecha (formato: YYYY-MM-DD)
Nota: Ejecutar el conjunto completo de pruebas requiere las dependencias opcionales del sistema listadas arriba (tesseract-ocr y libreoffice).
# Run tests
uv run pytest tests/
Este proyecto utiliza ruff para el linting y formateo.
# Run linter
uv run ruff check .
# Run linter with auto-fix
uv run ruff check --fix .
# Run formatter
uv run ruff format .