Post

[wargame] overthewire bandit 20 -> 21

Bandit Level 20 -> Level 21

user_id : bandit20
password : 0qXahG8ZjOVMN9Ghs7iOWsCfZyXOUbYO

이제 드디어 앞자리가 2로 바뀌었다

목표

image

홈 디렉토리에는 명령줄 인수로 지정한 포트의 로컬 호스트에 연결하는 setuid 바이너리가 있습니다. 그런 다음 연결에서 텍스트 한 줄을 읽어 이전 레벨(bandit20)의 비밀번호와 비교합니다. 비밀번호가 정확하면 다음 레벨(bandit21)의 비밀번호를 전송합니다.

참고: 네트워크 데몬에 연결하여 네트워크 데몬이 생각하는 대로 작동하는지 확인해 보십시오

그러니까 setuid binary가 설정되어있고 네트워크 연결한 뒤 거기에 맞는 비밀번호를 입력하면 다음 레벨의 비밀번호를 준다

그런데 참고 부분이 있는 것을 보아하니 또 지금까지 해오던 것과는 다른 느낌인가보다

해결법

image

이번에도 setuid설정이 된 파일이 보인다

일단 실행시켜보면

image

이 프로그램은 TCP를 사용하여 로컬 호스트의 지정된 포트에 연결합니다. 만약 다른 쪽에서 올바른 암호를 받으면 다음 암호는 다시 전송됩니다.

음… 그니까 내가 bandit20으로 두개의 터미널로 연결해서 서로 통신을 하게 해야한다는 의미인 거겠지?

image

termius에서는 터미널 나누기를 사용할 수 있다

image

이제 한쪽에서는 로컬에 포트 7777(원하는 대로)로 통신을 열어보자

image

아래 화면과 같이 로컬호스트에 연결되었다고 뜨면 이제 bandit20의 비밀번호를 넘겨주면 된다

image

그러면 순식간에 비밀번호를 발송해준다!

비밀번호 : EeoULMCra2q0dSkYj561DX7s1CpBuOBt

그저 막연한 호기심으로 한번 파일을 읽어봤다

image

음.. 그만 알아보도록 하자

This post is licensed under CC BY 4.0 by the author.