Computer Security

#7 Wargame bandit 5 (Level9 ~ Level11), string,base64명령어 본문

Wargame:Bandit

#7 Wargame bandit 5 (Level9 ~ Level11), string,base64명령어

쿠리 Kuri 2022. 7. 13. 18:30

Level9 -> Level10

Level9

다음 레벨의 비밀번호는 몇 개의 '=' 문자가 앞에 오는 사람이 읽을 수 있는 
몇 가지 문자열 중 하나로 data.txt 파일에 저장됩니다.

위 조건을 해결 해보자!

 

1. 이 문제를 해결하기 위해선 저번시간에 공부했던 파이프 라인과 grep, string 을 이용한다.!

 

string이란? 

string 명령어는 실행파일의 ASCII 문자를 찾아 화면에 출력한다.

바이너리 파일 또는 오브젝트 파일에 있는 모든 인쇄 가능한 문자열을 추출하여 출력하기 때문에, 분석할 때 많은 도움이 된다.

 

strings [파일명]

 

-a ---all: 파일을 검색하고 데이터 섹션까지 검색

-f --print-file-name : 각 문자열 전에 파일명을 출력한다.

-n --bytes=[number] : 찾다&적어도 모든[숫자] 문자에서 NULL로 끝나는 순서로 출력(default 4).

-t --radix={o,d,x} : 문자열의 위치를 8, 10, 16진수로 출력한다.

-o : 별명 --radix=0

-T --target=<BFDNAME> : 바이너리 파일 형식을 지정한다.

-e --encoding={s,S,b,l,B,L} : 문자의 크기나 에디안을 선택한다.

             s= 7-bit , S = 8-bit, {b,l}= 16-bit, {B,L} = 32-bit

@<file> : <file>에서 옵션 정보를 가져온다.

-h --help : 프로그램의 정보를 출력한다.

-v -V --version : 프로그램의 버전을 출력한다.

 

2. 자 일단, cat 명령어를 이용해 data.txt 가 어떤 내용이 있는지 확인 해보자.

cat

이렇게 data.txt 파일엔 이상한 문자들과 우리가 읽을 수 있는 문자들이 섞여있다.

 

3.이것들을 걸러주기 위해, string 과 grep , 파이프라인을 통해 내용을 깔끔하게 걸러주자.

string, grep , 파이프라인

 

 

4. 패스워드는truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk 라는 것을 알 수 있다!

 

 

5.위 알아낸 패스워드로 bandit10에 접속 하면 성공!

bandit10

 


Level10 -> Level11

bandit10

다음 레벨의 비밀번호는 base64로 인코딩된 데이터가 포함된 data.txt 파일에 저장됩니다.

위 조건을 해석하여 비밀번호를 알아내 보자!

 

 

1. ls , cat data.txt 명령어를 활용해 data.txt 안에 무엇이 들어있는지 확인 해보자.

 

ls, cat

이상한 알 수 없는 문자들로 구성되어 있다.

 

 

2. 리눅스에선  base64 명령어를 통해 base64 인코딩/디코딩을 할 수 있다.

base64 [파일] : 인코딩

base64 -d [파일] : 디코딩

 

 

3.인코딩을 먼저 해보았더니, 이상한 문자열들로 가득하다.

base64

 

4.디코딩을 하니 우리가 찾는 비밀번호  IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR 가 나왔다!

base64 -d

 

 

5.위 알아낸 패스워드로 bandit11에 접속 하면 성공!

bandit11

Comments