문제

Bandit Level 20->21


풀이 및 정답

한쪽에서 특정 포트를 통해 로컬하게 연결하고 level 20 패스워드를 전송하면 다음 패스워드를 돌려받을 수 있다고 한다.

문제에서 나와있는 것처럼 연결과 관련된 명령어를 확인해볼 수 있다.

./suconnect <portnumber>

그렇다면 다음의 과정으로 문제를 해결해볼 수 있다. 당연히 suconnect가 실행하고 level 20 패스워드를 제출 받으면 21 패스워드를 반환할 것임을 깨달아야 한다.

1) 하나의 포트를 열어둘 a 세션 생성 및 동작 2) b 세션에서 suconnect를 사용해 a 세션 포트로 연결 3) a 세션에서 b 세션으로 level 20 패스워드 제출

nc -lp <portnumber>

위의 명령어를 통해서 일시적으로 포트를 만들어낼 수 있다. 물론 local 하게만 동작한다.


./suconnect 12342를 동작하기 위해 위에서 동작한 nc 명령어를 빠져나오고 실행하면 위처럼 연결 불가 판정을 받는다, 당연히.

1. 단순하게 cmd 창 2개로 해결

다음처럼 오른쪽에 cmd 창을 하나 더 띄우고 nc -lp 12342로 포트를 하나 열고
왼쪽에서 ./suconnect 12342를 통해서 연결을 테스트 해본다.

오른쪽에서 테스트 메세지를 전송하게 되면 suconnect가 비밀번호를 전송한줄 알고 답을 보낸다.

그렇기 때문에 오른쪽 nc -lp 12342가 먼저 동작하게 만들고 왼쪽 cmd 창에서 ./suconnect 12342를 동작한 뒤에 다시 오른쪽 cmd 창에서 이전 패스워드를 전송해 주어야한다.

2. tmux 세션 창을 만들어 해결

다음 명령들은 tmux 명령어의 기본이다. 순서대로
새로운 세션 생성 만들기
기존 세션 종료 시키기
세션 리스트 보기
기존 세션에 진입하기
추가로 Ctrl+b+d는 세션을 중단시키지 않고 빠져나올때 사용하면 된다.

tmux new-session -t <session name>
tmux kill-session -t <session name>
tmux ls
tmux a -t <session name>

*필자가 어떤 세션에 있는지 이미지 좌하단 이름을 통해 확인 가능

lp-12342 이름으로 된 세션을 하나 만들어서 진입해 포트를 열어준다.

Ctrl+b+d를 입력해 세션에서 나온 뒤 suco-12342 세션을 만들어 진입하고 12342 포트로 연결한다.


다시 Ctrl+b+d를 입력해 빠져나오고, lp-12342 세션에 다시 들어와 비밀번호를 전송한다.

모두 완료했으면 세션을 꼭 종료시켜 주자.

passwd : EeoULMCra2q0dSkYj561DX7s1CpBuOBt

다음!