level 10 풀이를 시작합니다.아이디 / 비밀번호 : level 10 / interesting to hack! 힌트를 보니 key_t 7530 위치에 접근하는 소스코드를 작성하면 되겠군요. i = shmget(7530, 1028, IPC_CREAT|0666)); // 공유 메모리를 위한 ID 7530 - key 값 // 10 - size(byte 단위) // IPC_CREAT - shared memory가 없으면 새로 생성(생성 시 권한 설정 필요) 위 소스코드를 gcc로 컴파일한후에 실행하면 level11의 비밀번호가 나옵니다.level11 비밀번호:what!@#$?
level9 풀이입니다.아이디 / 비밀번호 : level9 / apple 드디어 본격적인 BOF 문제가 나옵니다. /usr/bin/bof 파일을 보니 lelvel10의 setuid가 걸려있고 level9에겐 실행권한만 걸려있어서 gdb로 분석할수 없습니다. 그러니 /usr/bin/bof 파일 대신 hint를 /tmp에 level9.c라는 이름으로 복사한 뒤 다음과 같이 한글을 지워줍니다. 그후 gcc로 컴파일해서 level9라는 실행파을을 만들어주고 gdb로 분석해 줍니다.gdb에 관해서는 아래 블로그의 내용을 읽어 보는 것을 추천합니다. https://blackperl-security.gitlab.io/blog/2016/03/09/2016-03-09-gdbmemory-01/ 여기서 gdb -q 는 gd..
level 8 풀이입니다.아이디 / 비밀번호는 level8 / break the wall 입니다. 힌트를 보니 용량이 2700인 level9의 shadow 파일을 찾아야 합니다.보통 용량은 byte를 나타내므로 용량에 c를 써서 find / - size 2700c를 써야합니다. /etc/rc.d/found.txt 라는 파일을 찾았습니다. 확인해보니 이 파일이 맞군요. 실행해 보니 이런 내용들이 들어있군요. 암호화 되어 있으니 해독해야합니다.저는 예전에 윈도우에 jon179라는 존 더리퍼 툴을 깔았으므로 그걸 이용해서 복호화해보겠습니다. john179의 run 폴더에 ftz.txt 라는 폴더를 만들고 위의 내용을 넣습니다. 그리고 cmd.exe를 run 폴더에 넣고 cmd.exe를 실행해서 john ftz..
level7 풀이입니다.아이디 / 비밀번호는 level7 / come together 입니다. 힌트를 보니 /bin/level7 파일의 암호를 알아야 할 것 같습니다. /bin/level7 파일은 level8의 setuid가 걸려있고 /bin/level7 파일을 실행해서 아무 암호를 입력해 봐도 정답이 아닙니다. 구글링 결과 가상머신 오류로 wrong.txt 파일이 없다고 하는군요.wrong.txt 파일에는 --_--_- --____- ---_-__ --__-_- 이게 들어있습니다.이걸 - 를 1로 _를 0으로 생각해보면 1101101 1100001 1110100 1100101 입니다 4부분으로 나눠서 10진수로 바꿔 보면 109 97 116 101입니다. 합치면 109 97 116 101 입니다. 아스..
level6 풀이입니다.아이디 / 비밀번호는 level6 / what the hell입니다. 아이디와 비밀번호를 입력하고 들어가면 hint가 바로 나옵니다. 그리고 엔터를 누르면 이런 창으로 넘어갑니다. 1번,2번,3번을 전부 다 눌러도 안돼서 접속을 다시 한후에 이 창에서 ctrl + c 를 눌러서 종료해봤습니다. 목록을 보니 hint와 password가 있어서 hint를 보니 처음에 본 그 힌트였고 password를 보니 level7의 패스워드가 있습니다. level7 비밀번호 : come together
level5 풀이 입니다.아이디 / 비밀번호는 level5 / what is your name? 입니다. 힌트를 보니 /usr/bin/level5 프로그램을 실행하면 /tmp 디렉토리에 level5.tmp 라는 임시파일을 생성한다는군요. /usr/bin/level5 를 봐보니 level6의 setuid가 걸린 파일이군요. /tmp 로 이동해서 /usr/bin/level5 를 실행시켜봤더니 /tmp에 level5.tmp 파일이 생기지 않습니다. 그래서 /tmp에 level5.tmp라는 파일을 생성하고 아무정보도 넣지 않은후에 /usr/bin/level5를 실행하고 다시 파일을 봐더니 데이터가 0 이어야할 level5.tmp가 31입니다. cat 명령어로 level5.tmp를 봐보니 다음 비밀번호가 나오는군..
level4 풀이입니다. level4 아이디/비밀번호는 level4/suck my brain 입니다 hint 를 보니 /etc/xinetd.d 에 누군가 백도어를 만들어서 심어두었다는군요 /etc/xinetd.d로 이동해준후 backdoor 파일을 찾았습니다. backdoor 파일을 열어보니 다음과 같은 내용들이 있군요중요한 부분은 server = /home/level4/tmp/backdoor 이부분입니다.서비스 실행시 어떤 위치의 프로그램을 실행해 줄지를 나타냅니다. /home/level4/tmp로 이동해서 하위 디렉토리들을 찾아보았지만 backdoor라는 파일은 없습니다. backdoor 파일이 없으므로 backdoor 파일을 새로 만듭니다. vi로 id와 패스워드를 출력해주는 프로그램을 작성해줍니다..
ftz level3 풀이입니다.아이디/비밀번호는 level3/ can you fly? 입니다. hint를 보면 힌트가 소스코드로 되어 있습니다. 일단 파일이름이 autodig이니 이름이 autodig인 파일을 찾아봅시다. /bin/autodig이라는 파일이 있군요. 실행해보면 Auto Digger Version만 출력하고 프로그램이 종료합니다. 여기서 아까 힌트를 보자면 동시에 여러 명령어를 한 번에 사용하려면 ;를 사용하면 되고문자열 형태로 명령어를 전달하려면 " " 를 사용하면 됩니다. 즉 /bin/autodig "bin/sh;my-pass" 를 입력하면/bin/autodig으로 프로그램을 실행하고 bin/sh와 my-pass를 한번에 사용함으로써 level4 권한을 얻음과 패스워드 출력을동시에 합니..
level 2 풀이 입니다.아이디/비번은 level2/ hacker or cracker입니다. 힌트를 보니 텍스트 파일 편집 중 셀의 명령을 실행가능하답니다. level1에서 했던것처럼 유저 level3의 권한을 가진 파일을 찾아줍시다. /usr/bin/editor 파일만 권한이 있습니다. 실행해 주시면 이런 vi 편집기가 나옵니다. vi 편집기에서 편집모드에서 강제로 명령을 실행할때는 ! 를 사용합니다.!/bin/sh를 사용하여 level3의 권한을 얻도록 합시다. whoami 명령어로 level3의 권한을 얻은 것을 확인해 줍니다. my-pass로 level3의 비밀번호를 알아보니 can you fly? 입니다. level3 비밀번호: can you fly?
ftz level1을 풀이해보도록 하겠습니다.먼저 ftz level1은 ftz trainer 를 1~10번까지 풀었다는걸 전제로 합니다. ftz level1의 아이디/비밀번호는 level1/level1 입니다. level1에 들어간 후에 hint를 봐보니 level2 권한에 setuid가 걸린 파일을 찾아야 합니다. 여기서 ftz trianer 에서 이미 배웠던 setuid에 대해 정리해 보자면 이렇습니다. 서버 전체에서 setuid가 걸린 파일을 찾으려면 find / -perm -4000을 입력합니다. find / -perm -4000 을 해석해 보면 최고 유저 / 에서 부터 setuid가 걸린 모든 파일을 찾는 명령어 입니다. find 명령어는 위와 같이 권한,이름,유저,그룹등의 정보와 같이 쓸수 있..