문제분석 & 풀이level9 shadow 파일이 서버에 있으며 용량이 "2700"이라는 힌트를 줬다. ○ shadow 파일/etc/passwd 파일에 있는 비밀번호를 암호화하여 저장한 파일이다. 패스워드를 암호화하고 보호하기 위해 만들었다. 용량 "2700"을 이용하기위해 위와 같이 명령어를 입력해서 파일을 검색했다. 검색결과가 아무것도 나오지 않아서 조금 당황했다. 무엇이 문제인지 감이 안잡혀서 find 명령어 -size 옵션에 대해 조사했다. 이후 새롭게 알아낸 사실은 size 옵션의 경우 파일의 사이즈 단위를 설정해 검색 할 수 있다는 것이다. ○ -size 옵션 파일 사이즈 단위b (block)c (byte)k (Kbyte)w (2byte word)m (Mbyte)g (Gbyte) 파일 사이즈를 ..
문제분석 & 풀이 힌트를 확인했지만, 처음에 무슨말인지 이해가 안되서 /bin/level7 부터 실행했다. level7을 실행하니 힌트의 언급대로 패스워드 입력을 요청한다. 결과를 확인하기 위해 아무 값이나 입력했고 /bin/wrong.txt라는 파일을 찾지 못했다는 문구가 나온다. 필자는 wrong.txt에 관한 의문을 해결하는 것이 핵심이라고 생각하고 삽질을 했으나.. 로컬에서 ftz 환경을 구축하는 경우에는 wrong.txt 파일이 없는 경우가 있다고 한다. (여기서 삽질하신 다른 독자분들도 많을거라고 생각한다.) wrong.txt 파일이 존재하는 경우에는 내용은 다음과 같다. --_--_- --____- ---_-__ --__-_- 원래는 패스워드 입력이 실패하면 위와 같은 힌트가 나온다. 바로..
문제분석 & 풀이level6 계정으로 접속하면, hint가 제공된다. 인포샵 bbs의 텔넷 접속 메뉴에서 사용되던 방법이라는데... 우선 인포샵 bbs에 대해 조사했다. ○ 인포샵 bbs옛날 전화와 PC가 함께 통신하던 시절 이용되던 사설 BBS 서비스이다. 사용자에게 주소를 입력 받아 ping 테스트 후 주소가 활성화 되어 있다면 연결해주는 서비스를 해준다. 쉽게 말해 원격 접속을 지원하는 서비스다. 관련 취약점을 찾기 위해 더 조사해보니, 인포샵 BBS 서비스과 관련된 치명적인 취약점을 찾을 수 있었다. 서비스 초기 화면에서 Ctrl + C (프로그램 종료)를 하면 텔넷 서비스가 종료되고 서버의 쉘로 접속하게 되는 엄청난 취약점이 존재한다는 것이다. 실제로 ctrl + C 를 해보니 level6 계정..
문제풀이힌트를 확인해보니 /usr/bin/level5가 /tmp/level5.tmp라는 임시파일을 생성한다고 한다. /usr/bin/level5 파일에 접근하면, level6 권한의 setuid 비트가 걸린 파일임을 확인 할 수 있다. level5 파일이 /tmp/level5.tmp라는 임시파일을 생성한다고 했으니 실행해서 확인해보자. hint에서 알려줬던 내용과는 다르게 level5.tmp라는 임시파일이 없다. 아마도 /usr/bin/level5를 실행하면 /tmp/level5.tmp 임시파일을 생성 후 접근하고 이후에 바로 삭제하는 것 같다. level5.tmp가 바로 삭제되는 것으로 보아하니, level5.tmp의 내용을 중간에 가로채는 것이 문제의 핵심일 것 같다. ○ level5 프로그램 실행과..
문제분석 & 풀이 /etc/xinetd.d 경로에 백도어가 심어져있다고 한다. 경로로 접속해보자. /etc/xinetd.d 에 접근해 파일을 확인해보니, xinetd 데몬이 관리하는 여러가지 서비스들 사이에 backdoor 파일이 있는 것을 확인 할 수 있다. ○ xinetd리눅스의 슈퍼데몬으로 여러가지 데몬들을 관리하는 관리자 데몬이다. client가 서버에 특정 서비스에 대한 접속 요구시, /etc/xinetd.d에 있는 해당 서비스에 대한 설정 정보를 토대로 client의 접속을 해당 서비스로 넘겨준다. backdoor 파일을 읽어보니 위와 같이 서비스가 설정되어있다. 요약하자면, tcp 타입으로 연결하는 finger 서비스고 level5의 권한으로 /home/level4/tmp/backdoor ..
문제분석 & 풀이힌트 먼저 확인해보자. 요약하면 autodig 코드를 보여주고 있으며, autodig를 이용하여 level4의 권한을 얻는 문제인 것 같다. ○ 코드 분석1. cmd[100]이라는 배열을 선언한다.2. argc != 2 , 즉 argv 갯수가 2개여야 한다.3. strcpy(), strcat()을 이용하여 cmd라는 배열에 값을 넣어주고 있다.("dig @ [사용자가 입력한 인자 값] version.bind chaos txt"와 같은 형태로 cmd에 저장된다.)4. 마지막으로 cmd 배열에 저장된 값을 인자로 하는 system 명령을 실행한다. 결과적으로system("dig @ [사용자가 입력한 인자 값] version.bind chaos txt") 를 실행하는 코드이다. 그러나 leve..