write-up/pwnable

[ftz] level 8: break the world

여니두 2019. 8. 16.

08_리눅스 패스워드 파일 크랙

 

이 문제는 리눅스의 패스워드 파일 구조를 알아야 한다.

 

- 초기 리눅스에는 /etc/passwd 파일에 평문 형태로 패스워드 표기

- 현재는 모든 계정이 읽을 수 있는 /etc/passwd에 있는 패스워드 부분은 x로 가려짐

실제 암호화한 패스워드는 root 계정만 읽을 수 있는 권한이 부여된 /etc/shadow에 저장

>> 암호화 패스워드 훔침 = root 권한 획득했음

 

* 정리

- /etc/passwd: 계정의 사용환경과 권한에 대한 정보가 들어 있음

- /etc/shadow: 계정의 패스워드와 유효기간에 대한 정보가 들어 있음

 

* /etc/shadow

- 단방향 해시 알고리즘을 통해 암호화하여 저장

: 아무도 평문으로 복호화하지 못하게 하기 위함

 

* 단방향 해시 알고리즘을 사용한 패스워드의 원본을 어떻게 찾는가?

: 사전 대입법 OR Brute Force 기법 사용

- 실제로 이 두 크랙 방식 중 비교적 빠른 사전 대입법을 많이 사용

 

√ 문제 분석

* find -size 옵션

b : 블록단위 512kb
  c : byte
  k : kbyte
  w : 2byte 워드

 

단위별로 하나씩 넣어서 파일이 있는지 찾아보았다.

byte 단위인 c를 붙여 넣어보았더니, 파일명이 의심스러운 found.txt를 발견하였다.

 

hint에서 제시하는 2700은 byte 단위임을 알 수 있었다.

이 파일은 /etc/shadow 파일과 형식이 같다는 것을 알 수 있다.

>> 이 파일을 크랙하면 level9의 PW를 얻을 수 있을 것!

 

유닉스 계열의 대표 패스워드 크랙 툴인 John the Ripper을 이용하여 크랙하였다.

: 로컬 패스워드 크랙용 툴

 

다운받은 후, cmd.exe 파일과 found.txt 내용을 복사한 level9pass.txt 파일을 run 폴더에 넣었다.

 

john 명령어를 쳐보니, crack된 password는 apple임을 알 수 있었다.

 

Level 9 Password = apple

 

* 원격 패스워드 크랙용 툴: hydra

GUI 툴: Brutus-AE2

 

쉬운 PW는 쉽게 크랙될 것이지만, 어렵게 만든 PW는 쉽게 크랙되지 않는다. (> Brute Force)

 

 

'write-up > pwnable' 카테고리의 다른 글

[ftz] level 10: interesting to hack!  (0) 2019.08.18
[ftz] level 9: apple  (0) 2019.08.17
[ftz] level 7: come together  (0) 2019.08.14
[ftz] level 6: what the hell  (0) 2019.08.13
[ftz] level5: what is your name?  (0) 2019.08.12

댓글