본문 바로가기

Learning/└◆Reversing

08_Level8 -> Level9[FTZ] 로컬/원격 패스워드 크랙


 ■ Level8 -> Level9


 

 

■ 목적

패스워드 크랙(Crack)

대표적인 패스워드 크랙툴

로컬패스워드 크랙툴(Offline Password Crack) : John the Ripper(johnny)

원격패스워드 크랙툴(Online Password Crack) : Hydra(xhydra)

john179w2.zip <-- John the Ripper

 

 

■ Level8 풀이

 

level8 사용자 로그인

-> ID/PASS : level8/break the world

 

$ cat hint

level9shadow 파일이 서버 어딘가에 숨어있다.

그 파일에 대해 알려진 것은 용량이 "2700"이라는 것 뿐이다.) -->

 

힌트는 충분하다.

 

$ cd /etc ; ls -l shadow*

-r--------    1 root     root         3195 Sep 17 02:40 shadow
-rw-------    1 root     root         3168 Jan 15  2009 shadow-
-rw-------    1 root     root            5 Jan 15  2009 shadow.lock

 

 

/etc 밑에 있는 shadow는 root만 볼 수 있으며 용량 또한 위와 같지 않다.

동일한 파일이 다른곳에 위치하고 있을 가능성이 높다.

 

힌트를 이용하여 size를 이용한 find 명령어를 이용한다

 

$ find / -size 2700 2>/dev/null

 

[참고] # export LANG=C

     # man find

     /-size

                 -size n[bckw]

                        File uses n units of space.  The units are 512-byte

                        blocks by default or if `b' follows n, bytes if `c'

                        follows  n,  kilobytes  if `k' follows n, or 2-byte

                        words if `w' follows n.  The size  does  not  count

                        indirect blocks, but it does count blocks in sparse

                        files that are not actually allocated.

[bckw]

b : 512byte 단위 블록 사이즈로 검색

c : byte 단위로 검색 

k : KB단위로 검색

w :  워드 단위로 검색

 

$ find / -size 2700c -type f 2>/dev/null ($ 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
/home/level8/tmp/found.txt
/home/level8/tmp/john-1.8.0/run/found.txt

 

 

$ find / -size 2700c -type f \

\( -user level8 -o -group level8 \) 2>/dev/null

/etc/rc.d/found.txt

 

$ ls -l /etc/rc.d/found.txt

-rw-r-----    1 root   level8       2700 Jan  4 15:43 /etc/rc.d/found.txt

 

$ cat /etc/rc.d/found.txt

 

level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524

level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524

level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524

.......(중략)

 

같은 내용이 반복적으로 들어 있다. LEVEL 9 사용자에 대한 정보가 Hash 함수로 출력된다.

 

$ cat /etc/rc.d/found.txt | solt -u

 

 

level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524

 

$ cat /etc/rc.d/found.txt | sort -u | grep -v '^$' > tmp/password.txt

 

 level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524

 

앞줄에 공백란을 삭제하고 내용을 tmp/password.txt에 저장한다.

이런 명령어 구문들을 잘 알고 있으면 매우 유용하다. 

 

 

[참고] 비밀번호는 Hash 함수에 의해 Hex 값으로 변형되어 저장되게 된다.

이러한 값을 원래의 값으로 만들기 위해서 john the ripper라는 툴을 사용한다.

그 외에도 hash값을 찾아내는건 여러가지 다양한 패스워드 크랙/관리툴이 존재한다.

따라서 이미 99%는 크랙했다고 볼 수 있다.

 

$ which john

/usr/bin/which: no john in (/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/level8/bin) 

 

FTZ Server에는 john the ripper 툴이 없기 때문에

위 값을 원본 운영체제인 윈도우로 복사해서 MD5 Hash값을 해석한다.

john.exe --format=MD5 --wordlist=password.lst pass.txt

 

존더 리퍼 다운로드 경로(블로그 내용 상단에 다운로드 파일 첨부)
http://www.openwall.com/john/

 

바탕화면에 다운로드/압축해제 하고 cmd 창을 통해 작업한다.

-> 다운로드하고 압축을 해제한 디렉토리: C:\Users\Desktop\john179w2\john179

) --> 

패스워드 파일을 run 디렉토리에 생성한다.

-> C:\Users\Desktop\john179w2\john179\run\password.txt

) --> 

다음은 C:\Users\Desktop\john179w2\john179\run\password.txt 파일의 내용이다.

(password.txt 파일의 내용 예)

 

level9:$1$vkY6sSlG$6RyUXtNMEVGsfY7Xf0wps.:11040:0:99999:7:-1:-1:134549524

 

 

) --> 

cmd 창에서 패스워드 크랙 작업을 진행한다.

) --> 

 

C:\Users> cd C:\Users\Desktop\john179w2\john179\run

C:\Users\Desktop\john179w2\john179\run> john password.txt

Loaded 1 password hash (FreeBSD MD5 [32/32])

apple (level9)

guesses: 1 time: 0:00:00:00 100% (2) c/s: 7458 trying: apple

Use the "--show" option to display all of the cracked passwords reliably

) --> 

C:\Users\Desktop\john179w2\john179\run> john --show password.txt

level9:apple:11040:0:99999:7:-1:-1:134549524

1 password hash cracked, 0 left

) --> 

C:\Users\Desktop\john179w2\john179\run> exit

 

어려운 과정이 아니기 때문에 xhydra를 사용한 원격에서 패스워드 크랙하는 과정은

리버싱 에 무관하여 내용에 포함하지 않았다.

필요하면 직접 해보면서 사용법을 익혀두는걸 권장한다.

(주의) 바이러스 탐지툴을 종료하고 작업을 진행한다. 

xhydra 프로그램을 통해 원격 암호 크랙(Remote Password Crack) 수행.