Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
vsftpd-cmds-denied-alias — vsftpd 3.0.5 - Hoch - Remote - Privilege leftover - cmds_denied verpasst RFC-Aliase (XRMD) | Kitploit
Tools/GitHubGitHub/abraxas/vsftpd-cmds-denied-alias
DefensivwerkzeugeSchwachstellenanalyseExploitationKonfigurationsprüfungNetzwerksicherheitPenetrationstestsPapers & ForschungLabs & Praxis
GitHubabraxas/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

vsftpd 3.0.5 - Hoch - Remote - Privilege leftover - cmds_denied verpasst RFC-Aliase (XRMD)

Repository anzeigen
28vor 7 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - vsftpd-cmds-denied-alias

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

Write-up: https://abraxaslabs.tech/research/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

Klasse: Privilegien-Rest Reichweite: Remote

vsftpd 3.0.5 - Chris Evans

Ich habe das offizielle Tarball gepinnt, nicht einen GitHub-Mirror und nicht einen Distro-Fork. SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3. vsftpver.h VSF_VERSION "3.0.5".

cmds_denied ist ein exakter, in Großbuchstaben umgewandelter Token-Abgleich in process_post_login (postlogin.c:140-184). Der Dispatch verknüpft dann per OR RFC-775-Aliase mit denselben Handlern: RMD||XRMD (:263-264), ebenso CWD||XCWD, MKD||XMKD, PASV||P@SW, plus separate EPSV / STOU / APPE. Ein Betreiber, der RMD auf die Denylist setzt (das gängige DELE,RMD-Rezept), erlaubt XRMD weiterhin das rmdir.

Dieser Rest ist eine Integritätslücke bei authentifiziertem FTP unter einer Denylist, die der Betreiber für geschlossen hielt. Es ist kein Unauth, kein Root, kein Chroot-Ausbruch und kein RCE.

IDnoch keine CVE
KlassePrivilegien-Rest (cmds_denied exakter Token)
ReichweiteRemote (authentifiziertes FTP)
CWECWE-863
CVSSHoch: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Produktvsftpd (Chris Evans)
Betroffenvsftpd 3.0.5 offizielles Tarball
AuthFTP USER/PASS (Lab: anonym ftp)
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18720

Was ein Angreifer tun kann

Wer: ein authentifizierter FTP-Benutzer (anonym oder lokal) auf einem Daemon, bei dem der Betreiber cmds_denied gesetzt hat. Standardmäßig ist es nicht gesetzt. Virtual-User-Rezepte, die die Manpage nennt, teilen sich eine Gast-UID, sodass Unix-DAC sie nicht trennen kann. Die Sitzung ist bereits die zugeordnete UID innerhalb des üblichen Chroots. cmds_denied war die zusätzliche Kontrolle, die das Verb eigentlich wegnehmen sollte.

Integrität (im Lab nachgewiesen)

Methode + SenkePrivileg
XRMD labdir nach cmds_denied=RMDhandle_rmd -> str_rmdir eines Verzeichnisses, das die Sitzungs-UID per Unix-rmdir entfernen kann. Lab: RMD labdir 550, XRMD labdir 250, CWD labdir 550 (Verzeichnis weg). Zweites MKD labctrl weiterhin 550 bei RMD.

Integrität (abgeleitet aus demselben Exakt-Token-Gate; nicht das Lab)

Methode + SenkePrivileg
XMKD dir nach cmds_denied=MKDhandle_mkd -> mkdir als die Sitzungs-UID
XCWD path nach cmds_denied=CWDhandle_cwd -> chdir. Dann RETR, falls download_enable
STOU / APPE nach cmds_denied=STORhandle_upload_common create / append. Benötigt write_enable
EPSV / P@SW nach cmds_denied=PASVhandle_pasv öffnet einen Daten-Listener, den die Denylist verhindern sollte

Das Lab hat nur XRMD nach RMD nachgewiesen. Die anderen Aliase teilen dasselbe str_equal-Gate und dasselbe OR im Dispatch. Ich habe sie nicht ausgeführt.

Recon

Keines als eigenständiger Rest. cmds_denied ist kein Verstecken. XRMD listet keine Namen.

Verfügbarkeit

Nicht in der Bewertung. Das Entfernen eines Verzeichnisses ist ein Integritätstreffer. Ein späteres CWD / RETR dieses Namens liefert als Nebeneffekt 550.

Was dieser Rest nicht gewährt

  • Nicht authentifiziertes cmds_denied (Pre-Login ignoriert es; USER/PASS/QUIT bleiben die Pre-Login-Tabelle)
  • Root
  • Chroot-Escape (allow_writeable_chroot standardmäßig aus; das Lab schreibt nur unter /incoming, sodass die Verweigerung weiterhin greift)
  • cmds_allowed fail-closed: nicht gelistete Verben, einschließlich XRMD, bleiben 550
  • write_enable=NO blockiert weiterhin die Schreibfamilie (STOR/MKD/RMD/DELE/RNFR/RNTO/SITE/APPE/STOU)
  • Unix-DAC, wenn Benutzer keine gemeinsame uid haben
  • SITE vs. site-Case-Bypass (ftpcmdio.c str_upper)
  • cmds_denied=CHMOD trifft nie zu; chmod mit chmod_enable=NO oder cmds_denied=SITE unterbinden

Wie ich es gefunden habe

Ich habe hide/deny/cmds_denied auf dem offiziellen 3.0.5 untersucht. Die Prüfung ist ein einzelner Durchlauf über Komma-Token und str_equal gegen das in Großbuchstaben umgewandelte Verb. Es gibt keine zweite Prüfung innerhalb von handle_rmd. RFC 775 liefert XRMD weiterhin als RMD aus. Der übliche Rat lautet cmds_denied=DELE,RMD. Dieser String benennt XRMD nie.

Fehlversuch: SITE vs. site als Bypass zu behandeln. Verben werden in Großbuchstaben umgewandelt. cmds_allowed genauso zu behandeln: Diese Liste ist fail-closed, sodass nicht gelistete Aliase weiterhin verweigert werden.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18720. Compose-Projekt vsftpd-cmds-denied-alias. Offizielles 3.0.5-Tarball in lab/ (SHA-256 oben). cmds_denied=RMD, write_enable=YES, anonym, Schreibzugriff nur unter /incoming. Witness VSFTPD-CMDS-DENIED-ALIAS-WITNESS. Letzte Zeile:

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

Behebung

Lehnen Sie die RFC-Aliase ab, wenn Sie das moderne Verb ablehnen, oder gleichen Sie Aliase in cmds_denied ab (XCWD / XMKD / XRMD / XPWD / XCUP / P@SW / EPSV / STOU / APPE). Bevorzugen Sie cmds_allowed (Allowlist).

Die Meldestelle des Herstellers ist [email protected] (vsftpd). Unbezahlt. Öffnen Sie kein öffentliches GitHub-Issue in einem vsftpd-Mirror.

Kontakt

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

Tool herunterladen