level 8 로그인 후 hint를 본다.
find 명령어로 파일을 찾아야 한다.
아주 간단한 find / -user level9로 찾아보았지만 찾은 결과가 없다.
1차원적으로 find / -name shadow를 찾아보았다.
찾아본 결과 이 파일을 서버에서 관리하는 파일인 것 같다. level 8이나 level 9에서 나온 것이 아닌 것 같다.
일단 1차원적으로 찾아볼 수 있는 건 찾아보았지만 나오지 않는다.
파일에 대해서 우리가 정확히 아는 건 용량이 2700이라는 것이다.
여기서 알아야 할 것은 find의 옵션이다.
단, 필요한 옵션만 다룬다.
find 옵션 -size
옵션 중 -size 옵션을 알아야 한다.
용법은 find [찾을 디렉터리 경로] [찾기 옵션]이다.
-size [+파일 크기 / -파일 크기 / 파일 크기][bckw]
파일 크기와 일치하는 파일을 찾는 옵션이다.
find -size를 실행시켜봤지만, 아무것도 찾지 못했다.
-size의 부가 옵션
의미 | |
b | 블록단위 512kb |
c | byte |
k | kbyte |
w | 2byte word |
default value : b |
파일 크기 앞에 붙는 "+, -"는 이상, 이하는 뜻한다.
예를 들어 "+2700k"이면 2700kbyte 이상인 것을 찾고 앞에 "+"가 아닌 "-"일 때는 2700kbyte 이하를 찾는다.
아무것도 붙이지 않을 때는 그 크기의 파일을 찾는다.
위 find -size 실행은 2700b로 실행한 것과 같다.
나오지 않는 것으로 봐서는 다른 부가 옵션을 사용해야 한다.
b, k, w 부가 옵션을 사용한 결과다.
w 부가 옵션에서만 결과가 나왔다. 그러나 이 파일들은 알 수 없는 파일 들이고 자세히 찾아보아도 root의 권한과 그룹으로 만들어져있다.
그렇다. 하나 남은 부가 옵션 c를 사용하면 필요한 파일이 나온다.

부가 옵션 c의 결과다. 이 중에 익숙한 파일인 txt가 보인다. gif도 그림 파일로 익숙하지만 CLI에서는 그림 파일이 나와도 이상하게 나오기 때문에 바로 배제할 수 있다.

실행하면 이러한 알 수 없어 보이는 것이 나온다.
이것은 Training 6에서 배웠던 /etc/passwd 분석에서 나온 것과 같은 것이다.
":"로 필드를 구분하고 다만 두 번째 필드에 x가 적혀있어야 하지만 암호화된 비밀번호가 적혀있다.
x가 적혀있었다면 더 힘들었을 텐데 이것을 풀기만 하면 된다.
리눅스 shadow의 구조는 [$Hashid $Salt $Hash value]이다.
Hashid
어떤 scheme을 이용해 hash 했는지 보여준다.

어떤 scheme을 사용했느냐에 따라 id 값이 달라지며 주로 많이 사용되는 것이 $1, $5, $6이다.
Salt
해시는 단방향 함수다.
다시 말해 A -> B는 가능하지만, B -> A는 불가능하다.
결국, 해시를 하고 난 값을 가지고 해시 하기 전의 값을 구하지 못한다는 뜻이다.
그래서 해시값을 알아내기 위해 해커들은 레인보우 테이블을 가지고 해시 값을 구한다.
이때 해시값을 좀 더 어렵게 하려고 salt를 넣는다.
salt는 해시를 하기 전에 랜덤한 값을 참고하는데 해커가 salt 값을 모른다면 레인보우 테이블을 가지고 있어도 의미가 없다.
해당 salt를 참고한 값이 아니기 때문이다.
Hash value
Hash value는 hashid에 따른 해시 방법과 salt 값을 가지고 hash function을 수행한 결과다.
암호화된 비밀번호를 풀기 위해서는 "존 더 리퍼"라는 툴을 이용해 복호화를 할 수 있다.
존 더 리퍼(John the Ripper)
John the Ripper는 Solar Designer가 개발한 Unix 계열 password crack tool이다.
무료 도구이며, Unix 계열 크래킹 도구이지만 DOS, win9x, NT, 2000 등의 플랫폼도 지원한다.
windows 용을 다운로드 받고 압축을 풀면 된다.
John the Ripper를 사용하기 위해서는 윈도우 cmd와 해독할 파일이 있어야 한다.
일단 해커스쿨에서 찾은 found.txt에서 나오는 level9의 shadow 파일 내용을 복사한다.

존 더 리퍼 폴더 안에 run 폴더에 메모장에 붙여넣고 저장한다.
이제 windows에서 cmd를 키고 존 더 리퍼 run 디렉터리를 찾아간다.

" john.exe [11.txt]" [파일명]이 들어간다.
실행하면 복호화를 진행하고 암호를 보여준다.
이때, 불필요한 글들이 많아 보기 힘들면 위에도 나와 있듯이 "--show"옵션을 붙여 입력하면 보기 쉽게 나온다.
"--show" 옵션을 통해 보기 위해서는 위 "--show" 옵션이 들어가지 않은 명령을 한 번 실행해 복호화를 진행해야 한다.

더 보기 쉽게 있어야 할 자리에 암호가 나온다.

또한, 리다이렉션을 통해 파일로도 받아 볼 수 있다.

'System Hacking > 해커스쿨 F.T.Z Hacking Zone' 카테고리의 다른 글
해커스쿨 F.T.Z Level 10 (0) | 2020.02.19 |
---|---|
해커스쿨 F.T.Z Level 9 (0) | 2020.02.18 |
해커스쿨 F.T.Z Level 7 (0) | 2020.02.13 |
해커스쿨 F.T.Z Level 6 (0) | 2020.02.13 |
해커스쿨 F.T.Z Level 5 (0) | 2020.02.11 |
댓글