bandit Write-up

Bandit Level 6 ~ 10

부산영롱 2023. 12. 1. 13:06

Bandit Level 6 → Level 7

 

이번에는 서버 안에서 user bandit7과 group bandit6가 소유하고 크기가 33 bytes인 것을 찾아야한다.

user, group, size 옵션을 통해 검색한 결과 권한이슈로 인한 에러메시지 사이로 파일 하나를 찾을 수 있다.

이번에는 금방 눈에 들어와서 찾을 수 있었지만 에러메시지가 너무 많아서 정상적으로 검색된 파일을 찾기가 힘들다면?

에러메시지를 제외하고 깔끔하게 찾을 순 없을까?

 

위와 같이 '2> /dev/null' 문구를 추가하니 에러메시지가 사라지고 우리가 찾고자 하는 파일만 확인할 수 있었다.

 

이게 무슨 의미인지 알아보자.

 

표준 스트림

  • 표준 입력 : stdin, 파일 디스크립터 0
  • 표준 출력 : stdout, 파일 디스크립터 1
  • 표준 오류 : stderr, 파일 디스크립터 2

리다이렉션

  • < / << : 입력 방향 재지정
  • > / >> : 출력 방향 재지정
  • > : 덮어쓰기
  • >> : 추가

따라서, '2> /dev/null' 는 표준오류(Permission denied 같은..)를 null로 보내 표준출력(정상적인 결과)만 보여준다.


Bandit Level 7 → Level 8

다음 패스워드는 data.txt 파일 안에 'millionth'라는 단어 옆에 적혀있다고 한다.

 

파일을 읽으려 'cat data.txt' 를 입력했더니 엄청나게 많은 데이터가 나와서 가공이 필요하다.

grep을 사용하여 'millionth' 단어가 있는 Line을 출력했다. 이번껀 너무 쉬워서 당황스러웠다ㅎ


Bandit Level 8 → Level 9

다음 패스워드는 data.txt 파일 안에 있고 딱 한번만 나오는 유일한 line이라고 한다.

중복되는 라인들을 제외하는 명령어가 필요한 듯 하다.

 

이 레벨을 풀기 위한 명령어 목록에서 단연 uniq 명령어가 눈에 띈다.

'uniq data.txt'를 입력해봤지만 엄청나게 많은 결과들이 나왔다.

 

명령어가 어떻게 동작하는지 알아보기 위해 구글링을 해본 결과 uniq 명령어는 sort 명령어와 단짝이었다.

먼저 data.txt를 sort로 정렬시킨 뒤 uniq 명령어를 사용하여 중복라인을 제외하고 출력하면 된다.

uniq 명령어에서 중복라인을 제외하고 출력하는 명령어는 -u 이다.


Bandit Level 9 → Level 10

이전과 같이 data.txt 파일 안에 패스워드가 있고 사람이 읽을 수 있는 strings 중 하나이며, 몇 개의 '=' 문자로 시작된다고 한다.

 

사람이 읽을 수 있는 strings만 출력하는 명령어 'strings'는 bandit4에서 확인했었다. 또 grep을 이용하여 '=' 문자가 포함된 Line을 찾으면 된다.


Bandit Level 10 → Level 11

이번 패스워드는 base64로 인코딩 된 데이터가 포함된 data.txt 파일 안에 있다고 한다.

이번 것도 간단하다. base64 명령어로 디코딩하면 된다. 디코딩 옵션은 -d 이다.

 

'bandit Write-up' 카테고리의 다른 글

Bandit Level 26 ~ 30  (0) 2023.12.10
Bandit Level 21 ~ 25  (0) 2023.12.05
Bandit Level 16 ~ 20  (1) 2023.12.05
Bandit Level 11 ~ 15  (1) 2023.12.04
Bandit Level 0 ~ 5  (1) 2023.11.27