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
vsftpd-cmds-denied-alias — vsftpd 3.0.5 - Alta - Remota - Privilegio residual - cmds_denied omite alias RFC (XRMD) | Kitploit
Herramientas/GitHubGitHub/abraxas/vsftpd-cmds-denied-alias
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónAuditoría de ConfiguraciónSeguridad de RedesPruebas de PenetraciónPapers e InvestigaciónLabs y Práctica
GitHubabraxas/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

vsftpd 3.0.5 - Alta - Remota - Privilegio residual - cmds_denied omite alias RFC (XRMD)

Ver Repositorio
28hace 7 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 - vsftpd-cmds-denied-alias

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vsftpd-cmds-denied-alias

Análisis: https://abraxaslabs.tech/research/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

Clase: Privilegio residual Alcance: Remoto

vsftpd 3.0.5 - Chris Evans

Fijé el tarball oficial, no un espejo de GitHub ni un fork de distribución. SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3. vsftpver.h VSF_VERSION "3.0.5".

cmds_denied es una coincidencia exacta de token en mayúsculas en process_post_login (postlogin.c:140-184). El despacho luego aplica OR con los alias de RFC 775 sobre los mismos manejadores: RMD||XRMD (:263-264), también CWD||XCWD, MKD||XMKD, PASV||P@SW, además de EPSV / STOU / APPE por separado. Un operador que incluye RMD en la lista de denegados (la receta común DELE,RMD) todavía permite que XRMD elimine el directorio.

Este residual es integridad de FTP autenticado bajo una lista de denegados que el operador creía cerrada. No es una vulnerabilidad no autenticada, no es root, no es un escape de chroot y no es RCE.

IDaún sin CVE
ClasePrivilegio residual (token exacto de cmds_denied)
AlcanceRemoto (FTP 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
Productovsftpd (Chris Evans)
Afectadovsftpd 3.0.5 tarball oficial
AutenticaciónFTP USER/PASS (laboratorio: anónimo ftp)
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:18720

Qué puede hacer un atacante

Quién: un usuario FTP autenticado (anónimo o local) en un demonio donde el operador configuró cmds_denied. Por defecto no está definido. Las recetas de usuarios virtuales que menciona la página de manual comparten un uid de invitado, por lo que el DAC de Unix no puede separarlas. La sesión ya es el uid mapeado dentro del chroot habitual. cmds_denied era el control adicional que se suponía debía quitar el verbo.

Integridad (probado en laboratorio)

Método + sinkPrivilegio
XRMD labdir tras cmds_denied=RMDhandle_rmd -> str_rmdir de un directorio que el uid de la sesión puede eliminar con rmdir de Unix. Laboratorio: RMD labdir 550, XRMD labdir 250, CWD labdir 550 (directorio eliminado). Segundo MKD labctrl sigue dando 550 en RMD.

Integridad (inferido de la misma comprobación de token exacto; no del laboratorio)

Método + sinkPrivilegio
XMKD dir tras cmds_denied=MKDhandle_mkd -> mkdir como el uid de la sesión
XCWD path tras cmds_denied=CWDhandle_cwd -> chdir. Luego RETR si download_enable
STOU / APPE tras cmds_denied=STORhandle_upload_common crea / añade. Requiere write_enable
EPSV / P@SW tras cmds_denied=PASVhandle_pasv abre un listener de datos que la lista de denegados pretendía detener

El laboratorio solo probó XRMD tras RMD. Los demás alias comparten la misma comprobación str_equal y el mismo OR en el despacho. No los ejercité.

Reconocimiento

Ninguno como residual de primera clase. cmds_denied no es un ocultamiento. XRMD no lista nombres.

Disponibilidad

No aplica. Eliminar un directorio es un impacto en la integridad. Un CWD / RETR posterior de ese nombre devuelve 550 como efecto secundario.

Qué no otorga este residual

  • cmds_denied sin autenticación (el pre-login lo ignora; USER/PASS/QUIT permanecen en la tabla de pre-login)
  • Root
  • Escape de chroot (allow_writeable_chroot desactivado por defecto; el laboratorio escribe solo bajo /incoming, por lo que la denegación sigue vigente)
  • cmds_allowed fail-closed: los verbos no listados, incluido XRMD, permanecen en 550
  • write_enable=NO sigue bloqueando la familia de escritura (STOR/MKD/RMD/DELE/RNFR/RNTO/SITE/APPE/STOU)
  • DAC de Unix cuando los usuarios no comparten uid
  • Bypass de mayúsculas/minúsculas en SITE vs site (ftpcmdio.c str_upper)
  • cmds_denied=CHMOD nunca coincide; elimina chmod con chmod_enable=NO o cmds_denied=SITE

Cómo lo encontré

Busqué hide/deny/cmds_denied en la versión oficial 3.0.5. La compuerta es un único recorrido de tokens separados por comas y str_equal contra el verbo en mayúsculas. No hay una segunda comprobación dentro de handle_rmd. RFC 775 todavía incluye XRMD como RMD. El consejo habitual es cmds_denied=DELE,RMD. Esa cadena nunca nombra XRMD.

Paso en falso: tratar SITE vs site como un bypass. Los verbos se convierten a mayúsculas. Lo mismo con cmds_allowed: esa lista es fail-closed, por lo que los alias que no están listados permanecen denegados.

Laboratorio

cd lab
./run.sh

Loopback 127.0.0.1:18720. Proyecto de Compose vsftpd-cmds-denied-alias. Tarball oficial 3.0.5 en lab/ (SHA-256 arriba). cmds_denied=RMD, write_enable=YES, anónimo, escrituras solo bajo /incoming. Testigo VSFTPD-CMDS-DENIED-ALIAS-WITNESS. Última línea:

SUCCESS vsftpd-cmds-denied-alias rmd=550 xrmd=250 dir-gone=yes VSFTPD-CMDS-DENIED-ALIAS-WITNESS

Corrección

Deniegue los alias RFC cuando deniegue el verbo moderno, o haga coincidir los alias en cmds_denied (XCWD / XMKD / XRMD / XPWD / XCUP / P@SW / EPSV / STOU / APPE). Prefiera cmds_allowed (lista de permitidos).

La recepción de proveedores es [email protected] (vsftpd). Sin remuneración. No abra un issue público en GitHub en ningún espejo de vsftpd.

Contacto

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

Descargar herramienta