[ftz] hackerschool level7 풀이
- 보안/HackerSchool-ftz
- 2019. 11. 5. 18:36
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 |
이 글을 공유하기