Bandit

리눅스 nc 데이터 전송 명령 | Bandit Level 14 -> Level 15

developerYoung 2023. 9. 2. 00:07
반응형

문제

Level 14. The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost.

 

리눅스 nc 명령어

nc(NetCat) 설명

nc는 NetCat의 약자로 TCP 또는 UDP 프로토콜을 사용하는 네트워크 환경에서 데이터를 읽/쓰기를 하는데 사용되는 프로그램이다.

추가적으로 특정 서버의 포트 오픈을 확인하는데에도 사용되고, 방화벽 확인을 할 수도 있다.

 하지만 포트를 특정지어 연결을 확인해야하니 확실한 포트랑 연결할 때 사용할 것 같다.

nc 사용법

nc [옵션] [IP] [PORT]

nc  옵션 종류

  • default : tcp로 IP / PORT 로 연결
  • -u : udp에 연결
  • -l : LISTEN 모드
  • -p : 소스 포트 지정
  • -z :  포트 스캔만 진행

예시

  • nc localhost 3000 (localhost에 3000 포트로 접속 후 메세지 입) 
  • nc -zv bandit.labs.overthewire.org 2220 (해당 host, port에 연결 확인)
  •  
반응형

풀이

이 문제는 nc 명령어를 통해 단순 데이터 전송을 하는 방법을 안다면 매우 쉽게 끝나는 문제이다.

하지만 이 방법을 몰랐어서,,, 오래 걸렸다는게 정말 함정이다. (확실히 리눅스에서 네트워크 간의 무언가를 하는 명령어를 아직 잘 모르는 만큼 점점 알아가는 재미가 있을 예정이다!)

 

자 이제 풀기 위해선 어떤 과정을 거쳐야하는지 생각해보자!

  1. 이번 단계의 패스워드를 제출해야한다?!
  2. localhost 30000포트와 통신하여 패스워드를 전송해라!
  3. 받은 데이터가 다음 단계의 패스워드이다.

위의 순서를 보고 문제를 풀어보세요!

 

이번엔 위에서 배운 nc 명령어를 통해 데이터 통신을 할 수 있는 포트에 연결해보도록 하자!

nc -vz localhost 30000

nc localhost 30000

 

위의 명령어는 단순히 localhost 의 30000 포트가 열려있는지 확인해봤다.

 

succeeded! 라는 결과값을 보니 제대로 열려있는 것으로 보이니 이제 아래 명령어를 통해 통신을 시도해보자!

아래처럼 이번 단계의 패스워드를 보냈더니 Correct! 라는 답과 함께 다음 패스워드가 나왔다면, level 15로 바로 올라가보도록 하자!

 


더보기를 눌러 비밀번호를 확인하세요!

더보기

비밀번호는 다음과 같다.

Level14. jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt

 

반응형