오프라인과 온라인 패스워드 공격 도구에 대해서 알아보는 것으로 이 책을 마무리 하고 취약점 진단 단계, 침투 심화 공격 단계, 네트워크 스니핑, 무선 네트워크 등을 실습 동영상과 함께 글을 쓰도록 하겠습니다.
존더리퍼
- 유니스 계열 페스워드 크랙도구로 무료이며 오픈소스입니다.
주요옵션
1. General
john passwd.1
single mode -> incremental mode
싱글 크랙 모드 : 일반적인 모드, 룰에 따라 워드리스트를 사용하고 그 다음 incremental mode로 간다.
패스워드가 크랙되면 "john -show passwd.1"로 크랙된 패스워드를 본다.
-----------------------------------------------------------------
2. 싱글모드로만 할 때
john -single passwd.1
크랙할 여러 패스워드 파일이 있을 때 john -single passwd.* 로 같이 하는 것이 더 효율적이다.
-----------------------------------------------------------------
3. 워드리스트를 지정할 때
john -w:words.lst passwd.1
-----------------------------------------------------------------
4. 패스워드 파일을 두 부분으로 split하여 크랙할 때(좀 더 빨리 될 수 있다)
john -w:words.lst -rules -salts:2 passwd.*
john -w:words.lst -rules -salts:-2 passwd.*
-----------------------------------------------------------------
5. 바로 incremental mode로 넘어갈 때
john -i passwd.1
-----------------------------------------------------------------
6. 알파벳으로만 조합을 만들 때
john -i:alpha passwd.1
-----------------------------------------------------------------
7. 특수문자 추가
config 파일에 Extra = 에 추가 (I am not sure)
John the Ripper's Command Line Options by NucL23
John the Ripper라는 프로그램을 사용할 때, command line argument로 여러개의 패스워드 파일들을 줄 수 있습니다.
그리고 아래에 설명하는 옵션들을 줄 수 있습니다.(GNU-style의 긴 옵션문법 역시 가능합니다.)
-----------------------------------------------------------------
-single "single crack" mode
List.Rule:Single의 규칙을 사용하는 "single crack" mode를 가능하게 합니다.
-----------------------------------------------------------------
-wordfile:FILE "wordlist" mode, 파일로부터 단어리스트를 읽어옵니다,
-stdin "wordlist" mode, 표준입력(키보드)로부터 단어리스트를 읽어옵니다.
이 옵션들은 wordlist mode를 사용가능하게 하기위하여 사용됩니다.
-----------------------------------------------------------------
-rules wordlist mode를 위한 규칙들을 가능하게 합니다.
[ List.Rules:Wordlist]로 부터 읽은 wordlist rules를 가능하게 합니다.
Enables wordlist rules, that are read from [List.Rules:Wordlist].
--------------------------------------------------------------------------------
-incremental[:MODE] incremental mode [구간(section) MODE 사용]
~/john.ini 에 서술된 정의들을 사용하는 incremental mode를 가능하게 합니다.
(section [Incremental:MODE], 혹은 기본적으로 [Incremental:All]).
-----------------------------------------------------------------
-external:MODE external mode 혹은 word filter
~/john.ini 에 정의되어있는 외부함수들을 사용할 수 있도록 external mode를 가능하게 합니다.
[List.External:MODE] section.
-----------------------------------------------------------------
-stdout[:LENGTH] 크랙(cracking)은 하지않으며, 표준출력으로 단어들을 출력합니다.
"single crack" mode를 이외의 cracking mode를 사용할때, John the Ripper프로그램이
생성한 단어들을 공중분해(?)(cracking)대신에 표준출력으로 출력합니다.
반면에, wordlist 규칙을 적용하면, 암호의 길이는 LENGTH로 가정되거나
기본적(default)으로는 제한이 없게(unlimited) 됩니다.
-----------------------------------------------------------------
-restore[:FILE] 중단된 session을 복구합니다.
읽던 곳의 정보(reading point information)를, 기본적으로 ~/restore의 서술되어있는 파일로부터
가져와서 중단된 cracking session을 계속할 수 있습니다.
-----------------------------------------------------------------
-session:FILE session파일의 이름을 FILE로 설정합니다.
이 cracking session을 사용하기 위해서, 사용자에게 다른 곳의 정보 파일의 이름(another point information file's name)을
알수있게 합니다. John the Ripper를 사용하여 동시에 여러개의 파일들을 실행하거나, 단지 오래된 session을 나중에 복구할 수
있도록 할 때(항상 최신의 session이 연속되는 것은 아니도록 할 때) 유용한 옵션입니다.
--------------------------------------------------------------------------------
-status[:FILE] session의 상태를 출력합니다. [from FILE]
중단되었거나 실행중인 session의 상태를 출력합니다. 떨어져나온(?)(detached) 실행중인 sessino의
최근(up to date) 상태의 정보를 얻기 위하여, 이 옵션을 사용하기 전에 John the Ripper의 복사본을 SIGHUP에 전송합니다.
-----------------------------------------------------------------
-makechars:FILE charset을 만들고, FILE을 덮어씁니다.
incremental mode와 함께 사용하기 위하여 ~/john.pot의 문자 빈도수들에 기초하여 chaset file을
생성합니다. 모든 ~/john.pot은 만약 사용자가 password files를 지정하지 않았을 때 사용될 것입니다.
사용자들은 또한 외부 filter() 루틴을 이 옵션과 함께 사용할 수 있습니다.
-----------------------------------------------------------------
-show 크랙된 암호들을 보여줍니다.
보기좋은 형식으로 크랙된 암호들을 보여줍니다. 사용자들은 또한 password files를 지정해야만 합니다. 사용자들은 John the Ripper프로그램이 크래킹 작업을 하는 동안, 현재까지 John the Ripper가 무엇을 하였는지 보기위해 이 옵션을 사용할 수 있습니다.
-----------------------------------------------------------------
-test benchmark를 수행합니다.
모든 사용 가능한 암호문서 형식 크래커들을 벤치마킹하고, 동시에 정확한 operation을 수행하는지 테스트합니다.
-----------------------------------------------------------------
-users:[-]LOGIN|UID[,..] 지정된 사용자들만을 load합니다.
크래킹 등을 위하여 몇몇의 계정들만을 걸러낼 수 있게 합니다. list앞의 '-'부호는 검사를 역으로 하기위해 사용될 수 있습니다.
(-가 붙으면, 지정된 users들 이외의 사용자들만을 load합니다.)
-----------------------------------------------------------------
-groups:[-]GID[,..] 지정된 그룹들만을 load합니다.
users와 같지만 그룹을 대상으로 합니다.
-----------------------------------------------------------------
-shells:[-]SHELL[,..] 지정된 쉘만을 load합니다.
오직 사용가능한 쉘만을 가진 계정을 load하거나, 또는 좋지 않은 쉘을 가진 계정을 load하지 않을때 이 옵션이 유용하게 사용됩니다.
사용자는 쉘 이름 앞에 경로를 생략할 수 있고, 그래서 -shell:csh는 /bin/csh와 /usr/bin/csh모두와 같습니다.
반면에 -shells:/bin/csh는 오직 /bin/csh와만 매칭됩니다.
-----------------------------------------------------------------
-salts:[-]COUNT password/(per)salt limit 를 설정합니다.
이 옵션은 때때로 더 나은 수행이 가능합니다. 예를 들면, 사용자는 오직 약간의 salts를 '-salts:2'를 사용하여 크랙할 수 있고,
'-salts:-2'를 사용하여 크랙을 잠시 중단할 수 있습니다. 모든 크래킹 시간은 대부분 같을 것입니다. 그러나 사용자는 약간 더 빨라진 크랙된 암호들을 얻을 수 있을 것입니다.
-----------------------------------------------------------------
-format:NAME 암호문의 형식 이름에 영향을 줍니다.
암호문의 형식검출을 override가 가능하게 합니다. 현재는 사용가능한 이름들에는 DES< BSDI, MD5, BF, AFS, LM등이 있습니다.
사용자는 크래킹을 하거나 '-test'를 할 때, 이 옵션을 사용할 수 있습니다. 주의할 점: John the Ripper는 동시에 형식이 다른 두 암호문을 크랙할 수 없습니다.
-----------------------------------------------------------------
-savemem:LEVEL 1~3LEVEL에 메모리 저장이 가능하게 합니다.
1. Wordlist Mode
가장 간단한 방법. 준비된 워드리스트를 이용해 암호화된 패스워드 파일을 크랙한다.
2. "Single Crack" Mode
모든 password 파일에 대해서 주어진 information에 대해서 검사를 한다. 이는 매우 많은 rule을 사용하는 wordlist 모드 보다 훨씬 적은 시간이 걸린다.
3. Incremental Mode
가장 강력한 모드. 가능한 모든 조합을 패스워드로 대입한다. 이것은 너무 커서 매우 오래 걸릴것이다. john을 실행할 때 mode이름을 parameter로 넘겨주면 된다(옵션 참고). mode의 이름은 ~/john.ini에 [Incremental:MODE]의 형식으로 정의되어 있으며, 이미 정의된 mode(All, Alpha, Digits)를 사용해도 된다.
4. External Mode
~/john.ini파일에 [List.External:MODE]의 형식으로 mode의 이름이 정의되어 있다. 이 모드는 john에서 사용할 단어를 생성해내는 C Language functions을 포함하고 있다.
2.crunch
crunch는 패스워드를 찾기 위한 사전파일을 만들어 줍니다.
charset.lst 파일 내용을 보면 옵션과 사용법을 알 수 있습니다.
지금은 빠르게 생성하기 위해서 모든 숫자, 대소문자 알파벳, 특수문자를 포함하는 3자리 파일을 생성했습니다. 옵션에 따라 길이에 따라 용량과 숫자의 차이가 많이 납니다. cupp라는 도구 또한 사전 파일을 생성하지만 사회공학적인 측면으로 생성하는 것입니다. 예를들면 상대의 이름, 전화번호, 가족사항, 취미등의 정보가 있지만 패스워드를 모를 경우 이러한 정보를 이용하여 bruteforce 파일을 생성해 줍니다.
생성된 파일의 내용
3.hash -identify
입력하는 해시의 값이 어떤 알고리즘인지 식별해주는 도구입니다.
온라인 패스워드 공격 도구
1.hydra
hydra는 콘솔과 그래픽모드 2가지가 존재합니다.
그래픽 모드에서 타겟을 하나 또는 대역으로 지정하고 포트 등을 설정합니다
Password 탭에서 username을 알고 있는 경우 해당 name을 적고 알지 못하는 경우 namelist가 있는 위치를 적어줍니다. password 또한 알고 있으면 알고 있는 패스워드를 적고 모르면 passwordlist의 위치를 적어주고 start합니다
tuning 탭은 bruteforce할 때 옵션과 프록시에 대한 옵션이고, specitic탭은 세부사항을 사용하는 부분입니다.
성공하게 되면 ID와 password가 보이게 됩니다.
2.medusa
hydra와 비슷한 기능을 합니다.
3.findmyhash
해시 데이터 베이스를 통해서 포함돼 있는 값들과 비교하여 패스워드를 크랙하는 도구입니다.
'칼리리눅스와 백트랙을 활용한 모의해킹' 카테고리의 다른 글
[취약점 진단 단계] 메타스플로잇 (0) | 2015.09.07 |
---|---|
[취약점 평가 단계] CMS 서비스 취약점 단계 (0) | 2015.09.06 |
[취약점 평가 단계]서비스 취약점 수집 (0) | 2015.09.03 |
[정보 수집 단계]IDS/IPS 탐지 여부 확인 (0) | 2015.09.02 |
[정보 수집 단계] 서비스 정보 수집 (0) | 2015.09.01 |
댓글