fedora 원정대 core3 dark_eyes -> hell_fire

fedora 원정대 core3 dark_eyes -> hell_fire

hell_fire.c


sfp를 복사해 두었다가 원상복귀 시키고 fgets로 받은 문자를 strcpy하는 과정에서 스택을 조작할 수 있다. tcp 7777로 remote환경이다.

다른사람들의 라이트업을 참고해보니 do_system으로 eip를 이동시켜서 쉘을 얻는 것을 볼 수 있었다. do_system이 무엇일까..


system 함수에서 do_system을 호출하는 것을 볼 수 있었다.
system 함수는

#include <stdlib.h>

int system(const char *string)

이고 /bin/sh -c string을 호출하여 string명령어를 실행하고 fork()와 execve()의 조합으로 실행된다.


do_system함수를 까보면 함수의 밑부분에 sigaction(), sigprocmask()를 호출하고 execve()함수를 호출 하는 것을 볼 수 있다. eip를 sigaction쪽으로 이동시키면 쉘을 얻을 수 있는데 지식이 부족해서 왜 그런지 알수가 없다. execve가 실행되서 얻는것같은데 모르겠다



??

 (python -c 'print "A"*268 + "\x7f\x07\x75\x00"';cat) | nc localhost 7777

0 개의 댓글:

댓글 쓰기