CVE-2025-5548에 대한 보안 연구 및 재현: FreeFloat FTP Server 1.0의 스택 기반 버퍼 오버플로우. 바이너리 분석, 크래시 재현, 취약점 연구를 위한 환경 설정 포함.
FreeFloat FTP 서버 1.0의 고전적인 스택 기반 버퍼 오버플로우에 대한 전문적인 연구 및 익스플로잇 개발. 이 실습은 바이너리 리버싱에서 완전한 기능의 RCE로의 전환을 보여줍니다.
이 저장소는 CVE-2025-5548의 분석 및 익스플로잇을 문서화합니다. 현대 시스템은 고급 보호 기능을 갖추고 있지만, FreeFloat FTP와 같은 레거시 소프트웨어 분석은 취약점 연구자에게 여전히 기본적인 기둥으로 남아 있습니다.
이 연구는 "The Path That Leads to Your First CVE" 강연에서 논의된 원칙을 따르며, 오래된 데스크톱 애플리케이션의 리버스 엔지니어링이 해당 분야 초보자에게 가장 현실적인 진입점임을 강조합니다.
[퍼징] ──► [EIP 제어] ──► [불량 문자 분석] ──► [JMP ESP 가젯] ──► [RCE]
NOOP 명령을 퍼징하여 메모리 손상을 트리거.\x00\x0a\x0dJMP ESP 가젯을 사용하여 실행 흐름을 사용자 정의 Metasploit 셸코드로 리디렉션.| 구성 요소 | OS/버전 | 역할 |
|---|---|---|
| 대상 서버 | Windows 10/11 (VM) | FreeFloat FTP 서버 1.0 |
| 공격자 시스템 | Kali Linux / Windows | 익스플로잇 전달 (Python 3) |
| 디버거 | Immunity Debugger | 동적 분석 및 Mona.py |
| 디스어셈블러 | IDA Pro 8.4 | 정적 분석 및 리버싱 |
참고: 모든 테스트는 격리된 호스트 전용 네트워크 세그먼트에서 수행되었습니다.
| 카테고리 | 도구 |
|---|---|
| 리버싱 | IDA Pro, Immunity Debugger |
| 익스플로잇 | Python 3 (Socket), Mona.py, Metasploit (msfvenom) |
| 방법론 | 스택 기반 버퍼 오버플로우 |
| 참고 | TheMalwareGuardian - CVE-2025-5548 |
| 디렉토리 | 내용 | 상태 |
|---|---|---|
| 01-Environment | 실습 및 디버거 설정 지침. | ✅ 준비 완료 |
| 02-Exploitation | 핵심 방법론: 단계별 익스플로잇 개발. | ✅ 준비 완료 |
| Exploits | Python 스크립트 전체 모음 (퍼징부터 셸코드까지). | ✅ 준비 완료 |
| 03-Images | 크래시, 오프셋 및 가젯 문서화. | ✅ 준비 완료 |
취약점은 서버가 적절한 길이 검증 없이 strcpy와 같은 안전하지 않은 C 함수를 사용하여 명령을 처리하기 때문에 존재합니다.
// Simplified representation of the vulnerable handler
char buffer[256];
strcpy(buffer, user_input); // No bounds checking
긴 문자열이 NOOP 명령을 통해 전송되면 로컬 스택 버퍼가 오버플로우되어 결국 저장된 반환 주소를 덮어씁니다. 이 주소를 제어함으로써 CPU를 리디렉션하여 우리의 명령을 실행할 수 있습니다.
TheMalwareGuardian님께 레거시 취약점 연구와 교육적 접근 방식의 취약점 연구에 특별한 감사를 드립니다.