Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
vfs-clone-acl — VFS para Git ab95cf51 - Alta - Local - Privilegio residual - clonar Authenticated Users GENERIC_WRITE | Kitploit
Herramientas/GitHubGitHub/abraxas/vfs-clone-acl
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónPapers e InvestigaciónMala ConfiguraciónRed Teaming
GitHubabraxas/vfs-clone-acl

vfs-clone-acl

VFS para Git ab95cf51 - Alta - Local - Privilegio residual - clonar Authenticated Users GENERIC_WRITE

Ver Repositorio
8hace 3 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - vfs-clone-acl

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vfs-clone-acl

vfs-clone-acl

Clase: Privilegio residual Alcance: Local

VFS for Git master ab95cf51 (etiqueta v2.0.26259.1) - Microsoft

CloneVerb crea PrimaryEnlistmentRoot con TryCreateDirectoryAccessibleByAuthUsers. Ese helper añade NT AUTHORITY\Authenticated Users GENERIC_READ|WRITE|EXECUTE|DELETE con ContainerInherit|ObjectInherit. El comentario habla de acceso elevado vs no elevado para el mismo usuario. El SID es todos los usuarios autenticados.

Después de que la víctima ejecute gvfs clone, otro usuario con sesión iniciada puede escribir en ese árbol, incluido src\.git\hooks. El repositorio sigue siendo propiedad de la víctima, por lo que git safe.directory no lo bloquea.

IDsin CVE todavía
ClasePrivilegio residual (ACL de directorio demasiado permisiva / plantado de hook)
AlcanceLocal
CWECWE-732, CWE-276
CVSSAlto: 7.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProductoVFS for Git
Afectadomaster ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a (etiqueta v2.0.26259.1). Solo Windows.
AuthLocal. La víctima ejecuta gvfs clone. El atacante es otro usuario autenticado.
LicenciaGNU Affero GPL v3.0
LabSolo 127.0.0.1. how=gadget (sin Windows nativo / ProjFS).

Esto es RCE en el host local como el clonador en el siguiente hook de git/GVFS. No es un shell SYSTEM. El lab solo plantó un archivo canary; no ejecutó un hook.

Qué puede hacer un atacante

La víctima ha clonado con GVFS. El atacante es otro principal Authenticated Users con sesión iniciada.

PrivilegioMétodo / sinkQué otorgaRecon / integridad / disponibilidadProbado en lab o inferido
Heredar GENERIC_WRITE en la raíz del enlistmentCloneVerb llama a TryCreateDirectoryAccessibleByAuthUsers(PrimaryEnlistmentRoot)Todo usuario autenticado puede escribir el árbolIntegridadProbado en lab en el gadget. La línea de icacls es NT AUTHORITY\Authenticated Users:(OI)(CI)(GR,GW,GE,D), SID S-1-5-11, máscara 0xe0010000
Heredar esa ACE a los hijos, incluido .git/hooksContainerInherit | ObjectInheritEl directorio de hooks es escribible por el atacanteIntegridadProbado en lab. authusers_hooks=yes
Plantar un archivo bajo src/.git/hooks como el atacanteescribir VFS-CLONE-ACL-WITNESSCanary en el directorio de hooks propiedad de la víctimaIntegridadProbado en lab. El propietario es el uid 1001 del atacante, el texto es el witness
Ejecutar un hook plantado como la víctima en el siguiente comando git/GVFSsobrescribir pre-command / cargador de GVFS en un clon desechableCódigo en el host como el clonadorIntegridadInferido. El lab solo plantó un archivo canary; no ejecutó un hook
Escribir la caché de objetos local de la misma formaLocalCacheResolver.cs mismo helperEl árbol de caché es escribible por Auth UsersIntegridadInferido. El lab solo clonó la raíz del enlistment
Negativo: ACL solo para el propietario0700, sin ACE de Authenticated UsersEscritura del atacante denegadaCerradoProbado en lab cerrado. La escritura del atacante es EACCES
other:: escribible por todosn/aEscritura POSIX otherCerradoProbado en lab cerrado. other_write=no
Escritura remota no autenticadan/aEscritura por redCerradoSegundo inicio de sesión local
Shell SYSTEMn/aLocalSystemCerradoEl siguiente hook se ejecuta como el clonador, no como LocalSystem

Restos del mismo pin: vfs-quote-breakout, vfs-mount-dehydrate, vfs-service-sid, vfs-hook-impersonate, vfs-install-cwd.

Cómo lo encontré

Fijé VFSForGit master ab95cf51 después del merge del 2026-09-28. Clone crea la raíz del enlistment con un helper cuyo comentario es UAC split-token. El SID es AuthenticatedUserSid. Eso es todo usuario con sesión iniciada, no el usuario creador.

Caminos equivocados ya registrados: tratar esto como escribible por todos other:: (no lo es; POSIX other no tenía escritura); afirmar SYSTEM; ejecutar un hook plantado en el lab. Teatro. Faltaba Windows nativo, así que el lab es un gadget de esas funciones como una ACL de grupo con nombre POSIX.

Lab

python3 vfs-clone-acl-Abraxas-Labs.py

o

cd lab
./run.sh

Gadget HTTP en 127.0.0.1:19650. Copia TryCreateDirectoryAccessibleByAuthUsers y aplica la misma ACE como una ACL de grupo con nombre POSIX (authusers). La última línea usa how=gadget.

SUCCESS vfs-clone-acl how=gadget auth-users-write=yes inherit=OI-CI attacker-hook-write=yes owner-only=eacces VFS-CLONE-ACL-WITNESS

La solución

Conceder al usuario creador (y opcionalmente a Administrators para UAC), no a AuthenticatedUserSid. El equivalente en icacls es (OI)(CI)(M) solo para el propietario.

Referencias

  • github.com/microsoft/VFSForGit master ab95cf51d6ffd0ee0e2feae7180078fe9ecbbb3a
  • CloneVerb.cs
  • WindowsFileSystem.cs TryCreateDirectoryAccessibleByAuthUsers
  • LocalCacheResolver.cs
  • CWE-732 · CWE-276

Licencia

GNU Affero GPL v3.0. Ver LICENSE. Solo lab en loopback. Sin garantía.

Descargar herramienta