기본 콘텐츠로 건너뛰기

글

라벨이 FTZ(hackerschool)인 게시물 표시

FTZ level4

FTZ level4 ls -al명령어를 통해 hint 파일의 여부를 확인한다. cat 명령어를 통해 hint내용을 확인했는데 /etc/xinetd.d/라는 곳에 백도어가 있다고 했다. find 명령어를 통해 SetUID를 찾아보려 했으나 찾을 수 없었다. cd명령어를 통해 /etc로 이동했다. ls -al명령어를 통해 확인해 보니 backdoor라는 파일이 존재했다. cat명령어를 통해 backdoor의 내용을 확인해 보았다. 무슨 말인지 하나도 모르겠다. 그래서 구글링을 해봤는데 해석해 놓은 블로그가 있었다. ( http://logonluv.blogspot.kr/2015/02/hacker-school-ftz-level4.html ) 일단 데몬에 대해서 알아야 하는데 데몬이란 시스템에 관련된 작업을 하는 후위 프로세스를 말한다. 이 중에서 xinetd라는 것이 있는데  extended internet service demon의 약자이다. 인터넷 슈퍼데몬을 의미하는데 리눅스 서버에서 운영하는 여러 다른 데몬들을 제어하면서 서비스들간의 연결을 담당한다. ( http://geundi.tistory.com/43  ) 그럼 backdoor의 내용을 해석해 보자. 먼저 service finger 이라는 것은 finger 라는 이름의 서비스를 의미한다.  finger 요청에 응답하는 서버. finger는 사용자에 대한 로그인 네임, 디렉토리, 쉘과 최종 로그인 시간에 대한 정보를 제공 하는 프로토콜(컴퓨터간의 통신을 위해 사용하는 규칙)이다. (  http://mkwilson.tistory.com/28 ) /etc/services 파일에 등록된 이름과 같아한다고 한다. disable 가 no로 되어 있는 것은 xinetd의 제어를 받지 않는다는 의미이다. user라는 것은 데몬의 UID를 의미한다. s...

FTZ level3

FTZ level3 패스워드를 치고 들어가서 hint파일을 확인한다. hint파일에는 c언어로 된 파일이 적혀있다. 해석하자면 아무것도 입력되지 않을 때는 if문을 실행해서 “Auto Digger Version….”이라는 문자열을 출력한다.그리고 프로그램을 종료시킨다. 그렇지 않다면 if문을 무시하고 strcpy코드부터 실행한다. cmd라는 문자열에 “dig %”를 넣어주고 두 번째로 입력한 문자열(arvg[1])을 이어 붙인 다음 “Version.bind chaos txt”를 이어 붙인다. system함수를 통해 cmd에 들어있는 문자열이 의미하는 프로세스를 실행시킨다. more hints를 살펴보자. 동시에 여러 명령어를 사용하기 위해서는 ;(세미클론), 문자열 형태로 명령어를 전달하려면   “(큰따옴표)를 사용하면 된다. find 명령어를 통해 SetUID를 찾았다. 위치는 /bin/autodig 라는 파일이 나온다. autodig라고 입력해 보았더니 여기에 대한 정보가 나왔다. 일단 cd명령어를 통해 /bin으로 갔다. 여기에 autodig라는 파일이 있지만 직접 실행이 되지 않았다. 그럼   위에서 본 autodig의 코드를 살펴보자. 일단 autodig라는 파일명 말고도 다른 것을 입력해야 한다. 그래서   arvg[1]이 생기기 때문에. 하지만 arvg[1]까지만 있는 걸 보아선 한 줄의 명령어만 더 할 수 있다. 따라서 more hints의 첫번째 조건이 필요하게 된다. 실행해야 할 명령어는 2개이다. level4의 쉘을 얻는 것과 level4의 password를 얻는 것. 필요한 명령어는 /bin/bash 와 my-pass 이다. 이 두가지의 명령어를 “/bin/bash;my-pass” 처럼 연결시켜 주면 된다. 코드를 보면 입력받은 명령어를 cmd에 넣어야 하기 때문에 큰따옴표를 사용해 명령어를 문자열로 ...

FTZ Level2

level1 에서 level2의 비밀번호를 받았다면 level2 를 시작해보자. 1. 로그인 인 디렉터리 확인 hint파일이 있는걸 확인할 수 있다.  2. hint 파일 확인 cat명령어를 사용하여 hint의 내용을 확인한다. 3. setuid가 걸린 파일  찾고 해당 디렉터리로 이동하기 find 명령어를 -user와 -perm옵션을 사용해 찾아준다. 해당 파일이 있는 디렉터리로 cd명령어를 통해 이동한다. 4. 해당 파일 확인 처음에는 ls 명령어로 확인했으나 해당 디렉터리에 있는 파일들이 너무 많아서 보기가 힘들었다. ls 파일명 --> 해당 파일명을 가진 파일만을 보여준다. 5. 파일 실행 파일을 실행하면 문구가 뜬다. VIM -->vi 호환 텍스트 편집기이다. VIM를 입력모드로 바꾸기 위해서는 shift+:를 해야한다. 입력모드로 바꿨으면 !/bin/bash를 입력한다. !는 vim에서 외부의 쉘을 실행시켜주는 명령어이다. level이 3으로 바꿨다.

FTZ Level1

**level1을 풀기 전에 기본적인 세팅을 해야한다.** 1.로그인 및 디렉터리 확인 level1은 아이디와 비밀번호 모두 level1이라고 알려준다. 로그인을 했으면 어떤 디레토리들이 있는지 확인해야 한다. ls 명령어 사용 -->현재 디렉터리 내의 파일들을 출력함. hint 파일이 있는 것을 볼 수 있다. 2.hint파일 내용 확인 cat명령어 사용 --> 파일의 내용을 출력한다. setuid --> Set User ID setuid는 현재 사용하고 있는 사용자가 소유자의 권한을 가지게 된다.  <파일의 사용권한> 𑂽 𑂽𑂽𑂽𝅷 𑂽𑂽𑂽 𑂽𑂽𑂽 ↓ 이 부분이 특수 권한을 설정하는 비트인데 setuid는 4, setgid는 2, stricky bit는 1을 사용한다. 3. setuid가 걸린 파일 찾기 find 명령어 -->파일을 찾아주는 명령어다. 여러가지 옵션과 함께 사용하는데 여기서는 user와 perm옵션을 사용했다. *-user name : name이 소유한 파일을 찾아둔다. *-perm 파일의 사용권한:  파일의 사용 권한의 비트에 따라서 해당하는 권한을 가진 파일을 찾는다. 사용권한 앞에는 -혹은 +가 붙을 수 있는데 -일 때는 딱 그 비트에 해당하는 파일을, +일 때는 그 비트가 포함된(그 비트 이상의) 모든 파일을 찾는다. *2>/dev/null :해당하는 파일만을 출력하게 만든다. 만약 이 명령어가 없다면 아래와 같이 출력된다. 4. 파일 실행 ExcuteMe라는 파일이 cat명령어를 통해 내용을 볼 수 없다. 파일을 실행시키기 위해 ./ ExcuteMe를 쓰거나 ExcuteMe라고 쓴다. 5. ExcuteMe 실행 실행 화면에서 /bin/bash를 써준다. /bin/bash -->level2의 쉘을 받게...