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
proftpd-sftp-copy-file-write — ProFTPD 1.3.9d - Alta - Remota - Privilegio residual / Escritura de archivos - La copia de archivos por SFTP omite el permiso WRITE en el destino | Kitploit
Herramientas/GitHubGitHub/abraxas/proftpd-sftp-copy-file-write
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebVirtualización de SeguridadPruebas de PenetraciónPapers e InvestigaciónLabs y Práctica

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 →
GitHubabraxas/proftpd-sftp-copy-file-write

proftpd-sftp-copy-file-write

ProFTPD 1.3.9d - Alta - Remota - Privilegio residual / Escritura de archivos - La copia de archivos por SFTP omite el permiso WRITE en el destino

Ver Repositorio
6hace 3 díasAún no revisado
Compartir

Abraxas Labs - proftpd-sftp-copy-file-write

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  proftpd-sftp-copy-file-write

proftpd-sftp-copy-file-write

Clase: Privilegio residual / Escritura de archivos Alcance: Remoto

ProFTPD 1.3.9d (f59f248) - proftpd.org

El contrib mod_sftp anuncia copy-file una vez que SFTPEngine está activado (SFTP_FXP_EXT_DEFAULT). fxp_handle_ext_copy_file ejecuta la ESCRITURA de destino más AllowOverwrite solo si pr_fsio_stat(dst) tiene éxito. Un destino que aún no existe omite esa comprobación. pr_fs_copy_file2 entonces crea el archivo con el UID de la sesión, incluso bajo <Limit WRITE> DenyAll.

FTP STOR y SFTP OPEN-write todavía pasan por xfer_pre_stor, que siempre hace dir_check de WRITE antes de crear. El Issue 2095 público es el inverso: SITE COPY omitía la LECTURA del origen. Este residual es la ESCRITURA de destino sobre un nombre nuevo.

IDsin CVE todavía
ClasePrivilegio residual / Escritura de archivos
AlcanceRemoto (SFTP autenticado)
CWECWE-863
CVSSAlto: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
ProductoProFTPD
Afectado1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d) contrib mod_sftp
AuthSFTP autenticado (SFTPEngine on)
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Fijé el tag v1.3.9d y leí fxp_handle_ext_copy_file. Este despacha el PRE_CMD de un SITE COPY falso. mod_copy registra copy_copy como CMD, no como PRE_CMD, por lo que la comprobación de ESCRITURA de destino de FTP nunca se ejecuta en esta ruta. La LECTURA del origen siempre pasa por dir_check. La ESCRITURA del destino no, a menos que el destino ya exista. El lab es SFTP en loopback sobre 127.0.0.1:18710.

Qué puede hacer un atacante

MétodoSinkPrivilegio
SFTP EXTENDED copy-file de un src legible a un nombre de destino que aún no existe, bajo <Directory> con <Limit WRITE> DenyAllpr_fs_copy_file2Integridad (probado en lab): crear ese archivo con el UID de la sesión. Recon (probado en lab): la LECTURA SFTP del destino devuelve los bytes del origen cuando la LECTURA del destino está permitida.
El mismo destino ya existedir_check WRITE + AllowOverwriteCerrado (probado en lab): la sobrescritura con copy-file devuelve permiso denegado.
SFTP OPEN / STOR / SCP upload del mismo destinoxfer_pre_storCerrado (probado en lab): la escritura/creación con OPEN es SSH_FX_PERMISSION_DENIED (estado 3).
copy-file sin autenticarAuth SFTPCerrado. Sin shell. El DAC de Unix sigue aplicándose.

Probado en lab vs inferido: la creación del destino, la LECTURA del testigo en el destino, la denegación de escritura con OPEN y la denegación de sobrescritura de un destino existente están probadas en lab. Lo no autenticado y el DAC de Unix siguen siendo inferidos del modelo de auth/chroot.

Requiere: contrib mod_sftp cargado, SFTPEngine on. Vhost SFTP típico de distro. SFTPExtensions -copyFile desactiva la extensión.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18710 mapea el contenedor 2222. Proyecto compose proftpd-sftp-copy-file-write. Tag de imagen proftpd-sftp-copy-file-write:1.3.9d. Testigo PROFTPD-SFTP-COPY-FILE-WRITE-WITNESS. Última línea:

SUCCESS PROFTPD-SFTP-COPY-FILE-WRITE dest-exists=yes open-write=denied copy-file=ok overwrite-denied=yes PROFTPD-SFTP-COPY-FILE-WRITE-WITNESS

La solución

Hacer dir_check de la ESCRITURA del destino incluso cuando el destino aún no existe, antes de pr_fs_copy_file2. O desactivar la extensión: SFTPExtensions -copyFile.

Referencias

  • github.com/proftpd/proftpd tag v1.3.9d (f59f248e26bdfa514443e42bf72a145641df635d)
  • fxp_handle_ext_copy_file en contrib/mod_sftp/fxp.c
  • SFTP_FXP_EXT_DEFAULT incluye copy-file
  • Inverso (omisión de LECTURA del origen en FTP SITE COPY, no este residual de ESCRITURA de destino): Issue 2095
  • CWE-863
Descargar herramienta