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)을 놓침

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - vsftpd-cmds-denied-alias

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

분석 문서: https://abraxaslabs.tech/research/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
CVSS높음: 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 아래에만 쓰기 허용. Witness 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]

도구 다운로드