보안/Bandit 워게임

OverTheWire - Bandit : Level 6 → Level 7

Security Engineer 2023. 3. 31. 21:00

OverTheWire - Bandit

강의목차: Level 6 → Level 7(find)

 

Bandit 웹페이지

https://overthewire.org/wargames/bandit/

 

 

 

1. Bandit Level 6 → 7

Level Goal

 

The password for the next level is stored somewhere on the server and has all of the following properties:

  • owned by user bandit7
  • owned by group bandit6
  • 33 bytes in size

Commands you may need to solve this level

ls , cd , cat , file , du , find , grep

 

다음 레벨 패스워드는 서버 어딘가에 저장되어 있으며, 아래 속성들을 가지고 있다.

- 소유자 bandit7

- 소유그룹 bandit6

- 33 bytes 크기

 

 

Level 6 접속

 

$ ssh -p 2220 bandit6@bandit.labs.overthewire.org

패스워드: P4L4vucdmLnm8I7Vl7jG1ApGSfjYKqJU

 

$ ls -al

Level 5 와 다르게 inhere 라는 디렉터리는 보이지 않는다.

이전 레벨보다 탐색 조건이 더 까다로워졌다.

단순히 파일 크기만으로는 플래그를 찾을 수 없으며, 이전 보다 범위도 더 넓어졌다.

새로운 옵션을 활용하여 찾아야 한다.

 

< find 옵션 >

 

-user 유저이름
해당 유저 소유의 파일들을 찾는다.

-group 그룹이름
해당 그룹 권한의 파일들을 찾는다.

-name 파일이름
파일이름에 검색하고자 하는 문자열이 들어있는 파일을 찾는다.

-perm 권한
해당 권한을 가진 파일을 출력한다. 예를 들어, -perm 644로 입력하면 rw-r--r-- 권한을 가진 파일을 찾는다.
-perm +644로 입력하면 6 4 4 중 하나라도 만족하는 파일을 찾는다.
-perm -644로 입력하면 해당 권한 이상의 파일들을 모두 찾는다.

-size 크기
해당 크기와 일치하는 파일들을 찾는다. 
이 때, 기본 단위는 블록이며, 찾고자 하는 파일 크기의 단위를 바이트로 지정하고 싶다면 뒤에 c를 붙이면 된다.
지정한 크기보다 큰 파일들을 찾고 싶다면 +크기, 작은 파일들을 찾고 싶다면 -크기로 입력하면 된다.

 

서버 어딘가에 저장되어 있기 때문에 현재 디렉토리( ./ ) 아래에 저장되어 있지 않을수도 있다. 

이럴 땐 경로를 최상위 디렉토리 ( / )로 입력하면 모든 파일에 대해 검색하게 된다.

/ : 루트 밑에 있는 모든 파일과 폴더를 한번씩 건드려서 조건에 맞는 파일을 찾는다.

 

$ find / -user bandit7 -group bandit6 -size 33c

→ 소유자 bandit7 , 소유그룹 badit6, 파일크기 33bytes 인 파일 찾기

Permission denied 라는 문구와 함께 거절되었다.

권한이나 임시파일 관련하여 에러 메시지가 나와 원하는 파일을 찾기가 어렵다.

이에 불필요한 메시지(에러메시지)는 리다이렉션으로 처리한다. ( /dev/null → 리눅스 휴지통 )

 

/dev/null 옵션

0: 표준 입력(키보드로 부터 받는 데이터 값)

1: 기본값(표준출력: 모니터에 나오는 데이터 값)

2: 표준 에러(에러메시지)

 

꺾쇠 ( > ) 를 사용하여 보낼 위치 선정

리눅스 커맨드에서 꺾쇠( > )는 좌측 명령의 결과를 우측 파일명에 저장하게 한다.

이 때 꺾쇠 하나는 파일을 새로 생성하고 꺾쇠 둘은 파일에 덧붙인다.

 

$ find / -user bandit7 -group bandit6 -size 33c 2> /dev/null

→ 소유자 bandit7 , 소유그룹 badit6, 파일크기 33bytes 인 파일 찾기, 에러메시지는 /dev/null 로 보내기

실제 패스워드가 저장된 위치로 추정되는

/var/lib/dpkg/info/bandit7.password 가 확인된다.

 

$ cat /var/lib/dpkg/info/bandit7.password

다음 레벨 패스워드: z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S

 

$ exit ( ssh 접속 상태에서 홈으로 나가기 )

 

 

 

Level 7 로그인 시도

 

$ ssh -p 2220 bandit7@bandit.labs.overthewire.org

Level 7 패스워드: z7WtoNQU2XfjmMtWA8u5rN4vzqu4v99S

 

$ whoami

$ id

입력하여 현재 로그인한 계정 확인

 

 

 

 


취미로 해킹1 강의 : https://www.inflearn.com/course/linux-3