Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

US0

[FTZ] Hacker School FTZ LEVEL1 <ls, find 활용> 본문

Security/Pwnable

[FTZ] Hacker School FTZ LEVEL1 <ls, find 활용>

us0 2018. 11. 6. 14:42

FTZ level1  <ls, find 활용>



로컬 서버로 구축한 FTZ서버와 연결해준다.

ID : level1

PW : level1 


ㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁㅁ



먼저 level1로 들어왔으니 검색하기위해 ls명령어를 사용해서 어떤 파일들이 있는지 살펴보자!!!

옵션 -l 을 줄건데 -l 옵션을 주게되면 파일 퍼미션(권한)확인과 이파일이 디렉토리인지, 파일인지 확인 할 수가 있다.



*******************************************************************************************************************************************

ls -l 에 관한 추가설명!!


맨 앞글자에 d는 디렉토리라는 뜻이다 흔히 우리가 아는 폴더라고 생각 하면 된다. 이 부분이 -(하이푼) 표시로 되어있으면

그냥 파일이라는 뜻!!!


그다음 rwxrwxrwx 이렇게 9글자로 이루어진 글자가 있는데 이것은 권한을 나타낸다 

r : read(읽기) / w: write(쓰기) / x : execute(실행) 를 나타낸다 


rwx가 3번 반복되어있는데              이렇게 나눠보면

d                                 rwx                      rwx             rwx                                                         

디렉토리인지            소유자 권한           그룹 권한      other(소유자도 아니고 그룹도아닌)


이렇게 권한이 각 사용자 별로  나뉘어진다.

따라서 hint 파일은 -rw-r--r-- 이라고 되어있는데 소유자는 root 이다 따라서 이 hint파일은  root권한일때 read, write를 할수 있지만 그룹에 해당하거나 아무 권한도 없는 사용자일경우 읽기모드 밖에 지원이 되지 않는다.

*******************************************************************************************************************************************




다시 level 1 진행~~그랬더니  hint라는 파일을 발견했는데  cat 명령어를 사용해서 hint파일을 읽어보자

(cat은 파일 읽는 명령어; read에 해당한다.)




level2 권한으로되어있는 setuid가 걸린 파일을 찾아보라고 나온다.


그럼 우린 find 명령어를 통해 위의 힌트와 같이 level2로 되어있고 setuid가 걸린 파일을 찾아 볼 수 있다. 

그 명령어는...

이렇게 되는데



find / -user level2 -perm -4000이라고 치면

주루루루루루룩 나오면서 저렇게 해당되는 파일 목록이 나온다 permission denied는 권한이없다 이런 뜻이니 그냥 무시해도 된다.


근데!! 여기서 find 명령어에 들어간 옵션들이 궁금할 것이다!!


일단 find / -user level2 -perm -4000 에서 앞의 find / 는 '찾는다 최상위 디렉토리(/)에서부터'  라는 말이다  


그 뒤에 나오는 -user level2는  level 2(<<이게 사용자 이름) 사용자에 해당하는 파일을 찾는것이고


 뒤에나오는 -perm -4000을 살펴 보자


-perm 뒤에는 mode라고 부르는데 

-perm mode               //정확히 같은 퍼미션을 가진 파일찾기

-perm +mode             //퍼미션 비트 모드중에 조건이 하나 만 이라도 포함이 될 경우 파일 찾기

-perm -mode             //퍼미션 비트 모드중 조건이 충족 될 경우 파일 찾기


*******************************************************************************************************************************************

퍼미션 비트란!!!  아까 말한 drwxrw-r-- 이런거를 비트로 나타낸거를 말한다 rwxrwxrwx를 각각 3개로 나눠서 111 111 111 이렇게 표현하는것인데

rwxrwxrwx

111  111  111     <<이렇게 1비트씩 할당된다고 생각하자 그리고 이진수로 표현!!


 예를 들면 rwxrwxrwx -> 777    rwxrw-r--  -> 764 이런식으로 생각하면된다 


이렇게 3가지 경우가 있다.

따라서 우리는  퍼미션 비트모드중 조건이 충족 될경우 찾아야하니 -4000 옵션을 넣어주었다. 

(4는 setuid값을 가진 파일을 뜻함!! 여기에 관해선 나중에 따로 설명)

*******************************************************************************************************************************************


다시 진행~~~~~

그럼 우린 /bin/ExcuteMe 라는 파일을 발견 했다. /bin/ 디렉토리에 있는 파일은 어디서든 실행이 가능하니 바로 ExcuteMe 실행!!!!!



이렇게 나온다 ㅇㅂㅇ


그랬더니 갑자기 level2 사용자가 되었다 ㅇ.ㅇ.... 원하는 명령어 하나만 실행 해준다고 한다 my-pass(내 비밀번호 확인) , chmod(권한 바꾸기)

사용 금지니까 /bin/bash를 통해서 쉘을 따주자!! 그럼 level2 권한으로 어떤 명령어 이든지 실행 수. 있다.






level 2 쉘을 땃으니 이제서야 my-pass를 실행시켜 level2의 비밀번호를 확인해보자(level2 쉘로 my-pass 를 하니 level2의 비밀번호가 나온다.) 




level 1 Clear!!!!!

level 2 pw: hacker or cracker