워게임/Bandit (Linux Wargame)

[OverTheWire:Bandit] Level 8 → Level 9

crypsec 2023. 11. 17. 22:02
반응형

2023.11.16 - [워게임/Bandit (Linux 초보자들을 위한 워게임)] - [OverTheWire:Bandit] Level 7 → Level 8

Bandit Level 8

컴퓨터의 사용자 이름( 계정명 ): bandit8
호스트(접속해야 할 주소):bandit.labs.overthewire.org
포트 번호: 2220
비밀번호: TESKZC0XvTetK0S9xNwm25STk5iWrBvP (2023.11 기준)

 

bandit8 계정으로 서버에 접속하겠습니다.

PS> ssh bandit8@bandit.labs.overthewire.org -p 2220

 


문제 및 해설

 

다음 단계로 가기 위한 비밀번호는 data.txt 파일에 저장되어 있으며 수많은 내용들 중 유일하게 하나만 발생(존재)하는 문장이라고 합니다.

 

$ cat data.txt

cat data.txt

여기서 어떻게 중복되는 문장들을 거를 수 있을까요? 

 

먼저 리눅스 명령어인 sortuniq에 대해 설명하겠습니다. 각각 명령어는 데이터를 정렬하고 중복된 값을 제거하는 데 사용됩니다.

 

sort

  • sort 명령어는 텍스트 파일이나 스트림의 데이터를 정렬하는 데 사용됩니다.
  • 기본적으로는 각 행을 알파벳 순으로 정렬합니다.
  • 사용 예시:
    $ sort file.txt

uniq

  • uniq 명령어는 중복된 행을 찾아내고 제거하는 데 사용됩니다.
  • 주로 정렬된 데이터에 사용하여 중복된 값을 찾습니다.
  • 사용 예시:
    $ uniq file.txt
     

sort + uniq

  • sortuniq를 함께 사용하여 중복된 값을 제거하고 정렬된 결과를 얻을 수 있습니다.
  • 사용 예시
    $ sort file.txt | uniq
    # 이 명령은 file.txt의 내용을 정렬하고, 그 후에 uniq로 중복된 행을 제거합니다
     
  • sort와 uniq의 옵션
    • sortuniq 명령어는 각각 다양한 옵션을 가지고 있어 다양한 상황에 맞게 조합하여 사용할 수 있습니다. 예를 들어, sort-n 옵션을 사용하여 숫자를 기준으로 정렬하고, uniq-c 옵션을 사용하여 각 행의 등장 횟수를 함께 출력할 수 있습니다.

따라서, sortuniq 명령어를 조합하여 사용하면 중복을 제거하고 정렬된 결과를 얻을 수 있습니다.

 

이제 이를 잘 조합해서 본인만의 정답을 낼 수 있습니다.

 

제가 낸 정답을 찾기 위한 명령어는 다음과 같습니다.

$ sort data.txt | uniq -c

flag

 

위 결과처럼 모든 문장들이 10번씩 나오는데 반해 EN632PlfYiZbn3PhVK3XOGSlNInNE00t 는 1번만 나옵니다. 따라서 이게 우리가 찾는 비밀번호임을 알 수 있습니다.

 

Level 9 접속정보

컴퓨터의 사용자 이름( 계정명 ): bandit9
호스트(접속해야 할 주소):bandit.labs.overthewire.org
포트 번호: 2220
비밀번호: EN632PlfYiZbn3PhVK3XOGSlNInNE00t (2023.11 기준)

 

bandit Level 9로 가기 위한 비밀번호:  EN632PlfYiZbn3PhVK3XOGSlNInNE00t

 

마지막으로 exit 명령어를 입력하여 서버에서 bandit8 계정을 로그아웃 하겠습니다.

반응형