김승현
[OverTheWire] Bandit Level 19 → Level 20 본문
문제
다음 단계로 가기 위해서 우리는 홈 디렉토리에 있는 setuid binary를 사용해야 한다고 한다.
인자 없이 실행해서 어떻게 사용하는지 알아내라고 한다. password는 저번처럼 /etc/bandit_pass있다고 한다.
이번에는 Level20을 가기 위한 password니까 /etc/bandit_pass/bandit20에 있을 것 같다.
풀이
ls -al을 해보면 평소에 보던 것과 완전히 다른 느낌의 bandit20-do 파일을 볼 수 있다.
file 명령어를 사용해보니까 setuid ELF 파일이라고 한다.
ELF 파일 : Excutable Linkable Format의 줄임말로 리눅스 기반 시스템의 기본 바이너리 형식이다. 이름대로 실행가능하고 링킹이 가능한 파일이다. |
문제에서 setuid binary 파일을 인자 없이 실행해 보라고 했는데 저 파일을 한 번 실행해 봤다.
실행시키면 run a command as another user.이라고 뜨고 사용 예시를 보여준다.
해석하면 다른 사용자로서 커맨드를 실행하라는 말이고 예시처럼 커맨드를 사용해보자.
위에는 ELF 파일을 실행해서 한 id 명령어, 아래는 그냥 사용한 id명령어인데
ELF 파일 실행 후 사용한 id의 출력을 보면 euid라고 붙으면서 bandit20의 권한이 들어와 있는 것을 볼 수 있다.
(euid는 일시적으로 파일 소유자의 권한을 얻게 되는 것이다.)
그렇게 같은 방식으로 ELF를 이용하면 /etc/bandit_pass에 있는 다음 단계의 password를 볼 수 있다.
다음 문제
'Linux > OverTheWire : Bandit' 카테고리의 다른 글
[OverTheWire] Bandit Level 21 → Level 22 (0) | 2023.02.19 |
---|---|
[OverTheWire] Bandit Level 20 → Level 21 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 18 → Level 19 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 17 → Level 18 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 16 → Level 17 (0) | 2023.02.19 |