
vsftpd 2.3.4 백도어(CVE-2011-2523)를 위한 의존성 없는 대화형 Python 익스플로잇.
vsftpd 2.3.4 백도어(CVE-2011-2523)를 위한 작고 의존성이 없는 Python 3 익스플로잇입니다. FTP를 통해 백도어를 트리거하고 생성된 리스너에서 대화형 루트 셸을 실행합니다.
Python 3.13에서 표준 라이브러리에서 제거된 telnetlib에 의존하던 기존 익스플로잇 스크립트를 대체하는 현대적인 버전입니다. 이 버전은 표준 라이브러리만 사용하며 고정된 sleep 대신 select로 셸을 읽으므로 출력이 잘리지 않습니다.
⚠️ 승인된 용도로만 사용하세요. 이 도구는 알려진 취약점이 있는 서비스를 대상으로 하며 보안 교육 및 Metasploitable 2와 같은 실습 환경을 위해 제작되었습니다. 소유한 시스템이나 명시적인 서면 허가를 받은 시스템에서만 실행하세요.
vsftpd 2.3.4에는 악성 백도어가 포함되어 있었습니다. :) 시퀀스를 포함한 FTP 사용자 이름은 데몬이 TCP/6200에 루트 셸을 바인딩하게 합니다. 스크립트는 다음을 수행합니다:
vsftpd 2.3.4인지 확인합니다.USER <name>:) / PASS <anything>를 보내 백도어를 트리거합니다.id; uname -a로 권한을 확인합니다.python3 vsftpd_backdoor.py <target-ip> [-p FTP_PORT] [-s SHELL_PORT] [--skip-verify]
예시:
# Default: FTP on 21, backdoor shell on 6200, verify banner first
python3 vsftpd_backdoor.py 192.168.243.114
# Non-standard FTP port, skip the banner check
python3 vsftpd_backdoor.py 192.168.243.114 -p 2121 --skip-verify
vsftpd# 프롬프트에서 명령을 입력하고, exit(또는 Ctrl-C)를 입력하여 종료합니다.
백도어는 트리거당 1회만 동작합니다. 6200에 대한 첫 번째 연결에 셸이 넘겨지며, 그 셸이 열려 있는 동안 포트를 점유합니다. 두 번째 연결을 받아들이는 것은 없습니다.
실제 영향:
nc, Metasploit을 동일한 대상에 동시에 실행하지 마세요. 하나뿐인 셸 슬롯을 두고 경쟁하게 되어 혼란스러운 오류("신선한 셸이 아님", 연결 거부 등)가 발생합니다.exit로 셸을 떠나 원격 프로세스가 종료되고 6200이 해제되도록 하세요. 클라이언트를 비정상적으로 종료하면 프로세스가 고아가 되어 포트가 계속 열린 채 남을 수 있습니다.6200이 이미 바인딩된 경우(포트는 열려 있지만 사용 가능한 셸이 없는 경우), 대상을 재설정하세요:
# On the target console
sudo netstat -tlnp | grep 6200
sudo kill -9 <pid>
아니면 VM을 재부팅하여 확실하게 깨끗하고 트리거되지 않은 백도어 상태로 만드세요.
MIT License에 따라 배포됩니다. 자세한 내용은 LICENSE를 참조하세요.