김승현
[OverTheWire] Bandit Level 20 → Level 21 본문
문제
홈디렉토리에 setuid binary가 있는데 이건 커맨드라인 인자로 특정시킨 로컬호스트의 포트로 연결하게 해주는 그런 파일이라고 한다. 그리고 bandit20의 password와 비교해서 일치한다면 다음 단계로 가능 password를 전송해준다고 한다.
풀이
일단 ls -al 해보면 suconnect라는 ELF 파일이 있다.
파일을 실행시키면 사용법과 거기에 대한 설명이 뜬다.
이 프로그램은 TCP를 이용해서 localhost의 주어진 포트로 접속을 한다고 하고 또 만약 다른 쪽에서( port를 open한 쪽 ) bandit20의 password를 보내면 bandit21의 password를 전송한다고 한다.
이번 문제를 풀기 위해서 bandit20에 두 개를 동시에 접속시켜 풀어야 할 것 같다.
왼쪽은 port를 open하는 쪽 오른쪽은 접속하는 쪽
nc -lp 1357 ./suconnect 1357
포트를 열기 위해서 -lp(포트 오픈 및 지정) 옵션을 사용함 사용법대로 suconnect 후 접속할 포트를 입력함
suconnect 사용법 중 포트를 open한 쪽에서 bandit20의 password를 입력하라고 했기 때문에 왼쪽에 password를 입력함
그러자 연결한 쪽에서 password를 읽고 bandit20의 password와 일치한다고 뜨고 21의 password를 전송한 걸 볼 수 있다.
다음 문제
'Linux > OverTheWire : Bandit' 카테고리의 다른 글
[OverTheWire] Bandit Level 22 → Level 23 (0) | 2023.02.20 |
---|---|
[OverTheWire] Bandit Level 21 → Level 22 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 19 → Level 20 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 18 → Level 19 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 17 → Level 18 (0) | 2023.02.19 |