
3 herramientas que trabajan juntas para simplificar el reconocimiento de recursos compartidos de archivos de Windows
Una de las tareas que más tiempo consume para un red teamer es sumergirse en sistemas de archivos y recursos compartidos, intentando identificar cualquier información potencialmente sensible. SMBCrunch permite a un red teamer identificar rápidamente recursos compartidos de archivos de Windows en una red, realizar un listado recursivo de directorios de los recursos proporcionados, e incluso puede obtener un archivo del recurso remoto si parece un objetivo jugoso.
Hay tres (3) herramientas diferentes que trabajan juntas. Lea las tres secciones a continuación para hacerse una idea de cómo funcionan juntas.
Dado un archivo (o archivo gnmap), SMBHunt encuentra todos los recursos compartidos de archivos de Windows asociados con los servidores proporcionados (si se proporciona un archivo gnmap, busca servidores con el puerto 445 abierto). Si no se proporcionan credenciales para realizar la comprobación, verificará si hay recursos compartidos de sesión nula.
Advertencia: Si su usuario tiene acceso a un recurso compartido en el servidor, el script mostrará todos los recursos compartidos alojados por ese servidor. Si un recurso aparece en esta salida, no significa que tenga acceso a él. Use la siguiente herramienta para eso.
Este script le advierte si las credenciales que proporciona fallan para evitar bloquear cuentas de dominio. El modificador "-f" anula esta protección.
Este script solo verifica un servidor usando una credencial. Esto es por diseño, ya que el servidor responderá con una lista completa de recursos si el usuario tiene acceso solo a un recurso en el sistema
./SMBHunt.pl [-a <cuenta>] -i <archivo> [-o <archivo_salida>]
./SMBHunt.pl -a 'testdomain\john:hunter2' -i portscan445.gnmap -o shares_found.txt
./SMBHunt.pl -h
-a, --account <cadena>
Credenciales de usuario a probar. Los nombres de usuario se aceptan en la forma 'Dominio\Usuario:Contraseña' ('Dominio' es opcional) Si no se proporciona una cuenta, el script verifica recursos compartidos de sesión nula
-i, --inputFile <archivo>
Un archivo de sistemas separados por una nueva línea, o un archivo gnmap de un escaneo de puertos que contenga el puerto 445. Cada servidor con el puerto 445 abierto será verificado en busca de recursos compartidos SMB
-o, --output <archivo>
Imprime los resultados en un archivo
-f, --force
Fuerza al script a continuar incluso si la credencial de dominio puede ser incorrecta.
--noipc
No mostrar recursos compartidos IPC (IPC$)
--nohidden
No mostrar recursos compartidos ocultos (C$, IPC$, ADMIN$, etc)
SMBList tomará el archivo de salida de "SMBHunt.pl" (o un archivo de recursos compartidos separados por una nueva línea en el formato "\servidor\recurso") y realizará un listado recursivo de directorios de esos recursos utilizando las credenciales proporcionadas. SMBList intentará autenticarse en el recurso hasta que encuentre una credencial válida de la lista proporcionada. Luego almacenará los listados de directorios en una subcarpeta especificada.
¡Esto hace que el listado de archivos sea extremadamente fácil de grepear!
El mejor archivo de resultados para usar es: /ALL_COMBINED_RESULTS.txt
./SMBList.pl -c <credencial/archivo> -s <recurso/archivo> -o <directorio inexistente>
./SMBList.pl -c credentials_found.txt -s shares_found.txt -o share_listing -m 150
./SMBList.pl -h
-c, --credentials <credencial/archivo>
Una sola credencial o un archivo de credenciales a probar. Las credenciales se aceptan en la forma 'Dominio\Usuario:Contraseña' separadas por una nueva línea (si se proporciona un archivo)
-s, --shares <recurso/archivo>
Un solo recurso o un archivo de recursos a probar. Cada credencial será probada para autorización hasta que se encuentre una válida. Los recursos deben estar en la forma "\servidor\recurso", separados por una nueva línea (si se proporciona un archivo)
-o, --output <directorio inexistente>
Se creará un nuevo directorio con este nombre. Para protección de la salida, el script no se puede ejecutar si este directorio ya existe. ¡Debe ser un directorio que no exista!
-m, --maxexec <segundos>
La cantidad máxima de tiempo dedicado a volcar cualquier recurso, en segundos. El valor predeterminado es 300 segundos (5 minutos)
-f, --force
Nunca eliminar un recurso de la lista si da error y nunca eliminar una credencial si recibe un mensaje de inicio de sesión fallido. Si usa esta bandera, ¡asegúrese de saber lo que está haciendo! ¡Podría bloquear cuentas si no tiene cuidado!
-n, --nocreds
No incluir credenciales en la salida. ADVERTENCIA: Si usa este modificador, no puede usar la salida con la siguiente herramienta, "SMBGrab.pl".
Los listados de archivos de SMBList.pl se pueden canalizar a esta utilidad para obtener los archivos deseados de los recursos compartidos. El listado original de SMBList.pl debe ser "grepado" antes de pasarlo a este script, de lo contrario se descargarán todos los archivos (lo que equivale a copiar todo el recurso compartido y es malo)
Este script requiere que SMBList.pl sea canalizado hacia él. Vea "Ejemplo de uso" a continuación
./SMBGrab.pl [-s <directorio>]
grep -i 'password.txt' share_listing/ALL_COMBINED_RESULTS.TXT | ./SMBGrab.pl -s savedfiles
./SMBGrab.pl -h
Si no se proporcionan argumentos, el archivo se obtiene del recurso compartido y se muestra al usuario. No se guarda.
-s, --savedir <directorio>
Un directorio para guardar todos los archivos obtenidos. Si este directorio no existe, se creará. Usar este argumento guarda los archivos pero evita que se impriman en pantalla
-a, --all
Leer todos los archivos canalizados. Sin este modificador, el script protege contra la descarga accidental de grandes cantidades de archivos limitando la entrada a 100 archivos.
-n, --noedit
Esto preservará los archivos en su forma original. Si no se usa este modificador, se agregará una nota al final de cada archivo con información sobre los metadatos del archivo (horas de lectura/escritura, ubicación del archivo en el recurso compartido, etc.)
-h, --help
Muestra un menú de ayuda
¡No dude en contactarme con cualquier cambio o solicitud de funcionalidad!