교육용 저장소로, CVE-2025-5548(FreeFloat FTP Server 버퍼 오버플로우)의 분석 및 익스플로잇 과정을 문서화합니다. 재사용 가능한 취약점 분석 방법론, 정적 리버스 엔지니어링, 단계별 익스플로잇, 그리고 퍼징 및 디버깅 기법을 포함한 0-day 접근법 가이드를 제공합니다.

Anderson Steven — 사이버보안 석사, 모듈 6(취약점) 개인 과제: 취약점 분석 및 악용 방법론
저는 단순히 "작동하는 익스플로잇을 여기 있다"고 제출하고 싶지 않았습니다. 이 저장소는
메모리 손상 취약점에 직면했을 때 제가 실제로 작업하는 방식을 담고 있습니다:
무엇을 먼저 살피는지, 어떤 순서로 가설을 배제하는지, 각 단계에서 어떤 도구를
사용하는지, 그리고 그 이유가 무엇인지. CVE-2025-5548을 중심 축으로 사용한 이유는
작고 다루기 쉬운 사례였기 때문입니다. 하지만 이 저장소의 핵심 문서 —
METHODOLOGY.md — 는 "FreeFloat FTP를 악용하는 방법" 튜토리얼이
아니라, 어떤 바이너리든 대할 때의 제 사고 방식이며 다른 사례에도 적용할 수 있습니다.
FreeFloat FTP Server 1.0은 10년도 더 전에 만들어진 Windows용 FTP 서버로,
유지보수가 중단되었으며 악용 연구실에서 여전히 사용되고 있습니다. 그 이유는 이
버그가 교과서적인 사례이기 때문입니다: 특정 프로토콜 명령(NOOP가 여기서 다루는
명령이지만 이것만 있는 것은 아님)을 처리할 때 클라이언트가 보낸 데이터를
strcpy로 스택의 고정 버퍼에 복사하며, 입력 길이를 확인하지 않습니다. 버퍼에 들어갈 수 있는 것보다
더 많은 데이터를 보내면 스택에 저장된 반환 주소를 덮어쓰고 EIP를 제어할 수 있습니다.
이 버그의 이력을 조사하면서 흥미로웠던 점은, 동일한 프로그래밍 오류가 서로 다른 FTP
명령(USER, PASS, HOST, NOOP 등)에서 발생하면서 결국 여러 개의 서로 다른 CVE로
등록되었다는 것입니다
(CVE-2025-5548, CVE-2025-5667, CVE-2025-5220, CVE-2025-5075 등).
METHODOLOGY.md — 핵심 문서: 제 분석 및 악용 방법론을 단계별로,
각 단계에서 적용하는 도구와 사고 방식, 그리고 알려지지 않은 취약점(0-day)을 다루는
제 접근 방식을 담고 있습니다.00-Environment/ — 실험실 구성 방법(Windows 피해자,
Linux 공격자, 설치된 소프트웨어, 네트워크); 취약한 바이너리는
Binaries/에 포함되어 있습니다.01-Vulnerability-Analysis/ — 바이너리
진단: 정적 리버스 엔지니어링을 통해 버그가 어디 있고 왜 발생하는지.02-Exploitation/ — 각 단계에서 사용한 스크립트와 함께
전체 악용 프로세스를 단계별로 문서화.03-0day-Approach/ — 아직 발견되지 않은 취약점을
찾는 방법: 퍼징, 디핑, 리버싱, 환경.images/ — 실험실 캡처, 섹션별 하위 폴더.모든 테스트는 격리된 실험실(내부 네트워크의 가상 머신, 제3자 시스템으로의 연결 없음)에서 수행되었습니다. 콘텐츠는 전적으로 교육 목적입니다. 승인되지 않은 인프라를 대상으로 사용하도록 만들어진 것이 아닙니다.
기반으로 사용한 저장소는 TheMalwareGuardian/CVE-2025-5548입니다.