■ 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
level9의 shadow 파일이 서버 어딘가에 숨어있다. 그 파일에 대해 알려진 것은 용량이 "2700"이라는 것 뿐이다.) --> 힌트는 충분하다. $ cd /etc ; ls -l shadow* /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.
b : 512byte 단위 블록 사이즈로 검색 c : byte 단위로 검색 k : KB단위로 검색 w : 워드 단위로 검색 $ find / -size 2700c -type f 2>/dev/null ($ find / -size 2700c 2>/dev/null) $ find / -size 2700c -type f \ \( -user level8 -o -group level8 \) 2>/dev/null $ ls -l /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 FTZ Server에는 john the ripper 툴이 없기 때문에 위 값을 원본 운영체제인 윈도우로 복사해서 MD5 Hash값을 해석한다. john.exe --format=MD5 --wordlist=password.lst pass.txt 바탕화면에 다운로드/압축해제 하고 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
-rw------- 1 root root 3168 Jan 15 2009 shadow-
-rw------- 1 root root 5 Jan 15 2009 shadow.lock
/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
) -->
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 프로그램을 통해 원격 암호 크랙(Remote Password Crack) 수행.
'Learning > └◆Reversing' 카테고리의 다른 글
[참고] 버퍼 오버 플로우 (0) | 2017.01.29 |
---|---|
[참고]변수의 메모리 배치 확인 및 GDB 사용법 (0) | 2017.01.29 |
07_Level7 -> Level8[FTZ] 암호학(2진수 <->10진수 <-> 16진수) (0) | 2017.01.29 |
[참고] Signal에 대해서(시그널 함수) (0) | 2017.01.29 |