[ftz] hackerschool level8 풀이

l hackerschool level8 풀이

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

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

 

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


login as: level8
level8@192.168.31.128's password:

 

 

 

level8 문제의 아이디인  level8 와 password인   break the world 을 입력하여 level8의 유저로 접속합니다.

 

 

 

[level8@ftz level8]$ ls -l
total 12
-rw-r-----    1 root     level8        109 Jan 14  2010 hint
drwxr-xr-x    2 root     level8       4096 Feb 24  2002 public_html
drwxrwxr-x    2 root     level8       4096 Jan 14  2009 tmp

 

 

 

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

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

 

 

 

[level8@ftz level8]$ cat hint

/level9의 shadow 파일이 서버 어딘가에 숨어있다.
그 파일에 대해 알려진 것은 용량이 "2700" 이라는 것 뿐이다.

 

 

 

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

 

힌트에 따라 용량이 2700인 파일을 찾기 위해서 find 명령을 사용해보도록 하겠습니다. 그전에 리눅스 파일의 사이즈 단위는 아래와 같습니다.

 

- 리눅스 파일의 사이즈 단위

1) b : 블록단위

2) c : byte

3) k : kbyte

4) w : 2byte워드

 

man find를 하여 find의 속성을 보게 되면 -size n[bckw] 방법으로 원하는 용량의 파일을 찾을 수 있습니다. 여기서 n 앞에 +를 붙이게 되면 n보다 큰 것, -를 붙이면 n보다 작은 것, n만 쓰게 되면 n 사이즈의 파일들을 검색합니다.

 

그리고 bckw 중의 단위를 찾고자 하는 사이즈 옆에 붙여주면 됩니다. bckw는 위에서 이야기한 리눅스 파일의 사이즈 단위를 의미합니다.

 

 

[level8@ftz level8]$ find / -size 2700b 2>/dev/null
[level8@ftz level8]$ find / -size 2700c 2>/dev/null
/var/www/manual/ssl/ssl_intro_fig2.gif
/etc/rc.d/found.txt
/usr/share/man/man3/IO::Pipe.3pm.gz
/usr/share/man/man3/URI::data.3pm.gz
[level8@ftz level8]$ find / -size 2700k 2>/dev/null
[level8@ftz level8]$ find / -size 2700w 2>/dev/null
/usr/lib/perl5/5.8.0/I18N/Collate.pm
/usr/share/locale/es/LC_MESSAGES/memprof.mo
/usr/share/locale/uk/LC_MESSAGES/gtk+.mo

 

 

 

find 속성을 이용해서 find / -size 2700[bckw]를 한 결과입니다. w와 c 둘 다 결과가 나오기는 하지만  /etc/rc.d/found.txt 파일이 우리가 찾아야 하는 파일에 가까워 보입니다.

 

 

 

[level8@ftz level8]$ ls -l /etc/rc.d/found.txt
-r--r-----    1 root     level8       2700 Sep 10  2011 /etc/rc.d/found.txt

 

 

 

ls -l 명령을 통해서 /etc/rc.d/found.txt 파일의 정보를 확인해보니 gid가 level8로 되어있고, read만 가능한 파일입니다. cat 명령을 통해서 파일의 내용을 보도록 하겠습니다.

 

 

 

[level8@ftz level8]$ cat /etc/rc.d/found.txt
level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524
생략...

 

 

 

파일의 내용을 확인해보니 shadow 파일 형식의 내용을 볼 수 있습니다. 아래의 내용이 실제 shadow 파일의 내용입니다.

 

 

 

 

 

 

l shadow 파일 필드 분석

더보기

필드 분석을 해보겠습니다. 각 필드는 :으로 나뉘어 있고, 총 0개의 필드가 있습니다.


level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524
1) level9 : 이 비밀번호를 가진 사용자
2) $1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps. : 사용자 패스워드를 암호화시킨 값
3) 11040 : 패스워드 최종 수정일을 의미하며 1970년 1월 1일부터의 일수이다.
4) 0 : 패스워드 최소 유지기간
5) 99999 : 패스워드 최대 유지기간
6) 7: 패스워드 만료 경고 기간
7) -1 : 패스워드 파기 기간을 의미하며 패스워드 파기 후 계정 비활성 기간을 의미한다.
8) -1 : 계정 만료기간이다.
9) 134549524: 예약 필드로 사용하지 않는다.

 

 

shadow 파일에 있는 비밀번호를 알기 위해서는 john the ripper라는 툴을 이용해야 합니다. john the ripper는 password crack tool로 아래의 사이트에 들어가면 os에 따라 파일을 다운로드할 수 있습니다.

 

 

http://www.openwall.com/john/

 

John the Ripper password cracker

John the Ripper password cracker John the Ripper is a fast password cracker, currently available for many flavors of Unix, macOS, Windows, DOS, BeOS, and OpenVMS. Historically, its primary purpose is to detect weak Unix passwords. These days, besides many

www.openwall.com

 

 

 

저는 window를 사용하기 때문에 window용 john the ripper 다운로드하였습니다. 압축을 푼 뒤에 john the ripper의 run 폴더 안에 위에서 보았던 level9의 shadow 파일 내용을 txt 파일 형태로 저장하여 줍니다. 파일의 이름은 아무거나해도 상관없습니다.

 

 

 

 

 

 

저는 level9의 이름으로 저장해주었습니다. 그 후 cmd를 켜서 john the ripper의 run 폴더까지 이동을 한 후 john.exe [위에서 저장한 텍스트 파일명]을 입력하게 되면 level9의 비밀번호를 확인할 수 있습니다.

 

 

 

D:\john-1.9.0-jumbo-1-win64\run>john.exe level9.txt
Warning: detected hash type "md5crypt", but the string is also recognized as "md5crypt-long"
Use the "--format=md5crypt-long" option to force loading these as that type instead
Warning: detected hash type "md5crypt", but the string is also recognized as "md5crypt-opencl"
Use the "--format=md5crypt-opencl" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (md5crypt, crypt(3) $1$ (and variants) [MD5 256/256 AVX2 8x3])
Will run 4 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Warning: Only 20 candidates buffered for the current salt, minimum 96 needed for performance.
Proceeding with wordlist:password.lst, rules:Wordlist
apple            (level9)
1g 0:00:00:00 DONE 2/3 (2019-11-09 00:27) 3.125g/s 10325p/s 10325c/s 10325C/s 123456..larry
Use the "--show" option to display all of the cracked passwords reliably
Session completed

 

 

 

l No password hashes left to crack 오류

더보기

john the ripper를 한 번 실행하고 나서 재실행하려고 하면 위의 에러가 뜨게 됩니다. john.exe를 실행하게 되면 .pot 파일이 생성이 되는데 그 파일을 삭제하고 실행하게 되면 위의 오류가 뜨지 않고 제대로 프로그램이 실행됩니다.

 

 

 

l level9 비밀번호

더보기

apple            (level9)

 

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

[ftz] hackerschool level10 풀이  (0) 2019.11.13
[ftz] hackerschool level9 풀이  (0) 2019.11.11
[ftz] hackerschool level7 풀이  (0) 2019.11.05
[ftz] hackerschool level6 풀이  (0) 2019.11.04
[ftz] hackerschool level5 풀이  (0) 2019.10.05

이 글을 공유하기

댓글

Designed by JB FACTORY