
ELF 바이너리 익스플로잇 입문
Rainfall은 Snow Crash보다 약간 더 복잡한 ISO 챌린지입니다. 리버스 엔지니어링을 깊이 파고들고, 코드를 재구성하는 법을 배우며, 결함을 감지하기 위해 이를 이해해야 합니다. 마지막 레벨에 도달할 수 있을까요?
Rainfall은 42의 사이버보안 분야에서 진행되는 프로젝트로, Snow Crash의 뒤를 잇습니다. 그러나 그 목표는 ELF 형식의 C 실행 파일을 익스플로잇하는 것입니다.
각 레벨의 비밀번호를 얻기 위해 다양한 기법을 사용해야 합니다:
디스어셈블된 C 실행 파일을 이해하려면 어셈블리 언어(x86 및 x86-64)와 GDB에 대한 충분한 지식이 필요합니다.
우리는 2025년 3월에 이 프로젝트를 검증했으며, 점수는 125/100이었습니다.
이 프로젝트를 시작하려면 먼저 42에서 제공하는 ISO를 다운로드하여 설치해야 합니다.
그런 다음 해당 ISO로 가상 머신을 사용해야 합니다. VirtualBox를 사용하는 경우 Network 탭의 Attached to 설정을 Host-only Adapter로 설정해야 합니다.
ssh를 사용하여 첫 번째 레벨에 연결할 수 있습니다. IP 주소는 VM의 홈 화면에 표시되며 포트는 4242입니다. 첫 번째 레벨의 로그인 정보는 사용자 이름과 비밀번호 모두 level0입니다.
ssh [email protected] -p 4242
로그인한 후에는 다음 레벨 사용자 계정의 .pass 파일을 읽을 방법을 찾아야 합니다. 이 파일은 각 사용자의 홈 디렉터리에 있습니다.
level0@RainFall:~$ ./level0 $(exploit)
$ cat /home/user/level1/.pass
?????????????????????
$ exit
level0@RainFall:~$ su level1
Password:
level1@RainFall:~$ _