
CVE-2025-5548 분석 및 악용을 위한 실험실
문서 목적: 실습 환경 구축 중 습득한 지식을 정리하고, CVE-2025-5548 익스플로잇 과정을 상세히 기술하며, 알려지지 않은 취약점(0-day) 연구를 위한 다음 단계를 제시합니다.
이 모듈을 통해 익스플로잇을 개발하는 것은 정밀한 수술 작업임을 깨달았습니다. 자동 스캐너를 무작정 돌리는 것이 아니라, 컴퓨터가 내부적으로 정보를 어떻게 처리하는지 이해하는 것이 중요합니다.
실제 작업 사이클은 세 가지 기둥에 기반한다는 것을 배웠습니다: 관찰(Ghidra와 같은 도구로 프로그램 코드를 정적으로 분석하여 위험한 함수 탐색), 상호 작용(Immunity Debugger와 같은 디버거를 사용하여 실시간 메모리 확인), 조작(프로그램이 정상적인 흐름을 잃을 때까지 데이터를 주입).
이론을 시험하기 위해 Python 3 및 분석 도구가 설치된 Windows 11 가상 머신을 준비했습니다. 선택한 대상은 NOOP 명령어에 취약점이 있는 FTP 서버였습니다. 각 도구를 개별적으로 설명하기보다는 공격 과정에서 어떻게 사용했는지 설명하겠습니다.
\x0a 또는 널 바이트 \x00)가 포함된 코드를 잘라냈습니다. 바이트 시퀀스를 보내고 디버거 메모리를 반복적으로 확인하여 피해야 할 모든 "잘못된 문자"를 확인해야 했습니다.JMP ESP 명령어를 찾았습니다. 해당 주소를 결합하고 Metasploit으로 최종 페이로드를 생성한 후 실행하여 공격 시스템이 피해자 Windows에 대한 완전한 제어권을 가진 원격 셸을 열었습니다.이 프로그램을 익스플로잇하는 것은 매우 교육적이었지만, 이것이 준비된 환경이라는 것을 알고 있습니다. 현실 세계의 현대 시스템은 복잡한 보안 방어막을 가지고 있습니다. 미래에 아무도 모르는 결함(0-day)을 발견하려면 기술을 발전시켜야 한다는 것이 분명합니다.
이 실습에서 얻은 가장 귀중한 교훈은 인내와 세부 사항이 전부라는 것입니다.
오프셋에서 단 1바이트라도 잘못 계산하거나 금지된 문자 하나를 필터링하지 않으면 전체 익스플로잇이 실패하고 프로그램이 그냥 종료됩니다. 도구와 미리 만들어진 스크립트는 큰 도움이 되지만, 기본(스택, ESP 및 EIP가 어떻게 구성되는지)을 이해하는 것만이 처음에 계획대로 되지 않을 때 코드를 수정할 수 있게 해줍니다.