본문 바로가기

해커스쿨 FTZ ( level5 -> level6 ) 1 by ORANG FTZ_level5 hint의 내용을 먼저 보겠습니다. [level5@ftz level5]$ cat hint /usr/bin/level5 프로그램은 /tmp 디렉토리에level5.tmp 라는 이름의 임시파일을 생성한다. 이를 이용하여 level6의 권한을 얻어라. 이 문제는 레이스 컨디션문제네요레이스 컨디션 공격이란.. 여러 프로세스가 한정된 자원을 사용하기 위해 경쟁하는 상태를 이용하여프로그램 중간에 자신이 원하는 작업을 하는 것을 말합니다. [level5@ftz level5]$ ls -l /usr/bin/level5-rws--x--- 1 level6 level5 12236 6월 5 08:48 /usr/bin/level5[level5@ftz level5]$ /usr/bin/level5[level5@ft.. 더보기
해커스쿨 FTZ ( level4 -> level5 ) by ORANG FTZ_level4 힌트를 확인해보겠습니다! [level4@ftz level4]$ lshint public_html tmp[level4@ftz level4]$ cat hint 누군가 /etc/xinetd.d/에 백도어를 심어놓았다.! 확인해보니 이름부터 backdoor 라고 되있네요ㅋㅋ [level4@ftz level4]$ ls /etc/xinetd.dbackdoor daytime echo-udp rexec rsync sgi_fam timechargen daytime-udp finger rlogin servers talk time-udpchargen-udp echo ntalk rsh services telnet[level4@ftz level4]$ ls -l /etc/xinetd.d/backdoor-r--.. 더보기
해커스쿨 FTZ ( level3 -> level4 ) by ORANG FTZ_level3 먼저 hint의 내용을 확인해 보겠습니다. [level3@ftz level3]$ lshint public_html tmp[level3@ftz level3]$ cat hint 다음 코드는 autodig의 소스이다. #include #include #include int main(int argc, char **argv){ char cmd[100]; if( argc!=2 ){ printf( "Auto Digger Version 0.9\n" ); printf( "Usage : %s host\n", argv[0] ); exit(0); } strcpy( cmd, "dig @" ); strcat( cmd, argv[1] ); strcat( cmd, " version.bind chaos txt");.. 더보기
해커스쿨 FTZ ( level2 -> level3 ) by ORANG FTZ_level2 [level2@ftz level2]$ lshint public_html tmp[level2@ftz level2]$ cat hint텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데… level1에서 사용했던 방법으로 level3 setuid 권한이 걸린 파일을 찾아보겠습니다. [level2@ftz level2]$ find / -user level3 -perm +6000 2>/dev/null/usr/bin/editor[level2@ftz level2]$ ls -l /usr/bin/editor-rwsr-x--- 1 level3 level2 11651 6월 5 08:44 /usr/bin/editor 실행시켜보면.. vim 편집기가 실행되는것을 확인할 수 있습니다. hint의 내용을 참고.. 더보기
해커스쿨 FTZ ( level1 -> level2 ) by ORANG FTZ_level1 로그인 후에 level1 디렉토리 내용을 확인 하겠습니다. [level1@ftz level1]$ lshint public_html tmphint 라는 파일이 존재하는군요ㅎㅎ 내용을 확인해보면 [level1@ftz level1]$ cat hint level2 권한에 setuid가 걸린 파일을 찾는다. level2 권한에 setuid가 걸린 파일을 찾으라고 하네요.setuid란 사용자가 파일을 사용하는동안 파일 소유자의 권한을 일시적으로 획득할 수 있도록 하는 겁니다.level2 권한에 setuid가 걸려있다는 것은 해당 파일을 실행하는동안 level1은 level2의 권한을 획득한다는거죠! 그럼 찾아보겠습니다. [level1@ftz level1]$ find . / -user level2.. 더보기
쉘코드 뒤에 여유 공간이 필요한 경우 by ORANG FTZ나 LOB같은 문제 풀이를 하다보면..[nop]... + [셸코드] + [SFP] + [RET] 는 세그먼트 오류가 나고,[셸코드] + [nop]... + [SFP] + [RET] 는 공격에 성공하는 경우 를 발견할 수 있습니다. 1번째 방법은 안되고, 2번째 방법은 되는 차이를 간단하게 보자면..1번째 방법의 문제를 간단한 메모리로 보겠습니다. RET에 함수 주소가 들어오기 전 스택입니다.이상태에서 leave와 ret 명령어가 실행되는 상황을 통해 보겠습니다. leave 명령어는 mov esp, ebp pop ebpesp를 ebp로 옮기고(스택을 정리해주고), 이전 함수의 ebp(SFP)를 pop을 통해 다시 ebp에 저장합니다.pop 되었으니 esp는 RET를 가리킵니다.다시 스택을 보면.. 이.. 더보기
셸코드 만드는법 by ORANG 더보기