티스토리 뷰

수업 노트/bandit

[lesson19] bandit level 19 → 20

오리지날초이 2021. 9. 28. 19:44

id : bandit19

password : awhqfNnAbc1naukrpqDYcF95h7HoMTrC

(2023.05 기준)

 

다음 단계로의 접속을 얻기 위해서는 홈디렉토리에서 setuid binary 를 사용해야만 합니다.

 

홈디렉토리에 존재하는 bandit20-do 파일을 ./bandit20-do 식으로 인자 없이 실행해보세요.

이번 단계의 패스워드는 setuid binary 를 사용한 다음에 일반적인 장소(/etc/bandit_pass) 에서 찾을 수 있습니다.

 

setuid 개념과 풀이과정을 같이 살펴봅시다.

더보기

 

우선 bandit19 의 홈디렉토리를 살펴봅시다. 

 

bandit20-do 는 실행가능한 binary 파일입니다.

우리는 bandit19 이므로 소유자 그룹 권한에 의해서 해당 파일을 실행시킬 수 있습니다.

 

실행전에 /etc/bandit_pass/bandit20 부터 살펴보면,

역시 bandit20 권한으로 정확히 관리되고 있어서 bandit19 로는 읽을 수가 없습니다.

 

bandit20-do 를 실행해보니 간단한 사용법이 나옵니다.

다른 유저로서 커맨드를 실행한다는 설명과 예시가 있네요.

 

사용 예시를 따라해볼까요? id 라는 명령어를 실행한 결과가 나오는군요

bandit20-do 는 명령어를 인자로 받아서 그대로 실행해주는 기능을 수행하는 것을 알 수 있습니다.

 

id 명령어를 그냥 한번 실행해보겠습니다. 

 

bandit20-do 를 통해 id 명령어를 실행시켰을때는 euid 라는 항목이 추가로 보이네요.

euid 는 effective user id 의 약자로 실제 작동되는 user id 라는 의미입니다.

 

이게 문제에서 요구하는 setuid 와 같은 개념인데, 

setuid 에 대해 간단히 설명하면 해당 파일의 소유자 권한을 빌려서 실행하는 것입니다.

 

다시 한번 bandit20- do 를 살펴보면

bandit20-do 파일의 권한은 특이하게 -rwsr-x--- 로 표기되어 있습니다.

 

첫글자 - 는 파일을 의미하고,

소유자 권한세트는 rws 이네요.

소유자 그룹 권한세트는 r-x,

기타사용자 권한세트는 --- 입니다.

 

소유자 권한이 rwx 가 아니라 rws 로 표기되는데

이 s 가 setuid 를 나타내는 특수한 bit 입니다.

 

해당파일은 실행권한이 부여되어 있지만

누군가가 실행하면 그 순간은 해당파일 소유주(bandit20) 의 권한으로 실행이 되는 겁니다.

 

bandit20-do 의 그룹권한은 r-x 이고,

user bandit19 는 group bandit19 에 속해있어서 실행이 가능합니다.

(그래서 기본 사용법 안내가 나왔죠)

 

다만, bandit19 가 bandit20-do 파일을 실행했을때는

원소유주 bandit20 의 권한을 부여받아서 실행한 겁니다.

 

그래서 위에서 bandit20-do 를 통해 id 명령을 실행했을때 euid=11020(bandit20) 가 추가로 나타난 것입니다.

헤깔리는 분들은 whoami 로 실행하면 정확한 결과를 비교할 수 있습니다.

 

이제 bandit20-do 를 이용하면 setuid 로 bandit20 유저의 권한으로 작업을 할 수 있다는 것을 알았으므로

기존에 막혀있던 bandit20 패스워드 파일을 여는 것은 손쉬운 일입니다.

 

bandit20 패스워드  GbKksEFF4yrVs6il55v6gwY5aVje5f0j 를 획득했습니다.

 

setuid 외에도 소유자그룹 버전의 특수비트인 setgid,

디렉토리 권한관리를 위한 sticky bit 도 있습니다.

 

이 부분은 아래 링크를 참조하면 도움이 될 것 같습니다.

https://websecurity.tistory.com/14

 

linux 특수권한

이번 포스트에서는 특수권한에 대해서 포스트 해보도록 하겠습니다. 기존 권한은 user, group, other 이렇게 세가지로 나뉘어져 있죠? 이렇게 나뉜 권한 중 특정한 문자가 들어가면 특수한 권한이 만

websecurity.tistory.com

 

https://blogger.pe.kr/384

 

Sticky bit 란 무엇인가? (Unix 와 Linux 운영체제)

유닉스와 리눅스에서 파일 퍼미션에 대한 공부를 하다보면 나오는 특수한 파일 퍼미션이 두개가 있다. 하나는 앞의 find 명령어에 대한 고찰(http://blogger.pe.kr/338)에서 조금 살펴본 setuid/setgid 이고

blogger.pe.kr

 

728x90
반응형

'수업 노트 > bandit' 카테고리의 다른 글

[lesson21] bandit level 21 → 22  (1) 2023.11.26
[lesson20] bandit level 20 → 21  (0) 2022.02.04
[lesson18] bandit level 18 → 19  (0) 2021.09.28
[lesson17] bandit level 17 → 18  (0) 2021.09.28
[lesson16] bandit level 16 → 17  (0) 2021.09.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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 29 30
글 보관함