위의 그림처럼 PuTTY 프로그램에서 bandit20으로 로그인한다는 것은
bandit.labs.overthewire.org라는 서버의 bandit20이라는 계정으로 원격접속을 시도한다는 의미이다.

위처럼 로그인에 성공하면, 나는 이제 터미널창에 명령어를 입력하여 bandit20계정을 컨트롤할 수 있게 된다.

 

문제를 보면, bandit20 계정에서 localhost(현재 내 앞에 놓인 컴퓨터)에 bandit20의 비밀번호를 전송해야 해줘야 한다.

 

그래서 위 명령을 통해bandit20계정의 9999번 port를 리스닝(다른 클라이언트에서 접속가능한 상태)로 만들어준다.
이제 2번째 줄에 어떤 메세지를 입력하면, 연결된 클라이언트로 메세지가 전송될 것이다.

 

하지만 현재는 bandit20의 9999번 포트를 열어주기만 했을 뿐, localhost가 connect된 상태는 아니다.
localhost를 bandit20의 9999번 포트로 연결해주기 위해서는 suconnect 프로그램을 이용해야 한다.
아래에 나와있는 것처럼 ./suconnect <portnumber>를 입력해주면, 입력한 portnumber로 localhost와 연결할 수 있기 때문이다.

 

하지만 nc -l -p 9999라는 명령어를 입력한 상태에서는, 그 다음줄에 메세지를 입력할 수 있을 뿐, ./suconnect 9999라는 명령어를 입력해줄 수가 없다. 따라서 우리는 bandit20 계정의 터미널을 하나 더 실행시켜서, 원래 터미널에서는 9999번 포트를 열어두고, 새로 연 터미널에서는 suconnect를 사용하여 bandit20과 localhost를 연결시켜주는 일을 해야 한다.

 

맨 윗줄에서 오른쪽 키를 누르면 여러가지 메뉴가 나오는데, 그 중 Duplicate session을 누르면 터미널창이 하나 더 생성된다. 새로 만들어진 터미널에서도 bandit20으로 로그인해준다.

 

이제 그림처럼 먼저 위의 터미널에서 nc -l -p 9999를 통해 9999번포트를 열어주고,
이후 아래 터미널에서 ./suconnect 9999를 입력하면, bandit20을 localhost와 연결된 상태를 만들어 줄 수 있다.

 

 그리고 클라이언트와 소통이 가능한 첫번째 터미널에다 bandit20의 비밀번호를 입력하고 enter를 치면

 

다음과 같이 bandit21의 비밀번호가 전송되는 것을 확인할 수 있다.

 

어떤 방식을 통해 bandit21의 비밀번호가 출력되는 것인지는 아직 내 수준에서는 이해되지 않는다.
다만 ①터미널창이 왜 두 개 필요한 것인지?  ②nc, suconnect를 이용해 어떤 주체들끼리 네트워킹을 하고 있는 것인지, 이 글이 나같은 초보자들에게 도움이 되길 바란다.

반응형

+ Recent posts