OverTheWire_Wargame Bandit

[ level20 -> level21 ]




이번 문제 또한 레벨19와 동일하게 setuid가 걸려있어, bandit21의 권한으로 무언가를 실행 시킬 수 있습니다. 문제를 읽어보면 setuid가 걸려있는 바이너리를 이용하여 네트워크 데몬을 연결하고, level20의 패스워드를 넣으면 level21로 넘어갈 수 있는 패스워드를 던져준다고 합니다.

직접 한번 해보도록 합시다!



홈 디렉토리에 suconnect라는 바이너리가 하나 존재합니다. setuid가 level21 권한으로 걸려있고, 실행 시켜 보니 localhost에 열려있는 다른 포트를 넣어주고, 다른 쪽에서 level20의 패스워드를 넣으라는 문구가 나타났습니다.

그럼 새로운 콘솔을 띄워서 nc로 포트를 열어주면 되겠군요.



nc에 -l 옵션으로 listening 모드로 실행시키고, 포트를 50000으로 잡아주었습니다.

이 쪽이 listening 하는 입장이므로 서버라고 지칭하겠습니다.



자, 다시 다른 터미널로 넘어와서 suconnect 바이너리를 실행시켜줍니다.

우리는 서버 측에서 50000이라는 포트를 열어주었기에 suconnect 바이너리의 인자값에도 50000을 넣어주겠습니다.


다시 서버로 돌아와서, level20의 패스워드를 넣어주니 level21로 통하는 패스워드를 뱉어주었습니다!


OverTheWire_Wargame Bandit

[ level19 -> level20 ]




이번 레벨의 목표는 setuid가 걸려있는 바이너리를 이용하여 /etc/bandit_pass 안에 있는 파일을 읽어 key 값을 찾아내는 것입니다.

한 번 살펴보도록 하죠.



bandit20-do 바이너리를 살펴보니 group 권한에 setuid 비트가 있는 것을 확인 할 수 있었습니다.

그렇다면 bandit20-do 바이너리를 실행 할 때는 bandit20의 계정으로 실행이 된다는 것이죠.

실행을 시켜보니 "./bandit20-do id" 와 같은 형식으로 사용 하라고 하네요.

바로 cat 명령어를 이용하여 bandit20의 key값을 출력 해 주었습니다.


+ Recent posts