반응형

hackerschool 5

[Hackerschool FTZ] - level 5 문제

문제 내용 힌트를 보면 /usr/bin/level5 프로그램을 실행하면 /tmp 디렉토리에 level5.tmp라는 임시 파일을 생성한다고 한다. /usr/bin/level5를 실행하고 /tmp 디렉토리를 확인 해 보겠다. 명령어를 실행하였지만 level5.tmp가 생성되지 않았다. 하지만 생성된것이 아니라 빨리 삭제가 된것이여서 보이지 않는 것이다. 이것은 레이스 컨디션 공격을 통해 문제를 해결할 수 있다. 레이스 컨디션 공격을 위한 조건은 아래와 같다. 1. SUID가 걸려있어야 한다. 2. 임시파일을 생성해야 한다. 3. 임시로 생성되는 파일의 이름을 알아야 한다. /usr/bin/level5를 실행하면 /tmp/level5.tmp 파일이 생성된다. setUID가 걸려있고 임시파일을 생성하고 생성되는..

[Hackerschool FTZ] - level 4 문제

문제 내용 힌트를 보면 누가 /etc/xinetd.d/ 디렉토리에 백도어를 심어놓았다고 한다. 해당 디렉터리로 이동하겠다. 백도어 파일을 확인하였다. finger라는 서비스를 이용한다. finger 는 로컬사용자 또는 원격서버사용자의 계정정보를 확인하는 명령어이다. 찾아보니 level5의 권한으로 /home/level4/tmp/backdoor를 실행한다고 한다. 따라서 우리는 /home/level4/tmp/backdoor 파일을 만들어야한다. backdoor.c 파일 #include #include int main(void){ system("my-pass"); return 0; } my-pass 명령어를 실행하는 백도어 코드이다. gcc로 컴파일을 한후 finger @loacalhost를 이용하여 lev..

[Hackerschool FTZ] - level 3 문제

문제 내용 hint를 보면 autodig의 소스코드를 보여주고 있다. argc가 2개가 아니면 종료가 된다. => 인자를 1개 넣어줘야함 strcpy로 dig @를 cmd에 복사하고있다. strcat(A,B)함수는 문자열을 이어붙이는 함수로 A뒤에 B를 붙인다. 마지막에 system함수로 입력받은 명령어를 실행할 수 있다. 힌트를 보면 동시에 여러 명령어를 사용하기 위해 ;(세미콜론)을 사용하면 되고 문자열 형태로 명령어를 전달하기 위해서는 '(싱글 쿼터), "(더블 쿼터)를 사용하면된다. 인자에 '8.8.8.8;my-pass'을 넣어주면 dig @8.8.8.8을 실행한 후 my-pass를 실행하게 될 것이다. 일단 autodig파일의 위치를 찾아보겠다. autodig파일은 /bin디렉터리 아래에 있는 ..

[Hackerschool FTZ] - level 2 문제

문제 내용 hint 파일을 확인해보니 텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데... 이라고 한다. 텍스트 파일 편집 중 쉘의 명령을 실행시킬수 있는 텍스트 파일은 vi에서 실행시킬 수 있다. level 1번 문제처럼 setUID 권한을 가지고 있는 소유자가 level3인 파일을 찾아보았다. /usr/bin/editor이라는 파일이다. /usr/bin/editor 파일을 확인해보면 group사용자가 level2이고 소유자가 level3인것을 보아 level2에서 실행시키면 level3의 권한을 가진다. editor파일은 32비트 ELF 실행파일이므로 한번 실행해 보도록 하겠다. 실행을 하니 vi 편집기가 떴다. 아까 힌트를 보면 편집기능에서 쉘의 명령어를 실행시킬 수 있다고 하였다. vi편집..

[Hackerschool FTZ] - level 1 문제(환경 설정 포함)

환경설정 id : root, password : hackerschool 이다. ifconfig로 ip를 확인한다. putty로 접속을 한 후 hint를 보니 한글이 깨진다. Window -> Translation -> Remote character set: 에서 Use font encoding을 사용한다. 한글이 이제 보인다. level1번 문제를 바로 풀어보도록 하자. 문제 풀이 아이디와 비밀번호는 level 1으로 동일하다. hint를 보니 level2권한에 setuid로 설정된 파일을 찾는것이다. setuid는 파일 실행 시 파일 소유자 권한으로 실행하는것을 말한다. setuid로 파일을 설정하고 싶으면 권한설정을 4000번으로 하면 된다. ex) chmod 4777 [file_name] find의..

반응형