해설)
다음 레벨의 패스워드는 data.txt에 저장되어 있고, 그것은 반복적인 압축이 된 파일을 헥사코드로 바꾸어 놓은 것이다. 이 레벨을 위해, 너가 mkdir 명령어를 사용하여 작업할 /tmp 아래에 디렉토리를 만드는 것이 유용할 것이다.
예: mkdir /tmp/myname123
그리고 데이터파일을 cp 명령어를 사용해 복사하고, mv 명령어를 사용해 이름을 다시 지어준다. (manpage를 읽으렴!) ?뭔...
뭐라는지 하나도 모르겠다. ㅎㅎ
그래서 구글링을 해 보았고, 따라가는 것에 의의를 두었다^^. (라고 애써 합리화)
대충 디렉토리를 하나 생성하고.. cp 와 mv 명령어를 사용하라는 것 같다.
단계를 짜보자
1. mkdir /tmp/gomin 를 이용해 tmp 디렉토리 밑에 gomin 디렉토리를 생성
2. cp data.txt /tmp/gomin 로 data.txt에 있는 파일을 gomin으로 복사
3. gomin으로 이동해 xxd -r 명령어를 이용해 바이너리 파일로 변환 (임의로 question파일 생성)
4. question의 압축을 풀어나가며 패스워드 도출!
결론부터 말하자면, 이 레벨은 정말...............더보기
gomin 디렉토리 안에 data.txt가 있는 것을 확인할 수 있다. 지긋지긋한 data.txt.....
/tmp 아래에 디렉토리를 따로 생성해 복사하라는 것을 보면, 홈 권한 어쩌구때문에 data파일을 함부로 수정할 수 없음 때문이 아닐까 추측해본다.
xxd -r 명령어를 이용해 파일을 바이너리 파일로 만들어주어야 한다.
xxd [파일이름] : 해당 파일을 헥사코드로 바꾼다.
xxd -r [파일이름] : 헥사코드로 이루어진 파일을 원래의 파일로 되돌린다.
리다이렉션(>)을 사용해 data.txt의 내용을 바이너리로 바꾸는 동시에 question 파일에 넣어준다.
question파일이 생겨져 있는 것을 확인할 수 있다.
file 명령어를 이용해 파일의 종류가 무엇인 지를 알아보자.
$ file [파일이름]
gzip으로 압축된 파일이라고 뜬다.
gzip이란?
리눅스에서 제공하는 압축기법 중 하나인데, gzip을 이용해 생성되는 압축파일의 이름은 '파일이름.gz' 이다. 따라서 mv 명령어를 이용해 뒤에 .gz를 붙여주고, 압축을 풀어보도록 하자.
gzip [파일이름]: 해당 파일을 gzip 방식으로 압축한다.
gzip -d [파일이름]: .gz 파일을 압축 해제한다.
또 question의 종류를 출력해본다.
이번엔 bzip2 방식으로 압축된 파일이라고 뜬다.
그렇다면 또 이름을 바꿔주고 bzip2 명령어로 압축을 풀어주자.
bzip2 [파일이름]: 해당 파일을 bzip2 방식으로 압축한다.
bzip2 -d [파일이름]: .bz2 파일을 압축 해제한다.
또 question을 file하니 gzip 이라고 떠서 압축 풀어주고 하다보니...
tar가 나왔다.
tar파일이란?
여러 개의 파일을 하나로 합쳐놓은 것인데, 리눅스에서는 압축할 때에 하나의 파일만 압축할 수 있기 때문에 여러 파일을 한꺼번에 압축할 땐 tar 명령어를 이용해 합치고 압축한다. 그래서 .tar.gz의 형태가 많이 보인다고 한다.
tar -cvf [합친이름] [파일1] [파일2] ... : 파일들을 하나로 합친다.
tar -xvf [합친이름] : 하나로 합친 파일들을 각각의 파일로 나누어준다.
짠! 이런 방식으로 계속 ①이름 바꾸고 ②압축 풀어주고 ③파일 종류 확인하는 것을 반복해주면 된다.
그 결과 ,,,......
data8까지 가버린...
중간에 오타 내는 똘추짓도 한 번 해 주고!
data8.bin파일의 종류가 아스키텍스트인 것을 확인할 수 있었다!
패스워드가 들어있다는 거지
드디어 성공.
인터넷 보면서 하는데도 너무 어려웠다.ㅋㅋ
'해킹 동아리 I.Sly() > 방학 스터디 활동' 카테고리의 다른 글
[bandit] level 14 -> level 15 (0) | 2021.02.17 |
---|---|
[bandit] level 13 -> level 14 (0) | 2021.02.15 |
[bandit] level 11 -> level 12 (0) | 2021.02.15 |
[bandit] level 10 -> level 11 (0) | 2021.02.15 |
[bandit] level 9 -> level 10 (0) | 2021.02.15 |