본문 바로가기
워게임/FTZ

FTZ - level1

by meanjung 2021. 7. 2.

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


우선 'setuid'에 대해 알아보려했는데, '특수권한'이라는 말부터 알아야겠다.

 


특수 권한

권한 : u(소유자), g(그룹), o(other)

특수권한 : setuid, setgid, stickybit


setuid를 파일에 설정하면 소유자(u)의 실행권한에 x대신 s가 들어간다.

 

사실 권한은 [ ][ ][ ] 이렇게 3자리가 아니라 [ ][ ][ ][ ] 특수권한까지 합쳐서 4자리 이다.

r, w, x 순으로 4, 2, 1 값을 갖는 것처럼,

setuid(s), setgid(s), stickybit(t)도 각각 4, 2, 1을 갖는다.

 

만약, 기존 권한이 755이던 파일에 setuid를 주고싶다면,

chmod 4755 [파일] 과 같이 하면 된다.

 

chmod로 특수권한을 줬다고 가정했을 때,

s(setuid), s(setgid), t(stickybit) 모두 기존 파일에 실행권한 x가 있었다면 소문자 s,s,t가 들어간다.

만약 실행권한 x가 기존에 없었다면, 대문자 S,S,T가 들어간다.

 

setuid

setuid가 적용된 파일을 실행하면, 실행 파일이 끝날 때까지 파일 소유자의 uid가 되는 것이다.

"uid를 쓴다" == "uid가 가리키는 계정을 사용한다"


문제로 돌아와서..

setuid가 걸린 파일을 찾아야 한다.

 

- find / -perm -4000 : 최상위 루트 디렉토리(/)에서 권한이 4000가 있는 것을 찾겠다.

이걸 변형한다면?

 

find / -perm -4000 -user level2 2> /dev/null : setuid가 걸려있으면서 파일 소유주가 level2인 파일을 찾았다.

2> /dev/null은 에러가 발생했을 때 그 결과를 휴지통으로 넣어준다.

2 : 표준에러

/dev/null : 휴지통 역할

 

뭘 입력할거냐, 라고 뜬다! 이때 bash를 입력한다.

 

명령어 bash

/bin/bash를 입력하든,,, bash를 입력하든..

아무튼 입력하면 level2의 bash shell이 실행된다.

 

명령어 my-pass

는 ftz에서 만든 패스워트 보기다.

 

 

암튼 ftz1번 완료!


참고

https://mamu2830.blogspot.com/2019/10/setuid-setgid-sticky-bit.html

 

setuid setgid 매우 자세하게!

setuid, setgid, stickybit 대해 매우 자세하게 설명한 포스트입니다!

mamu2830.blogspot.com

https://leeggoggal.tistory.com/10

 

FTZ level1 풀이

FTZ level1 풀이 level1 문제에 접속하자. level1의 ID,PW는 level1/level1 ls -l 명령어로 level1 홈디렉터리의 내용을 확인했더니 1개의 파일과 2개의 폴더가 존재한다는 것을 알았다. 그중에 hint 파일은 파..

leeggoggal.tistory.com

 

'워게임 > FTZ' 카테고리의 다른 글

FTZ - level6  (0) 2021.07.06
FTZ - level5  (0) 2021.07.04
FTZ - level4  (0) 2021.07.04
FTZ - level3  (0) 2021.07.04
FTZ - level2  (0) 2021.07.03

댓글