-
|Lord Of Bufferoverflow| #2 gremlin - coboltWargame Site/BOF 2019. 5. 19. 14:34
어느 사이, 그냥 쉘이 열리면 습관이 되버렸다. ㅎㅎ
우선 소스코드를 보도록 한다.
우선 gremlin 에서 설명한 것처럼 bash2 를 키고, cp 를 통해 gremlin 권한의 cobola 파일을 만들도록 한다, (gdb 를 하기 위함)
이전 문제와 별다를게 없어보인다. 같은 방식으로 접근해보자.
buffer 와 SFP 를 "A" 로 가득채우고, RET 를 "BBBB", SHELLCODE 부분으로 쓰일 부분을 "CCCC" 로 채워보도록 한다.
이번문제 부터는 'Core Dump Analysis' 를 통한 방법으로 문제를 풀어보려고 한다.
Core 란 프로그램 실행 시 치명적인 오류가 자동으로 기록 되는 덤프를 말한다.
따라서, EIP 가 "0x42424242" 를 실행 했을 때의 상황을 그대로 dump 해준다는 녀석이다.
core dump 의 size 를 우선 확인 해주었다. ulimit -a 를 통해 core file size 를 확인할 수 있는데,
이 값이 0 인 경우에는 core dump 가 생기지 않는다. 그냥 속시원히 c 옵션을 통해 unlimited 로 설정해주었다.
그럼 cobola 의 인자로 다음과 같이 줘보자.
다음 문구와 함께, core 파일이 생성된 것을 알 수 있다.
core 파일을 분석할 때에는 gdb 에 c 옵션을 사용하여 분석한다.
그럼, gdb -q ./cobola 를 차근차근 진행했을 때와 같은 상황이 펼쳐진다.
이 상태에서 BBBB 가 위치하는 곳과 CCCC 가 위치하는 곳을 적절히 조절한다면 문제를 해결할 수 있을 것이다.
BBBB 를 0xbffffcb0 로 설정하고, CCCC 자리에 Shell code 를 삽입하도록 한다.
" \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80 "
이제 cobola 를 cobolt 로만 바꿔주면 Clear 하게 Clear 할 수 있다.
" hacking exposed " 라는 비밀번호가 출력되었다. 빠르게 다음 단계로 가보자~
'Wargame Site > BOF' 카테고리의 다른 글
|Lord Of Bufferoverflow| #4 goblin - orc (0) 2019.05.19 |Lord Of Bufferoverflow| #3 cobolt - goblin (0) 2019.05.19 |Lord Of Bufferoverflow| #1 gate - gremlin (0) 2019.05.18 BOF ASLR (0) 2019.04.24 BOF 들어가기 앞서 (0) 2019.04.24 댓글