반응형
처음 어떤 파일이 있나 확인해보면, gremlin의 권한을 가지고 있는 실행 파일과 소스코드가 존재한다.
gremlin.c 파일을 cat 명령어로 확인을 해보면 소스코드가 존재한다. 소스 코드를 분석해면 취약한 함수 strcpy()가 존재하는 것을 알 수 있다. 그렇다면 exploit이 가능하다.
exploit 준비를 해보자.
첫 번째로 gdb 툴을 이용해 실제 스택 영역에 소스코드에 나온 데로 256byte를 사용하는지 확인해보자.
이렇게 어셈블리어를 확인해보면 실제 소스코드에 나와있는데로 256byte를 사용한다.
메모리 구조를 확인하면
RET [4] |
SFP [4] |
buffer [256] |
이렇게 되어있다. 저기를 exploit 하기위해 총 260byte에 0x90과 쉘 코드를 넣고 ret에는 0x90 코드가 있는 주소를 넣어 점프하게 만들면 된다.
일단 점프할 주소값을 알아내기 위해 gdb 툴을 이용해 문자 A 260개와 문자 B 4개를 넣어 스택의 주소 값을 확인해보자.
이렇게 값을 넣어 스택 주소가 대략 어느 쯤인지 알 수 있다. 여기서 0xbffff940 주소를 쓰겠다.
이제 필요한 정보는 다 모았다.
\x90(200byte) + 쉘코드(25byte) + \x90(35byte) + 0xbffff940 이렇게 넣어 gremlin을 exploit 할 것이다.
이렇게 하여 gremlin 패스워드를 알아냈다.
반응형
'WarGame > LOB(The Lord of the BOF)' 카테고리의 다른 글
6단계 wolfman -> darkelf (0) | 2019.09.07 |
---|---|
5단계 orc -> wolfman (0) | 2019.09.07 |
4단계 goblin -> orc (0) | 2019.09.07 |
3단계 cobolt -> goblin (0) | 2019.09.06 |
2단계 gremlin->cobolt (0) | 2019.09.06 |