본문 바로가기

해커스쿨 FTZ ( level11 -> level12 ) by ORANG FTZ_level11 [level11@ftz level11]$ bash2​[level11@ftz level11]$ lsattackme hint public_html tmp[level11@ftz level11]$ cat hint #include #include int main( int argc, char *argv[] ){ char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str );} bash에서는 셸코드중 /xff 에서 문제가 생기므로 bash2로 시작하겠습니다. 버퍼 오버 플로우 문제네요먼저 메모리 구조를 그려보겠습니다 [level11@ftz level11]$ cp attackme tmp/attackit[level11@ftz.. 더보기
해커스쿨 FTZ ( level10 -> level11 ) by ORANG FTZ_level10 [level10@ftz level10]$ cat hint 두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다.그 대화방은 공유 메모리를 이용하여 만들어졌으며,key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여level11의 권한을 얻어라. - 레벨을 완료하셨다면 소스는 지우고 나가주세요. 이 문제를 풀려면 공유 메모리에 대한 개념이 필요합니다.공유 메모리란 여러 프로세스가 공유하는 메모리 공간.. 입니다. 예를 들면 A라는 프로세스와 B라는 프로세스가 공유 메모리를 사용할 때,A와 B 프로세스는 각각의 메모리 공간을 가지고, 두 프로세스가 모두 사용할 수 있는 공유 메모리를 가집니다.공유 메모리를 사용하는 프로세스들은 해당 메모리에 접근할 수 있으므로A.. 더보기
해커스쿨 FTZ ( level9 -> level10 ) by ORANG FTZ_level9 [level9@ftz level9]$ lshint public_html tmp[level9@ftz level9]$ cat hint 다음은 /usr/bin/bof의 소스이다. #include #include #include main(){ char buf2[10]; char buf[10]; printf("It can be overflow : "); fgets(buf,40,stdin); if ( strncmp(buf2, "go", 2) == 0 ) { printf("Good Skill!\n"); setreuid( 3010, 3010 ); system("/bin/bash"); } } 이를 이용하여 level10의 권한을 얻어라. 슬슬 BOF(버퍼 오버 플로우) 문제가 나오기 시작하네요ㅎㅎBO.. 더보기
해커스쿨 FTZ ( level8 -> level9 ) by ORANG FTZ_level8 [level8@ftz level8]$ lshint public_html tmp[level8@ftz level8]$ cat hint level9의 shadow 파일이 서버 어딘가에 숨어있다.그 파일에 대해 알려진 것은 용량이 "2700"이라는 것 뿐이다. 간단하네요ㅎㅎfind 명령어를 이용하겠습니다. [level8@ftz level8]$ find / -size 2700 2>/dev/null​ 하지만 아무 반응도 없네요find의 메뉴얼 중 size 옵션에 대해 찾아보니.. [level8@ftz level8]$ man find …생략… -size n[bckw] File uses n units of space. The units are 512-byte blocks by default or i.. 더보기
해커스쿨 FTZ ( level7 -> level8 ) by ORANG FTZ_level7 [level7@ftz level7]$ lshint public_html tmp[level7@ftz level7]$ cat hint /bin/level7 명령을 실행하면, 패스워드 입력을 요청한다. 1. 패스워드는 가까운곳에..2. 상상력을 총동원하라.3. 2진수를 10진수를 바꿀 수 있는가?4. 계산기 설정을 공학용으로 바꾸어라. 2진수를 10진수로.. 아주 간단한 암호학 문제같네요/bin/level7을 실행해보겠습니다. [level7@ftz level7]$ /bin/level7Insert The Password : itstest Wrong Password....!! --_--_- --____- ---_-__ --__-_- 아무거나 입력해보면 이상한 표시가 뜨는군요ㅎㅎ 저부분이 패스워.. 더보기
해커스쿨 FTZ ( level6 -> level7 ) by ORANG FTZ_level6 level6로 로그인해보면.. hint - 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다. 라는 글이 뜨네요.. 그동안의 문제와 다른것 같습니다.계속 진행해보면.. ##################################### ## ## ## 텔넷 접속 서비스 ## ## ## ## ## ## 1. 하이텔 2. 나우누리 ## ## 3. 천리안 ## ## ## ##################################### 접속하고 싶은 bbs를 선택하세요 : 1, 2, 3 어떤 것을 입력해도 반응이 없고.. crtl+c 도 먹히지 않습니다..이 문제에서 많이 헤맸는데.. 해답은 너무 쉽더군요 crtl+] 로 메뉴를 빠져나오면 됩니다. ㅎㅎ [level6@ftz.. 더보기
해커스쿨 FTZ ( level5 -> level6 ) 2 by ORANG 이번에는 스레드를 이용해서 더 깔끔하게 풀어보겠습니다. [level5@ftz thread]$ cat thread.c#include #include #include void *a();void *b(); int main(){ pthread_t thread1, thread2; int ia, ib; ia = pthread_create(&thread1, NULL, a, NULL); ib = pthread_create(&thread2, NULL, b, NULL); if(ia != 0 || ib != 0) { printf("pthread_create error!!"); exit(0); } pthread_join(thread1, NULL); pthread_join(thread2, NULL); return 0;} voi.. 더보기
해커스쿨 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");.. 더보기