Linux

[LINUX] Bandit : Over the wire Level 6 ~ Level 10

e_on_ 2022. 5. 22. 22:18
728x90
반응형

OverTheWire: Level Goal: Bandit Level 6 → Level 7

 

 

 

[ Level 6 -> Level 7 ]

1. 소유자는 bandit7

2. 소유 그룹은 bandit6

3. 크기는 33 bytes

 

 

ls -al명령어를 사용하여 홈 디렉터리를 열어보았지만 원하는 정보를 얻지 못했다.

 

 

user bandit 7, group bandit 6, size 33c 조건을 동시에 부합하는 파일을 찾고자 했다.

 

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

: 이 결과 permission denied가 반복되어 2> /dev/null명령어를 추가해 프롬프트에 입력하여 실행시켰다.

 

명령어 find에서

- usesr 옵션 : 파일의 소유자를 찾는 역할

- group 옵션 : 파일이 속한 그룹을 찾는 역할

- size 옵션 : 파일의 사이즈를 찾는 역할

Permission denied는 표준 에러(2번 파일 디스크립터)이다.

이를 없애기 위해 사용하는 것이 Redirection이다. 이는 입출력의 방향을 지정할 때 사용된다.

/dev/null 은 리눅스의 쓰레기통이다.

따라서 2 > /dev/null 은 표준 에러를 쓰레기통으로 보내 출력하지 않는다.

파일 디스크립터는 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값이다.

0 : 표준 입력(Standard input)

1 : 표준 출력(Standard output)

2 : 표준 에러(Standard error)

 

cat명령어를 사용하여 해당 파일을 열어 비밀번호를 알아냈다.

 

- password : HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs

                           

 

 

[ Level 7 -> Level 8 ]

 

비밀번호는 data.txt 파일 안에 millionth 단어 옆에 있다.

 

ls -al명령어를 이용하여 data.txt 파일이 존재하는 것을 확인

 

 

한눈에 millionth라는 단어를 찾을 수 없어서 

특정 문자열을 찾는 명령어인 grep을 이용하기로 했다.

 

grep millionth data.txt를 입력하면, millionth단어가 있는 행의 모든 문자열을 출력한다.

 

- 비밀 번호 : cvX2JJa4CFALtqS87jk27qwqGhBM9plV

 

 

[ Level 8 -> Level 9 ]

비밀번호는 data.txt 파일에 저장되어 있고, 오직 한 번만 발생하는 구절이다.

 

ls -al명령어를 이용하여 data.txt 파일의 존재를 확인했다.

 

sort명령어를 사용해 행들을 순서대로 정렬했다.

uniq 명령어를 사용해 내용의 중복을 제거하여 겹치는 부분이 없는 행만을 나타내었다.

 

 

sort명령어 : 파일의 내용을 정렬하거나, 정렬된 파일의 내용을 병합할 때 사용

-r, --reverse : 역순으로 정렬.
-k, --key=POS1 : 정해진 필드를 기준으로 정렬. ex) sort -k2 : 2번째 필드로 정렬
-u, --unique : 정렬 후 중복된 내용을 제거.
-t, --field-separator=SEP : 필드 구분자를 지정, -k 옵션으로 필드를 지정해서 사용할 때 좋다.
-f, --ignore-case : 대소문자를 구분하지 않고 정렬.
-n : 라인의 각 필드를 비교하는 대상을 숫자로 한정.
-f : 영어를 정렬할 때, 대소문자 구별 안 함.
-r : 출력 순서를 역순으로 정렬.
-b : 앞에 붙는 공백 무시.
-t : 필드 구분자 지정.
-m : 정렬된 파일을 병합.
-u : 정렬후, 중복행 제거.
-o : 저장할 파일명을 명시, 명시하지 않으면 화면에 출력.

uniq명령어 : 이어진 내용의 중복을 제거 (단, 이어진 중복만 제거하기 때문에 주의해야 함)

-c : 같은 열에서 중복되서 나오는지 문자열 앞에 숫자로 출력.
-d : 중복되어 나오는 라인 중 한 열 만 출력.
-D : 중복되는 모든 열을 출력.
-u : 중복 열이 없는 것만 출력.

- 비밀번호 : UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR

 

 

[ Level 9 -> Level 10 ]

비밀번호는 data.txt 파일 안에 있으며, 사람이 읽을 수 있는 문자열이고 '='문자가 앞에 있다.

 

 

ls -al명령어를 이용해 data.txt 파일의 존재를 확인했고, cat명령어를 이용해 내용을 살펴보았다.

 

strings 명령어를 사용해 파일 안에 포함된 문자열을 출력했다.

그리고 파이프와 grep을 사용해 = 문자열 뒤에 오는 텍스트만 출력했다.

 

strings명령어 : 실행파일의 ASCII 문자를 찾아 화면에 출력

-a (all) : 파일을 검색하고 데이터 섹션까지 검색.
-f (print file name) : 각 문자열 전에 파일명을 출력.
-n = [number] (bytes) : 찾자 & 적어도 모든[숫자]문자에서 NULL 로 끝나는 순서로 출력.
-t = {o, d, x} (radix) : 문자열의 위치를 8, 10, 16 진수로 출력.
-T = <BFDNAME> (target) : 바이너리 파일 형식을 지정.

 

- 비밀번호 : truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형