[Bru1s3rs] Bandit - Level 10 ~ 15

securitykss·2023년 7월 1일
0

[Bru1s3rs] Bandit

목록 보기
3/8

브루저는 현재 활동하고 있는 보안 및 해킹 팀이다.(본인이 창설함)

Level 10 -> Level 11

문제 설명

요약: data.txt에 base64로 encoding된 데이타가 있다고 한다. 그게 바로 패스워드니 읽어보자

문제 풀이

확인해보니 맨 뒤에 ==이 있는 것으로 보아하니 확실히 base64로 되어있는 것을 확인할 수 있다.

https://gchq.github.io/CyberChef/

위의 사이트를 들어가면 base64로 인코딩 된 데이터를

디코딩 시킬수 있다.

decoding

왼쪽에, From Base64를 택하고, 해당 값을 Input에 놓고 출력시키면,

패스워드가 나온다.

-완-

Level 11 -> Level 12

문제 설명

요약: data.txt에 소문자 및 대문자 알파벳가 있는데,

13번째 뒤로 rotate 되었다고 한다.

문제 풀이

이 문제는 암호학에서 "카이사르 암호"에 대한 것이다.

카이사르 암호는 간단히 설명하면 "치환"하는 암호이다.


tr -[옵션][문자열1] [문자열2]

문자열1 -> 문자열2로 translate(변환) 해주는 명령어이다.


tr 'a-zA-Z' 'n-za-mN-ZA-M'

13번 째 알파벳은 m 이므로, m을 기준으로 tr을 사용하면 될 것 같다.

뒤에 오는 문자열 들은 'a부터 z, A부터 Z'에서 'n부터 z, a부터 m, N부터 Z, A부터 M'으로 치환하겠다는 의미이다.

패스워드를 얻어 냈다.

-완-

Level 12 -> Level 13

문제 설명

요약: 반복적으로 압축된 hexdump 파일인 data.txt가 있다.

/tmp 디렉토리 안에 mkdir로 디렉토리 생성을 해서, data.txt 파일을 cp 로 copy 해서 풀면 된다.

그니까 이 문제는 "여러번 압축되어 있는 파일을 풀어라~" 이 의미이다.

문제 풀이

hexdump 된 파일이 보인다. 뭔가 복잡하긴 한데,

덤프파일이니 바이너리 파일 생성이 가능하다.

1. xxd 명령어

xxd -[옵션][파일]

바이너리 파일을 hexdump로 보여주는 명령어이다.

-r: hexdump 파일을 binary 파일로 바꾼다. (ex. xxd -r [file1][file2])

-b: 이진수로 보여준다.

-p: hex값만 보여준다.

2. xxd -r data.txt data

이 명령어를 이용해 덤프파일을 바이너리 파일 생성이 가능하다.

권한이 없다.

그래서 /tmp 디렉토리에서 작업하라고 했던 모양이다.

3. mkdir && cp

그래서 /tmp 디렉토리에 디렉토리 생성해주고,

cp로 파일을 복사하자

가져 온 모습이다.

4. xxd -r data.txt data (다시)

(중간에 test로 할까 하다가, 보기 좋게 data로 바꾼 모습이다.)

성공적으로 data 파일을 만들었다.

file 명령어로 확인해보자

5. file

gzip으로 압축되어 있었던 것 같다.

친절히 data2.bin 파일 이었다고 알려준다.

6. gzip

gzip 파일이니, data.gz으로 바꿔 주고

gzip -d data.gz을 해서 압축을 풀어준다.

다시 file 명령어로 확인해보니 bzip2로 압축되어 있다고 한다.

7. bzip2

bzip2 파일이니, data.bz2로 바꿔 주고

bzip2 -d data.bz2를 해서 압축을 풀어준다.

다시 file로 확인해보니, gzip으로 또 압축되어있다고 한다.

8. tar

계속 반복해서 압축을 풀다보면 tar 압축파일이 나온다.

tar xvf data.tar 로 풀면 된다.

반복해서 이제 풀어보자

9. 반복

계속 반복해서 하니 data8이 나오고, 여기에 패스워드가 들어있었다.

-완-

Level 13 -> Level 14

문제 설명

요약: /etc/bandit_pass/bandit14에 패스워드가 있지만, bandit14 사용자만 읽을 수 있다고 한다.

ssh 키가 있어서 bandit14에 접속할 수 있다.

문제 풀이

예전에 AWS할 때, ssh -i 옵션으로 key를 썼던 기억이 난다.

그거를 써보자

ssh -i

쭉 카피해서 내 local에 키 파일 생성 후

ssh -i 로 접속을 했더니 성공적으로 접속이 되었다.

-완-

Level 14 -> Level 15

문제 설명

요약: 30000번 포트에 bandit14의 패스워드를 보내면, Level15의 패스워드를 알려준다고 한다.

문제 풀이

이전 문제에서, /etc/bandit_pass 위치에, bandit14 패스워드가 존재한다고 했다.

그리고, 현재 localhost의 30000번 포트에 비밀번호를 제출해야 한다.

1. nmap -sT localhost

localhost에서 확인 해보면 30000번 포트에 ndmps 서비스가 열려있는 것을 확인할 수 있다.

2. nc localhost 30000 && 비번 보내기

/etc/bandit_pass로 위치를 옮긴 후 bandit14 를 읽고,

nc로 localhost의 30000번 포트에 접속을 해서, 비번을 보내주면

Level 15로 가는 패스워드를 알려준다.

-완-

새로 알게된 점

tr 명령어

변환? 혹은 치환? 하는 명령어에 대해 알게 되었다.

Reference

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

profile
보안 공부를 하는 학생입니다.

0개의 댓글