
Python과 Nmap NSE를 사용하여 vsFTPd 2.3.4의 CVE-2011-2523을 검증하는 승인된 Kali–Metasploitable2 실습 환경.
⚠️ 승인된 실습 환경 전용 — Kali Linux와 Metasploitable2를 사용하여 격리된 VirtualBox Host-Only 네트워크에서 수행되었습니다. 어떠한 시점에도 승인되지 않은 시스템을 스캔하거나 접근하지 않았습니다.
CVE-2011-2523은 오픈 소스 역사상 가장 잘 알려진 공급망 침해 사례 중 하나입니다. 2011년, 공식 vsFTPd 2.3.4 소스 코드가 프로젝트의 다운로드 서버에서 백도어가 삽입되었습니다. 공격자가 바이너리를 변조하여 :)가 포함된 사용자 이름을 입력하면 TCP 포트 6200에서 백도어 셸이 트리거되어, 원격 공격자가 루트 권한을 획득할 수 있었습니다.
이 실습은 구조화된 취약점 평가 방법론을 사용하여 CVE-2011-2523을 검증합니다:
ftp-vsftpd-backdoor를 사용한 NSE 백도어 검증이는 실제 취약점 평가 작업으로, 승인된 보안 평가를 수행하는 침투 테스터와 SOC 분석가가 사용하는 것과 동일한 방법론입니다.
| 구성 요소 | 세부 정보 |
|---|---|
| 공격 머신 | Kali Linux |
| 대상 머신 | Metasploitable2 (의도적으로 취약함) |
| 하이퍼바이저 | Oracle VirtualBox |
| 네트워크 | Host-Only 어댑터 — 격리됨, 인터넷 접근 불가 |
| 도구 | Python 3, Nmap, NSE, python-nmap 라이브러리 |
| 대상 IP | 192.168.56.103 |
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2011-2523 |
| 영향받는 소프트웨어 | vsFTPd 2.3.4 |
| CVSS 점수 | 10.0 — 심각(Critical) |
| 취약점 유형 | 백도어 / 공급망 침해 |
| 공격 벡터 | 네트워크 — 인증 불필요 |
| 영향 | 원격 루트 셸 접근 (uid=0) |
| 발견 시기 | 2011년 7월 |
| MITRE ATT&CK | T1195.002 (소프트웨어 공급망 침해) |
백도어 동작 방식:
클라이언트가 vsFTPd 2.3.4에 연결하여 :) (스마일리 얼굴) 문자를 포함한 사용자 이름을 전송하면 백도어 코드가 트리거되어 TCP 포트 6200에서 리스너 셸이 열립니다. 포트 6200에 연결하면 추가 인증 없이 대화형 루트 셸이 제공됩니다.
Step 1: Confirm target IP on Host-Only network
└── ifconfig / ip addr on Metasploitable2
Step 2: Verify connectivity
└── ping 192.168.56.103 from Kali
Step 3: Service & version detection
└── nmap -sV -p 21 192.168.56.103
└── Confirm: vsftpd 2.3.4
Step 4: Python-automated NSE scan
└── python3 pythonnmap.py --host 192.168.56.103 --ports 21
└── NSE scripts executed:
ftp-anon
ftp-bounce
ftp-libopie
ftp-proftpd-backdoor
ftp-vsftpd-backdoor ← CVE-2011-2523 validation
Step 5: Document findings & remediation
sudo nmap -sV -p 21 192.168.56.103
출력:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
sudo python3 pythonnmap.py --host 192.168.56.103 --ports 21
sudo nmap --script ftp-vsftpd-backdoor -p 21 192.168.56.103
| 서비스 | 포트 | 발견 사항 | 증거 |
|---|---|---|---|
| FTP | TCP 21 | vsFTPd 2.3.4 식별됨 — 백도어가 알려진 버전 | Nmap 서비스/버전 스캔 |
| FTP | TCP 21 | 익명 FTP 로그인 허용됨 | ftp-anon NSE 출력 |
| FTP | TCP 21 | 대상이 CVE-2011-2523에 취약한 것으로 확인됨 | ftp-vsftpd-backdoor NSE 출력 |
| CVE-2011-2523 | TCP 6200 | 백도어 셸이 uid=0(root) gid=0(root)를 반환함 | NSE 검증 출력 |



실제 프로덕션 환경에서는 완화 조치에 다음이 포함됩니다:
| 조치 | 우선순위 |
|---|---|
| vsFTPd 2.3.4를 즉시 제거하고 패치된 버전으로 교체 | 🔴 심각 |
| 설치 전 공식 벤더 해시와 대조하여 SHA-256 체크섬으로 소프트웨어 무결성 검증 | 🔴 심각 |
| 명시적으로 필요한 경우가 아니면 익명 FTP 접근 비활성화 | 🟠 높음 |
| 방화벽 규칙과 네트워크 분할을 사용하여 FTP 서비스 노출 제한 | 🟠 높음 |
:)가 포함된 의심스러운 사용자 이름에 대해 FTP 인증 로그 모니터링 | 🟡 중간 |
| FTP를 SFTP(SSH 파일 전송 프로토콜)로 전면 교체하는 방안 검토 | 🟡 중간 |
| 통제 항목 | 프레임워크 | 관련성 |
|---|---|---|
| T1195.002 | MITRE ATT&CK | 소프트웨어 공급망 침해 — vsFTPd 소스에 백도어 주입 |
| T1133 | MITRE ATT&CK | 외부 원격 서비스 — 백도어가 원격 루트 셸을 엶 |
| T1190 | MITRE ATT&CK | 공개 애플리케이션 악용 — FTP 서비스가 원격에서 악용됨 |
| SI-2 | NIST SP 800-53 | 결함 교정 — 취약한 소프트웨어 패치 및 제거 |
| SI-7 | NIST SP 800-53 | 소프트웨어 무결성 — 배포 전 소프트웨어 체크섬 검증 |
| RA-5 | NIST SP 800-53 | 취약점 모니터링 및 스캐닝 |
| A.12.6 | ISO 27001 | 기술적 취약점 관리 |
pythonnmap.py 스크립트는 python-nmap 라이브러리를 사용하여 Nmap NSE 스캔을 자동화합니다:
# Key functionality
import nmap
scanner = nmap.PortScanner()
scanner.scan(
hosts=target_host,
ports=target_ports,
arguments='-sV --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor'
)
Python 자동화의 이점:
| 역량 | 세부 사항 |
|---|---|
| CVE 조사 | CVE-2011-2523을 기술적으로 이해 — 공격 벡터, 백도어 메커니즘, CVSS 점수 |
| 취약점 검증 | NSE 스크립팅을 사용하여 통제된 환경에서 실제 CVE 확인 |
| Nmap & NSE | 서비스 탐지, 버전 스캔, 스크립트 기반 취약점 검증 |
| Python 보안 자동화 | python-nmap 라이브러리를 사용한 자동화된 NSE 스캔 |
| 발견 사항 문서화 | 증거, 심각도, 완화 방안을 포함한 구조화된 발견 사항 표 |
| 완화 계획 | 우선순위가 지정된 완화 권장 사항 작성 |
| MITRE ATT&CK 매핑 | T1195.002, T1133, T1190 — 공급망 및 원격 접근 기법 |
| NIST 프레임워크 매핑 | SI-2, SI-7, RA-5 — 결함 완화 및 취약점 스캐닝 통제 |
| 실습실 안전 | 격리된 Host-Only 네트워크 유지 — 무단 접근 위험 제로 |
cve-2011-2523-vsftpd-validation-lab/
│
├── README.md # This file
├── pythonnmap.py # Python-automated Nmap NSE scanner
├── requirements.txt # Python dependencies (python-nmap)
├── .gitignore # Excludes sensitive files
│
└── screenshots/
├── metasploitable-ip-address.png # Target IP confirmation
├── ftp-service-version-scan.png # vsFTPd 2.3.4 detected
└── ftp-vsftpd-cve-validation.png # CVE-2011-2523 validated
# Clone the repository
git clone https://github.com/alexojocyber/cve-2011-2523-vsftpd-validation-lab.git
cd cve-2011-2523-vsftpd-validation-lab
# Install Nmap and Python dependency
sudo apt install -y nmap
pip install -r requirements.txt
# Run the scanner against your authorized lab target
sudo python3 pythonnmap.py --host TARGET_IP --ports 21
이 실습은 의도적으로 취약하게 구성된 가상 머신을 사용하여 격리되고 승인된 환경에서만 수행되었습니다. 모든 스캔 및 검증은 외부 연결이 없는 Host-Only VirtualBox 네트워크의 Metasploitable2를 대상으로만 수행되었습니다. 이 프로젝트는 교육 및 방어적 사이버보안 목적으로만 사용됩니다. 명시적인 서면 승인 없이 시스템을 스캔하거나 테스트하지 마십시오.
Alex Ojo — 사이버보안 학생 | 취약점 평가 및 보안 자동화
🔗 GitHub | LinkedIn | Portfolio