PowerHuntShares : Escanee fácilmente los recursos compartidos de red en su dominio Active Directory
Table of Contents
I. Introducción
En este artículo, descubriremos y aprenderemos a utilizar una herramienta para enumerar e inventariar los recursos compartidos de archivos de red dentro de un dominio de Active Directory.
La cuestión de los recursos compartidos de red en los sistemas de información de las empresas es compleja. A menudo muy numerosos y repartidos en decenas o centenares de sistemas, los permisos de acceso que poseen y la legitimidad de su presencia son a menudo difíciles de establecer. Por ejemplo, los equipos informáticos suelen tener dificultades para responder a las siguientes preguntas:
- ¿Cuántos archivos compartidos son accesibles a través de la red en su sistema de información?
- ¿Es legítimo y necesario que el grupo "Usuarios autenticados" tenga derechos de lectura y escritura en un determinado recurso compartido?
- ¿Siguen utilizando los equipos empresariales este tipo de uso compartido?
Todos estos ejemplos son posibles vectores de ataque en un ciberataque.
Como pentester, realizo sistemáticamente un análisis de los recursos compartidos de la red cuando efectúo pruebas de intrusión interna (operación que consiste en adoptar el enfoque de un atacante). En el 99% de los casos, este análisis me permite encontrar elementos interesantes: recursos compartidos accesibles sin autenticación; con permisos demasiado abiertos; documentos sensibles o que contienen contraseñas accesibles a todos los usuarios autenticados, etc.
La herramienta PowerHuntShares se creó para ayudar a los equipos de TI a resolver este problema. El objetivo de la herramienta es proporcionar un inventario y un análisis de los recursos compartidos de archivos y sus permisos dentro de un dominio de Active Directory. En concreto, identifica los privilegios excesivos y los recursos compartidos "de riesgo", y genera un informe basado en web que es fácil de examinar y utilizar:

Esta herramienta fue creada por Scott Sutherland, que trabaja para NetSPI.
II. Riesgos y definición de privilegio excesivo
A. ¿Qué constituye un privilegio excesivo?
Categorizar con certeza que un privilegio es "excesivo", es decir, que concede más derechos de los necesarios, no es tarea fácil.
En primer lugar, hay que distinguir entre derechos SMB y NTFS. Los derechos SMB se aplican al recurso compartido de red y permiten al usuario acceder, leer y/o modificar su contenido (subcarpetas y archivos). Los derechos NTFS, en cambio, se aplican al contenido de un recurso compartido (cada carpeta, subcarpeta y archivo) y, por tanto, pueden restringir aún más los permisos.
Para comprender mejor la diferencia entre los permisos NTFS y los permisos de uso compartido, lea nuestro artículo sobre el tema:
Así, un usuario puede tener derechos de lectura/escritura en un recurso compartido, pero estar bloqueado en todas las carpetas de ese recurso compartido debido a los derechos NTFS. Sin embargo, hay algunos casos bastante clásicos de permisos demasiado abiertos que se establecen en los recursos compartidos, y estos a menudo se derivan de los siguientes hechos:
- El grupo "Todos" es una referencia directa que se aplica tanto a los usuarios no autenticados como a los autenticados. En general, sólo se requiere una sesión nula para acceder a estos recursos.
- El grupo "BUILTINUsers" contiene todos los usuarios de dominio autenticados.
- El grupo "Usuarios autenticados" contiene todos los usuarios del dominio en sistemas integrados en el dominio. Esta es la razón por la que los usuarios de dominio pueden acceder a un recurso compartido cuando se han asignado permisos de recurso compartido a "BUILTINUsers".
Basándonos en estos tres primeros principios, ya podemos definir que un permiso de acceso concedido a uno de estos grupos es de facto excesivo, ya que se aplica a un grupo de personas que a priori no tienen nada en común. A excepción de algunos directorios específicos que afectarían a todos los oficios y empleados (procedimientos de emergencia, menú del comedor, etc.), es poco probable que sea necesario para los directorios y archivos de oficios.
Para llegar al meollo de la cuestión, tendrá que conocer los grupos, la estructura organizativa y la jerarquía de su empresa. Por supuesto, esto queda fuera del alcance de este artículo.
B. Gravámenes excesivos sobre las acciones: ¿cuáles son los riesgos?
El riesgo de establecer más derechos de los necesarios en un recurso compartido o carpeta de red es, en primer lugar, la fuga de datos. Cuanto mayor es el número de cuentas de usuario que tienen acceso a un directorio compartido, mayor es la posibilidad de que una de ellas se vea comprometida y de que estos derechos acaben beneficiando a un atacante. Esto puede conducir a la exfiltración de datos sensibles o a la elevación de privilegios (descubrimiento de contraseñas).
El caso del ransomware o cryptolocker es, por supuesto, digno de mención: algunos ransomware no sólo cifran los archivos locales de los sistemas comprometidos y los directorios compartidos montados. También pueden buscar todos los directorios compartidos del sistema de información y cifrar su contenido. Si todos los directorios compartidos son accesibles por el usuario de la estación de trabajo comprometida, el ransomware aprovechará estos privilegios abiertos para cifrarlo todo.
Otro ejemplo del riesgo de fuga "interna" es el caso de un becario del equipo que decide marcharse con todas las herramientas y documentos internos de la empresa.
También debes tener en cuenta que el acceso de escritura a una carpeta puede ser una fuente de ataque. Permite al atacante soltar archivos maliciosos con la esperanza de que se ejecuten, o incluso poner trampas a documentos existentes.
Además, el simple acceso de escritura a una carpeta puede utilizarse para robar credenciales, desde el momento en que el usuario abre una carpeta, sin consultar siquiera un solo archivo. Estos ataques utilizan archivos que son interpretados por "explorer.exe" (el explorador de archivos de Windows) cuando se consulta una carpeta (visualización de un acceso directo, icono, etc.).
Encontrará un ejemplo de esta operación en nuestro artículo sobre el tema:
El tema principal aquí es la superficie de ataque, su control y reducción. Controlando con mayor precisión los derechos de uso compartido, se puede reducir su superficie de ataque.
Obtenga más información sobre la superficie de ataque en nuestro artículo dedicado :
Por último, la asignación, enumeración y búsqueda de documentos confidenciales en recursos compartidos de red tiene su propio TTP en el marco MITRE ATT&CK:
El script PowerHuntShares que vamos a utilizar realiza un análisis automatizado de los recursos compartidos de red del host de un dominio y de sus permisos y, a continuación, elabora un informe en forma de página web. Esto le proporciona un análisis bastante exhaustivo, sin ningún esfuerzo, y con una visualización de los resultados que habla por sí misma.
PowerHunShares puede utilizar su sesión actual si está conectado a un sistema integrado en un dominio o a una cuenta de usuario especificada para ello (casos fuera del dominio o pruebas desde un usuario específico). Estas son sus principales funciones:
- Autenticación utilizando su sesión o una cuenta especificada.
- Detección automática de sistemas integrados en dominios a partir de Active Directory, o utilización de una lista de hosts a analizar si se especifica.
- Enumera los recursos compartidos y recopila las ACL (autorizaciones de acceso) para cada recurso compartido.
- Análisis y síntesis de los datos recogidos.
- Generación de informes HTML y CSV.
Veámoslo más de cerca.
B. Preparación del análisis y requisitos previos
Ahora vamos a aprender a utilizar el script PowerShell PowerHuntShares para realizar un análisis de los recursos compartidos de red de nuestro dominio y sus permisos.
Puede descargar el script PowerShell desde el siguiente enlace:
El análisis puede realizarse desde un sistema integrado en un dominio, así como desde un sistema no integrado en un dominio. Basta con adaptar las opciones en consecuencia. Además, debe elegir cuidadosamente la cuenta de usuario que utilizará para ejecutar el análisis:
- Si quieres tener una visión exhaustiva de todos los directorios compartidos disponibles en tu dominio, elige un usuario con permisos altos en el dominio para que no se te escape nada.
- Si quieres ver exactamente qué derechos y accesos tiene un usuario o una población de usuarios, tienes que utilizar una cuenta de usuario que sea miembro de esa población. Entonces obtendrás la visión real de a qué pueden acceder.
En todos los casos y para un uso "clásico", no necesitas derechos administrativos, ni a nivel de sistema local ni a nivel de dominio.
Una vez depositado el script en su sistema, primero debe establecer la política de ejecución de PowerShell en "bypass " para permitir la ejecución del script (en el nivel de sesión actual) y, a continuación, importar el script para poder utilizar estas funciones:
# Define bypass execution policy
Set-ExecutionPolicy -Scope Process Bypass
# Import module
Import-Module .PowerHuntShares.psm1
Ya puedes utilizar PowerHuntShares.
C. Ejecutar un análisis desde una estación de trabajo del dominio
Es hora de ejecutar nuestro primer escaneo. La forma más fácil de hacerlo es, por supuesto, ejecutarlo desde una estación de trabajo dentro del dominio, con una sesión abierta por un usuario válido en el dominio.
Si el módulo PowerHuntShares está cargado en su sesión PowerShell, simplemente ejecute el siguiente comando:
# PowerHuntShares analysis from a workstation and a domain session
mkdir C:Temptest
Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:temptest
En este caso, no es necesario especificar el nombre de dominio o la dirección IP del controlador de dominio, ya que la estación de trabajo ya está integrada en el dominio de Active Directory, y se utilizará la información de red y de sesión. Si desea analizar sólo determinados hosts, simplemente cree una lista con un host (nombre o dirección IP) en un archivo de texto, y especifíquela después de la opción"-HostList":
# PowerHuntShares analysis with current session and host list
Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temptest -HostList c:\temphosts.txt
Mientras se ejecuta PowerHuntShares, verá el progreso de su exploración en el terminal:

Esta información nos indica qué escaneos están en curso, cuántos sistemas y recursos compartidos se han descubierto, etc. Esta salida puede ser útil cuando se analizan sistemas de información que comprenden un gran número de hosts, ya que entonces un análisis de este tipo puede durar varias horas. La sección "ANÁLISIS DE LOS COMPARTIDOS" se ocupa de la agregación, el análisis y la síntesis de los datos recogidos. Aquí es donde empezamos a obtener una primera información sobre los descubrimientos realizados.
Al final de su ejecución, verás un pequeño resumen en este mismo terminal:

Aquí encontrarás los principales datos recogidos y analizados, incluyendo el número de recursos compartidos con permisos de lectura y escritura, los identificados como sensibles ("C$","inetpub","wwwroot", etc.), con permisos excesivos, etc.
Esto es sólo un resumen, ya que la información concreta y utilizable está contenida en el informe HTML en la carpeta que especificó en el lanzamiento (opción"-OutputDirectory"). Veremos su contenido en la siguiente sección.
- Cambiar de usuario
Como hemos visto anteriormente en este artículo, es totalmente posible analizar las acciones "desde el punto de vista" de otro usuario. Esto le da una mejor idea de lo que él o ella tiene acceso. Para ello, es necesario especificar la cuenta de usuario tras la opción "-Credenciales":
# Analyse depuis un poste intégré au domaine avec un autre compte
Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:temptest -Credentials domainuser
Una vez procesado el pedido, se le solicitará el nombre de usuario y la contraseña:

D. Ejecute un escaneo desde una estación de trabajo fuera del dominio
Ahora veremos cómo utilizar PowerHuntShares desde un ordenador que no sea de dominio. Para ello, utilizaremos las opciones "-DomainController" para especificar la dirección IP o el nombre completo del controlador de dominio, y "-Credentials" para especificar la cuenta de usuario que se utilizará:
# Analysis from a workstation not integrated into the domain
Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeOut 10 -OutputDirectory out -Credential it-connect.tech\LUANN_WARD -DomainController 192.168.56.102
Así de sencillo. Una vez más, tendrá que introducir la contraseña del usuario, y puede utilizar las distintas opciones vistas en la sección anterior.
Ahora vamos a centrar nuestra atención en lo más interesante de todo, el informe HTML y CSV producido por PowerHuntShares, que resume los datos recogidos. Lo encontrará en la carpeta que haya especificado al iniciar el programa (opción"-OutputDirectory"):

Utilice el menú de la izquierda para navegar por las distintas secciones del informe:

En la sección "Informes", la pestaña "Cuadro de mandos" le ofrece una visión general del análisis, con elementos clave como el porcentaje de recursos compartidos con acceso de sólo lectura, el acceso de escritura, la cronología de creación de los recursos compartidos identificados, etc.
La pestaña "Resumen de ordenadores" contiene la lista de ordenadores descubiertos y escaneados, la lista de los que exponen recursos compartidos de red, los que exponen recursos compartidos de red de sólo lectura, etc.
La pestaña "Compartir resumen" es sin duda una de las más interesantes:

Aquí es donde puede ver realmente los permisos excesivos identificados por PowerHuntShares. Teniendo en cuenta el usuario con el que se realizó el análisis:
- Descubiertas: contiene todas las acciones identificadas.
- No predeterminado: contiene todos los recursos compartidos que no tienen un nombre común y habitual en un sistema Windows (como "IPC$").
- Potencialmente excesivo: enumera todos los recursos compartidos con ACL en grupos "genéricos" como "Usuarios autenticados" o "Todos", y más en general con permisos potencialmente demasiado generosos.
- Acceso de lectura: todos los recursos compartidos con una ACL de acceso de lectura.
- Acceso de escritura: todos los recursos compartidos con una ACL de acceso de escritura.
- Riesgo alto: todos los recursos compartidos con nombres de recursos compartidos sensibles clásicos (como "wwwroot", " C", etc.).
A continuación, en función de sus normas de seguridad y necesidades empresariales, deberá determinar si estos accesos son legítimos o no y, a continuación, eliminarlos. He aquí un ejemplo de privilegios excesivos descubiertos en un recurso compartido :

Aquí podemos ver que el grupo "Usuarios autenticados", es decir, todos los usuarios autenticados en el dominio, tienen acceso de lectura/escritura al recurso compartido"Share_Direction", lo que parece anormal.
Dependiendo del tamaño de tu dominio y de las prácticas de seguridad de tus equipos informáticos, puedes tener más o menos resultados en el análisis automatizado. En cualquier caso, tendrás que comprobar manualmente los detalles de estos resultados y determinar su legitimidad e importancia.
Las pestañas del menú "Data Insights" ofrecen estadísticas como los nombres de acciones más utilizados, los principales propietarios de acciones y la distribución de acciones y ACL por subred. También en este caso, el objetivo es ofrecer una visión general del análisis, que puede resultar interesante en función de su contexto.
Por último, cada tabla ofrece la opción de descargar los detalles de la selección en formato HTML o CSV, este último muy útil para scripts o análisis automatizados:

El informe web es claramente una adición bienvenida a los puntos fuertes de la herramienta. Ofrece una visión diferente, centrándose en los puntos débiles relativos a los permisos de uso compartido de la red. Le animo a que le dedique algo de tiempo, para comprender plenamente cada sección, así como cada resultado, ya que el trabajo que implica puede ser bastante importante en los sistemas de información de medianas y grandes empresas.
V. Conclusión
PowerHuntShares es una potente herramienta para analizar e inventariar los recursos compartidos de red dentro de un dominio de Active Directory. Al automatizar la recopilación de permisos y generar informes detallados, le permitirá asignar y proteger mejor sus recursos compartidos de red. El uso de esta herramienta, combinado con un buen conocimiento de los grupos y permisos de su organización, puede reducir en gran medida los riesgos de seguridad asociados a los recursos compartidos de red.
Un paso importante que debe recordar es analizar manualmente los resultados y comprobar la legitimidad de los permisos detectados como excesivos. Una vez que domines la herramienta, todo lo que tienes que hacer es ejecutar un análisis y analizar los resultados con regularidad.
Para ir un paso más allá en este tema de la seguridad de los recursos compartidos en red, te invito a descubrir la herramienta Snaffler. Te permite buscar datos sensibles, como contraseñas o datos empresariales, en los recursos compartidos de red de los sistemas de tu dominio: