Wargame/LOB
vampire -> skeleton
Anatis
2020. 9. 13. 01:16
ls로 디렉터리를 확인해보면 skeleton과 skelton.c가 있다.
이번 레벨은 argv hunter이다 argv를 전부 초기화시킨다.
하지만 프로그램 이름이 들어간 부분은 초기화되지 않는다. 초기화되지 않는 부분을 찾아서 공격해보자
프로그램 이름을 이용하여 공격할 거니 0x2f가 없는 쉘 코드를 사용할 것이다.
skeleton과 같은 이름의 길이로 복사한 후
NOP(100) + SHELLCODE(35)만큼의 길이만큼 링크 걸고 gdb로 분석해보자.
argv를 초기화하는 부분이 끝난 후인 main+368에 브레이크를 걸고 실행해보자.
프로그램의 이름은 스택의 가장 가까운 부분에 있으므로 프로그램의 주소를 찾아보자.
프로그램 이름의 주소는 0xbfffff59다. 주소를 알았으니 공격해 보자.
프로그램의 이름은 절대 경로이니 경로를 제외한 길이만큼 더해주고 실행하자.
Payload
NOP(40) + SFP(4) + RET(4)
쉘이 실행되었다.
이제 Python exploit code로 작성해보자.
다음 레벨 skeleton의 권한인 쉘이 실행되었다.
vampire -> skeleton
password : shellcoder