이번엔 level8을 풀어보자.
로그인을 하고, 파일 목록을 확인하고, 힌트를 확인한다.
level9의 Shadow 파일이 서버 어딘가에 숨어있고, 용량이 2700 이라고 한다.
find 명령어를 통해 용량이 2700인 파일을 찾아보자.
" find / -size 2700c 2> /dev/null "
수상해 보이는게 하나 있다.
/etc/rc.d/found.txt 제목부터 found이다. 확인해보자
뭔가가 와다다 나왔다.
이게 level9의 Shadow 파일인데 Shadwo 파일의 형식은 아래와 같다.
-----------------------------------------------------------------------------------------------------------------------------------
사용자명:패스워드:패스워드 파일 최종 수정일:패스워드 변경 최소일:패스워드 변경 최대일:패스워드 만료 경고 기간:패스워드 파기 기간: 계정 만료 기간:예약 필드
-----------------------------------------------------------------------------------------------------------------------------------
의 9가지 필드로 나눠져 있다.
1.Login Name : 사용자 계정각 항목별 구분은 :(콜론) 으로 구분되어있으며 콜론과 콜론 사이 각 필드에는 다음과 같은 구조로 구성되어 있다.
2.Encrypted : 패스워드를 암호화시킨 값
3.Last Changed : 1970년부터 1월 1일부터 패스워드가 수정된 날짜의 일수를 계산
4.Minimum : 패스워드가 변경되기 전 최소사용기간(일수)
5.Maximum : 패스워드 변경 전 최대사용기간(일수)
6.Warn : 패스워드 사용 만기일 전에 경고 메시지를 제공하는 일수
7.Inactive : 로그인 접속차단 일 수
8.Expire : 로그인 사용을 금지하는 일 수 (월/일/연도)
9.Reserved : 사용되지 않음
인데 우리는 필드 2 에 있는 Encrypted(패스워드 암호화) 부분만 살펴보면 된다. 아래와 같다.
$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.
이부분은 $id $salt $value 필드로 또 나뉜다.
$id 에서 id는 어떤 해시를 사용해서 암호화 하는지를 나타낸다. 여기서는 1(MD5)를 나타내고 있다.
$salt 에서 salt 는 해시 암호화의 단점을 보완하기 위해 각각 사용자마다 랜덤으로 정해지는 값이다.
$value 는 salt + password 를 조합하여 해시 암호화 한 결과값이다.
위 파일을 존 더 리퍼 라는 툴로 복호화 할 수 있다.
짜잔
level9 암호 : apple
'[Pwnable] 해커스쿨 FTZ' 카테고리의 다른 글
[해커스쿨 FTZ] Level10 (0) | 2020.03.04 |
---|---|
[해커스쿨 FTZ] Level9 (0) | 2020.03.03 |
[해커스쿨 FTZ] Level7 (0) | 2020.03.02 |
[해커스쿨 FTZ] Level6 (0) | 2020.03.02 |
[해커스쿨 FTZ] level5 (0) | 2020.03.02 |