Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
vsftpd-cmds-denied-alias — vsftpd 3.0.5 - 높음 - 원격 - 권한 잔여 - cmds_denied가 RFC 별칭(XRMD)을 놓침 | Kitploit
도구/GitHubGitHub/abraxas/vsftpd-cmds-denied-alias
Defensive ToolsVulnerability AnalysisExploitationConfiguration AuditingNetwork SecurityPenetration TestingPapers & ResearchLabs & Practice
GitHubabraxas/vsftpd-cmds-denied-alias

vsftpd-cmds-denied-alias

vsftpd 3.0.5 - 높음 - 원격 - 권한 잔여 - cmds_denied가 RFC 별칭(XRMD)을 놓침

저장소 보기
42일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - vsftpd-cmds-denied-alias

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

vsftpd-cmds-denied-alias

분류: 권한 잔존 도달 범위: 원격

vsftpd 3.0.5 - Chris Evans

나는 GitHub 미러나 배포판 포크가 아닌 공식 tarball을 고정했다. SHA-256 26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3. vsftpver.h VSF_VERSION "3.0.5".

cmds_denied는 process_post_login(postlogin.c:140-184)에서 대문자로 변환된 토큰과 정확히 일치하는지 검사한다. 그런 다음 디스패치에서 RFC 775 별칭을 동일한 핸들러에 OR로 연결한다: RMD||XRMD(:263-264), 또한 CWD||XCWD, MKD||XMKD, PASV||P@SW, 그리고 별도의 EPSV / STOU / APPE. 운영자가 RMD를 거부 목록에 추가하더라도(흔한 DELE,RMD 조합) XRMD는 여전히 rmdir을 수행할 수 있다.

이 잔존 취약점은 운영자가 닫혔다고 생각한 거부 목록 하에서 인증된 FTP 무결성 문제이다. 인증 우회가 아니고, root도 아니고, chroot 탈출도 아니고, RCE도 아니다.

ID아직 CVE 없음
분류권한 잔존 (cmds_denied 정확한 토큰)
도달 범위원격 (인증된 FTP)
CWECWE-863
CVSSHigh: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
제품vsftpd (Chris Evans)
영향 받는 버전vsftpd 3.0.5 공식 tarball
인증FTP USER/PASS (실습: 익명 ftp)
라이선스GNU Affero GPL v3.0
실습 환경127.0.0.1:18720 전용

공격자가 할 수 있는 일

누가: 운영자가 cmds_denied를 설정한 데몬에서 인증된 FTP 사용자(익명 또는 로컬). 기본값은 설정되지 않음. man 페이지에 나열된 가상 사용자 조합은 게스트 uid를 공유하므로 Unix DAC가 이들을 분리할 수 없다. 세션은 이미 일반적인 chroot 내부에서 매핑된 uid이다. cmds_denied는 해당 명령을 제거하기 위한 추가 제어였다.

무결성 (실습으로 입증)

메서드 + 싱크권한
cmds_denied=RMD 후 XRMD labdirhandle_rmd -> 세션 uid가 Unix-rmdir할 수 있는 디렉터리에 대한 str_rmdir. 실습: RMD labdir 550, XRMD labdir 250, CWD labdir 550 (디렉터리 사라짐). 두 번째 MKD labctrl은 RMD에서 여전히 550.

무결성 (동일한 정확한 토큰 게이트에서 추론; 실습 아님)

메서드 + 싱크권한
cmds_denied=MKD 후 XMKD dirhandle_mkd -> 세션 uid로 mkdir
cmds_denied=CWD 후 XCWD pathhandle_cwd -> chdir. 그런 다음 download_enable이면 RETR
cmds_denied=STOR 후 STOU / APPEhandle_upload_common 생성 / 추가. write_enable 필요
cmds_denied=PASV 후 EPSV / P@SWhandle_pasv가 거부 목록이 막으려던 데이터 리스너를 연다

실습에서는 RMD 후 XRMD만 입증했다. 다른 별칭은 동일한 str_equal 게이트와 디스패치의 동일한 OR을 공유한다. 나는 그것들을 실행하지 않았다.

정찰

일급 잔존 취약점으로서 없음. cmds_denied는 숨김이 아니다. XRMD는 이름을 나열하지 않는다.

가용성

기준에 없음. 디렉터리 제거는 무결성 타격이다. 이후 해당 이름에 대한 CWD / RETR은 부작용으로 550이 된다.

이 잔존 취약점이 부여하지 않는 것

  • 인증되지 않은 cmds_denied (로그인 전에는 무시됨; USER/PASS/QUIT는 로그인 전 테이블로 유지됨)
  • Root
  • Chroot 탈출 (allow_writeable_chroot 기본 꺼짐; 실습은 /incoming 아래에만 쓰므로 거부가 여전히 유지됨)
  • cmds_allowed fail-closed: XRMD를 포함한 목록에 없는 명령은 550 유지
  • write_enable=NO는 여전히 쓰기 계열을 차단함 (STOR/MKD/RMD/DELE/RNFR/RNTO/SITE/APPE/STOU)
  • 사용자가 uid를 공유하지 않을 때 Unix DAC
  • SITE vs site 대소문자 우회 (ftpcmdio.c str_upper)
  • cmds_denied=CHMOD는 절대 일치하지 않음; chmod_enable=NO 또는 cmds_denied=SITE로 chmod를 차단

어떻게 발견했는가

나는 공식 3.0.5에서 hide/deny/cmds_denied를 찾았다. 게이트는 쉼표 토큰을 한 번 순회하며 대문자로 변환된 명령과 str_equal을 비교한다. handle_rmd 내부에는 두 번째 검사가 없다. RFC 775는 여전히 XRMD를 RMD로 제공한다. 흔한 조언은 cmds_denied=DELE,RMD이다. 그 문자열은 XRMD를 절대 명시하지 않는다.

잘못된 방향: SITE vs site를 우회로 취급하는 것. 명령은 대문자로 변환된다. cmds_allowed도 같은 방식으로 취급하는 것: 그 목록은 fail-closed이므로 나열되지 않은 별칭은 거부된 상태로 유지된다.

실습

cd lab
./run.sh

루프백 127.0.0.1:18720. Compose 프로젝트 vsftpd-cmds-denied-alias. lab/에 공식 3.0.5 tarball (위의 SHA-256). cmds_denied=RMD, write_enable=YES, 익명, /incoming 아래에만 쓰기. 증인 VSFTPD-CMDS-DENIED-ALIAS-WITNESS. 마지막 줄:

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

수정

현대 명령을 거부할 때 RFC 별칭도 거부하거나, cmds_denied에서 별칭을 일치시키라 (XCWD / XMKD / XRMD / XPWD / XCUP / P@SW / EPSV / STOU / APPE). cmds_allowed (허용 목록)를 선호하라.

벤더 접수는 [email protected] (vsftpd). 무급. 어떤 vsftpd 미러에도 공개 GitHub 이슈를 열지 말라.

연락처

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

도구 다운로드