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
4hace 2 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

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 distro. 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 de alias RFC 775 sobre los mismos manejadores: RMD||XRMD (:263-264), también CWD||XCWD, MKD||XMKD, PASV||P@SW, más EPSV / STOU / APPE por separado. Un operador que pone RMD en la lista de denegados (la receta común DELE,RMD) todavía permite que XRMD haga rmdir.

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

IDsin CVE aún
ClasePrivilegio residual (cmds_denied token exacto)
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
AuthFTP USER/PASS (lab: anónimo ftp)
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18720

Qué puede hacer un atacante

Quién: un usuario FTP autenticado (anónimo o local) en un daemon donde el operador configuró cmds_denied. Por defecto está sin configurar. Las recetas de usuario virtual que menciona la página man comparten un uid de invitado, así 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 extra que se suponía quitaba el verbo.

Integridad (probado en lab)

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

Integridad (inferido de la misma puerta de token exacto; no del lab)

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 crear / añadir. Requiere write_enable
EPSV / P@SW tras cmds_denied=PASVhandle_pasv abre un listener de datos que la lista de denegados debía detener

El lab solo probó XRMD tras RMD. Los otros alias comparten la misma puerta 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 en bar. Eliminar un directorio es un impacto de integridad. Un CWD / RETR posterior de ese nombre da 550 como efecto secundario.

Qué no otorga este residual

  • cmds_denied no autenticado (pre-login lo ignora; USER/PASS/QUIT permanecen en la tabla pre-login)
  • Root
  • Escape de chroot (allow_writeable_chroot por defecto desactivado; el lab solo escribe bajo /incoming así que la denegación sigue vigente)
  • cmds_allowed fail-closed: verbos no listados incluyendo XRMD permanecen 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 un uid
  • Bypass de mayúsculas/minúsculas SITE vs site (ftpcmdio.c str_upper)
  • cmds_denied=CHMOD nunca coincide; mata chmod con chmod_enable=NO o cmds_denied=SITE

Cómo lo encontré

Cacé hide/deny/cmds_denied en el 3.0.5 oficial. La puerta es un 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 común es cmds_denied=DELE,RMD. Esa cadena nunca nombra XRMD.

Camino equivocado: tratar SITE vs site como un bypass. Los verbos se convierten a mayúsculas. Tratar cmds_allowed de la misma manera: esa lista es fail-closed, así que los alias que no están listados permanecen denegados.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18720. Proyecto Compose vsftpd-cmds-denied-alias. Tarball oficial 3.0.5 en lab/ (SHA-256 arriba). cmds_denied=RMD, write_enable=YES, anónimo, escribe 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

Solución

Denegar los alias RFC al denegar el verbo moderno, o hacer coincidir alias en cmds_denied (XCWD / XMKD / XRMD / XPWD / XCUP / P@SW / EPSV / STOU / APPE). Preferir cmds_allowed (lista de permitidos).

La recepción del proveedor es [email protected] (vsftpd). No remunerado. No abras 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