Bandit level19

반응형


OverTheWire 문제풀이 - Bandit

* Bandit 는 리눅스 관련 문제입니다.

* 리눅스 명령어를 연습하기에 아주 좋습니다.

* 개인적인 문제풀이로 해답을 보시기 전에 직접 풀어보시기를 권해드립니다.


Bandit level19

Level Goal

To gain access to the next level, you should use the setuid binary in the homedirectory. Execute it without arguments to find out how to use it. The password for this level can be found in the usual place (/etc/bandit_pass), after you have used the setuid binary.

Helpful Reading Material

setuid on Wikipedia

레벨 목표

다음 단계에 액세스하려면 homedirectory에서 setuid 바이너리를 사용해야합니다. 그것을 사용하는 방법을 찾으려면 인수없이 실행하십시오. 이 레벨의 암호는 setuid 바이너리를 사용한 후 보통 장소 (/ etc / bandit_pass)에서 찾을 수 있습니다.

유용한 읽기 자료

setuid on Wikipedia


[문제 풀이]

이번 문제는 setuid를 활용할 줄 아는지를 묻는 문제이다. setuid란 실행할 때는 일시적으로 소유자의 권한으로 실행할 수 있는 특수권한이다. ls -l 또는 ll 명령어로 home 디렉터리를 살펴보면 다음과 같이 bandit20권한의 setuid가 걸린 파일을 찾을 수 있다.

리눅스 특수권한 [링크]


그런데 평범한파일이 아니라 바이너리 파일이다. 바이너리 파일을 실행하는 방법은 다음과 같다.

#> ./[파일명]

setuid가 걸려있는 파일을 실행해보니 다음과 같은 오류메세지가 뜬다.


Example을 보니 인자를 하나 더 넘겨주어야 하나보다. 그렇다면 바이너리 파일을 실행할때는 setuid로 인해 bandit20 레벨의 권한을 일시적으로 얻을것이다. 이 때 넘겨주는 인자로 명령어를 넣을 수 있을지 생각해 볼 수 있다. 다음과 같이 패스워드가 담겨있는 파일을 참조해본다.


이렇게 setuid 파일을 이용해서 다음 레벨의 패스워드를 획득할 수 있다.

next level password : GbKksEFF4yrVs6il55v6gwY5aVje5f0j

반응형

'War Game > bandit' 카테고리의 다른 글

Bandit level21  (0) 2017.04.10
Bandit level20  (0) 2017.04.07
Bandit level18  (0) 2017.04.06
Bandit level17  (0) 2017.04.06
Bandit level16  (0) 2017.04.05
TAGS.

Comments