김승현

[OverTheWire] Bandit Level 19 → Level 20 본문

Linux/OverTheWire : Bandit

[OverTheWire] Bandit Level 19 → Level 20

kshind 2023. 2. 19. 14:47

문제

다음 단계로 가기 위해서 우리는 홈 디렉토리에 있는 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를 볼 수 있다.

 

 


다음 문제

https://kshind.tistory.com/22

 

[OverTheWire] Bandit Level 20 → Level 21

문제 홈디렉토리에 setuid binary가 있는데 이건 커맨드라인 인자로 특정시킨 로컬호스트의 포트로 연결하게 해주는 그런 파일이라고 한다. 그리고 bandit20의 password와 비교해서 일치한다면 다음 단

kshind.tistory.com