터미널 창을 켜고 


ssh level1@ 레드햇 창의 아이피 주소


를 치면    비밀번호를 치라고 나온다 .


level1의 비밀번호 


level1을  쳐주면


드디어 level1의 문제를 풀 수 있는 환경이 만들어진다.



ls -al 명령어를 통해 무슨 파일들이 있는지 한번 봅시다! 




저기 hint 라는 파일이 있네요 


cat hint


명령어를 통해 어떠한 힌트가 있는지 한번 봅시다.





"level2 권한에 setuid가 걸린 파일을 찾는다."



라는 힌트가 나왔습니다. 



*setuid 는   멀티유저시스템인 리눅스/유닉스에만 있는 독특한 개념입니다! 

setuid는 마치 회사의 사원증 같은 겁니다. 사원증이 있어야 회사에 들어갈 수 있죠.

만약 이 사원증을 누군가에게 넘겨준다면 그 사원증을 넘겨 받은 사람은 일시적으로(그 사원증을 갖고 있는 동안) 그 회사에

드나 들 수 있는 권한을 갖게됩니다.



그럼 이제 이 level1에 있는 level2 권한에 있는 setuid가 걸린 파일을 찾아봅시다!


setuid가 걸린 파일을 찾아 주는 명령어


find / -perm -4000 -user level2 2> /dev/null





find   찾아라

   디렉토리에서

-perm   권한은 

-4000   SetUID(4000)

-user   소유자는 

level2   level2

2> /dev/null  쓰레기 값 빼고!!


2> /dev/null 을  쓰지 않는 다면 



위에 다 나오지 않은 많은 것들이 출력이 된다.

하지만

2> /dev/null 을 쓴다면


이렇게 SetUID만 걸린 파일이 나오게 된다.



/bin/ExecuteMe 파일 실행시




**[level1@ftz level1]$ 명령 구문에서 my-pass를 쳐보니 나의 비밀번호가 나오고('level1')

-->자신의 레벨에서의 암호를 알고 싶을 때 사용하는 것


chomod는 

--> 파일의 퍼미션을 바꾸는 명렁어

chmod: 인수가 너무 적음

더 많은 정보를 보려면 `chmod --help' 하십시오.


라고 나온다.


chmod --help   라고 치면

                

사용법: chmod [옵션]... MODE[,MODE]... FILE...

  또는: chmod [옵션]... 8진수-MODE FILE...

  또는: chmod [옵션]... --reference=RFILE FILE...

Change the mode of each FILE to MODE.


  -c, --changes           like verbose but report only when a change is made

  -f, --silent, --quiet   suppress most error messages

  -v, --verbose           output a diagnostic for every file processed

      --reference=RFILE   use RFILE's mode instead of MODE values

  -R, --recursive         change files and directories recursively

      --help     이 도움말을 표시하고 끝냅니다

      --version  버전 정보를 출력하고 끝냅니다


Each MODE is one or more of the letters ugoa, one of the symbols +-= and

one or more of the letters rwxXstugo.


<bug-coreutils@gnu.org>(으)로 버그를 알려 주십시오.

라고 출력된다.





그럼 어떤 명령어를 써야 하는 걸까....

저 두 명령어를 사용하지 않고 level2로 가는 비밀번호를 아는 방법은 무엇일까 보면


level2의 권한으로 Shell을 실행시키는 것이다.


**Shell

명령어 처리기 혹은 UI(User Interface)이다.

 cmd, terminal, bash,COMMAND 창을 shell이라 할 수 있다.


컴퓨터가 우리가 내리는 명령을 바로 이해 할 수 는 없기에 Shell이 이를 해석하여 OS를 움직이게 한다.

즉 사용자와 OS의 커널을 연결해주는 역할을 한다고 보면 좋을듯 싶다.

OS는 이를 다시 컴퓨터가 이해할 수 있는 명령으로 바꾸어 전달한다.



Execute me파일에서는 my-pass사용을 못하게 하니

level2의 shell을 띄어 그곳에서  my-pass를 사용해보자.




이렇게 level2의 비밀번호를 알게 되었다!


1)bash

2)/bin/bash


둘다 사용 가능!

'FTZ' 카테고리의 다른 글

Level6  (0) 2016.09.03
Level5  (0) 2016.09.03
Level4  (0) 2016.09.03
Level3  (0) 2016.09.03
Level2  (0) 2016.09.03

+ Recent posts