[ftz] hackerschool level7 풀이

l hackerschool level7 풀이

실행 환경 : VMware Workstation Pro, Red Hat Linux 9.0

참고 도서 : 문제 풀이로 배우는 시스템 해킹 테크닉

 

** 공부를 하면서 기록하는 내용이다 보니 틀린 내용이 있을 수도 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사드리겠습니다. **


 

문제 풀이를 하기 전에 문제를 풀 때 필요한 파일인  wrong.txt  파일을 미리 만들어두도록 하겠습니다.

 

level7 유저의 경우 /bin 폴더 아래에 파일을 만들 수 있는 권한이 없기 때문에  root 계정으로 접속 하여 아래의 내용을 /bin 폴더 아래에 wrong.txt 이름으로 만들어야 합니다.

 

--_--_- --____- ---_-__ --__-_- 

위의 문장으로 구성된 파일을 만들어주면 됩니다.

 

 

 

[level7@ftz level7]$ ls -l /bin/wrong.txt
-rw-r--r--    1 root     root           32 Nov  1 15:47 /bin/wrong.txt

 


 

login as: level7
level7@192.168.31.128's password:

 

 

 

level7 문제의 아이디인  level7 와 password인   come together 을 입력하여 level7의 유저로 접속합니다.

 

 

 

[level7@ftz level7]$ ls -l
total 12
-rw-r--r--    1 root     root          185 Nov 23  2000 hint
drwxr-xr-x    2 root     level7       4096 Feb 24  2002 public_html
drwxrwxr-x    2 root     level7       4096 Nov  1 15:45 tmp

 

 

 

 ls -l  명령어를 사용하여 현재 위치( /home/level7 ) 아래에 있는 디렉터리의 목록을 확인합니다.

목록들 중 hint 파일을 읽어 어떤 식으로 문제를 풀어야 하는지 보도록 하겠습니다.

 

 

 

[level7@ftz level7]$ cat hint

/bin/level7 명령을 실행하면, 패스워드 입력을 요청한다.

1. 패스워드는 가까운곳에..
2. 상상력을 총동원하라. 
3. 2진수를 10진수를 바꿀 수 있는가?
4. 계산기 설정을 공학용으로 바꾸어라

 

 

 

cat 명령어를 사용하여 hint 파일을 확인해본 결과 위의 코드와 힌트를 볼 수 있습니다.

 

 

 

[level7@ftz level7]$ /bin/level7
Insert The Password : aaa
--_--_- --____- ---_-__ --__-_-

 

 

 

힌트에 따라 /bin/level7의 명령을 우선 실행해보겠습니다. 'Insert The Password'라는 문장이 뜨지만 아직 비밀번호를 모르기 때문에 아무 문자나 입력해보겠습니다. 

 

만약 비밀번호가 틀렸다면 아까 만들어둔 wrong.txt 파일의 내용이 뜰 것입니다.

 

아무리 봐도 wrong.txt 파일이 문제를 푸는데 중요한 정보일 것 같기에 이 파일을 분석해보도록 하겠습니다. 이 파일에 있는 문장을 보면 '-' , '_' 이렇게 두 문자로만 이루어져 있고, 7개씩 묶음으로 총 4개로 나뉘어 있는 것을 볼 수 있습니다.

 

 

 

이 두 문자가 의미하는 게 무엇인지 알아야 하는데 그러기 위해서 힌트를 참고해야 합니다.

 

힌트를 보면 '2진수를 10진수를 바꿀 수 있는가?'라는 문장이 있는데 그 부분에서 힌트를 얻었습니다.

1. 2진수는 0과 1로만 이루어져 있고, wrong.txt의 내용도 '-' , '_' 두 가지 문자로만 이루어져 있습니다. 

2. '-' , '_' 의 모양이 디지털 신호의 모양과 비슷하여 5V를 의미하는 '-'를 1로 0V를 의미하는 '_'을 0으로 생각하고 풀어보았습니다.

 

'-'를 1로, '_'를 0으로 지정하고 wrong.txt의 문장을 이진수로 바꾸게 되면 아래와 같습니다.

 1101101 1100001 1110100 1100101 

그리고 힌트에 따라 위의 2진수를 10진수로 바꾸게 되면  109 97 116 101  이렇게 4개의 숫자를 볼 수 있습니다.

 

여기서 숫자 4개의 의미를 알아내는데 시간이 오래 걸렸었습니다. 결과적으로 아스키 코드를 이용하는 것입니다.

ASCII 코드는 7bit이고, wrong.txt의 문자도 7bit 묶음으로 나뉘어있습니다. 십진수도 127 이하의 숫자들 중 문자를 나타내는 숫자이기 때문에 ASCII 코드를 이용하면 되지 않을까 싶었습니다.

 

4개의 숫자를 ASCII 코드로 바꾸게 되면  mate  라는 단어를 볼 수 있습니다. 그리고 /bin/level7을 실행해서 mate를 입력하게 되면 level8의 password가 나오게 됩니다.

 

 

[level7@ftz level7]$ /bin/level7
Insert The Password : mate

Congratulation! next password is "break the world".

 

 

 

l level8 비밀번호

더보기

Congratulation! next password is "break the world".

 

'보안 > HackerSchool-ftz' 카테고리의 다른 글

[ftz] hackerschool level9 풀이  (0) 2019.11.11
[ftz] hackerschool level8 풀이  (0) 2019.11.09
[ftz] hackerschool level6 풀이  (0) 2019.11.04
[ftz] hackerschool level5 풀이  (0) 2019.10.05
[ftz] hackerschool level4 풀이  (0) 2019.10.03

이 글을 공유하기

댓글

Designed by JB FACTORY