크런치로 Kali Linux에서 사용자 정의 단어 목록을 생성하는 방법

Kali Linux는 사이버 보안 테스트를 위한 다양한 유용한 도구들을 제공합니다. 그 중에서도 단어 목록은 여러 보안 테스트 및 비밀번호 관련 작업에 있어 핵심적인 역할을 합니다.

Linux 환경에서 ‘crunch’ 명령어를 활용하면, 보안 테스트에 필요한 다양한 형태의 단어 목록을 생성할 수 있습니다. 이 명령어에 대한 숙련도는 기술 능력을 향상시키는 데 큰 도움이 될 것입니다. Kali Linux에서 ‘crunch’를 효과적으로 설치하고 사용하는 방법에 대해 알아보겠습니다.

Kali Linux에 ‘crunch’ 설치하기

‘crunch’ 명령어는 일반적으로 Kali Linux에 미리 설치되어 있지만, 만약 설치되어 있지 않다면 공식 저장소에서 간편하게 설치할 수 있습니다. 먼저 아래 명령어를 사용하여 시스템 저장소를 업데이트합니다.

sudo apt update

다음 명령어를 사용하여 ‘crunch’ 패키지를 설치합니다.

sudo apt install crunch

Linux에서 ‘crunch’ 명령어 사용법

‘crunch’ 명령어에 대한 자세한 정보를 보려면 다음 명령어를 실행합니다.

crunch -h

이 명령어는 ‘crunch’ 명령어와 그 문법에 대한 간략한 정보를 제공합니다.

‘crunch’ 명령어와 다양한 옵션에 대해 더 자세하고 심층적인 정보를 얻으려면 매뉴얼 페이지를 참고하거나 아래 명령줄 도움말을 사용하세요.

man crunch

기본 ‘crunch’ 명령어 문법

‘crunch’ 명령어의 기본 문법은 다음과 같습니다.

crunch <min> <max> [옵션]

‘min’은 생성하려는 단어의 최소 문자 수를, ‘max’는 최대 문자 수를 나타냅니다.

만약 동일한 문자 수를 원한다면, 최소값과 최대값을 동일하게 설정해야 합니다. ‘crunch’ 명령어는 다양한 유형의 단어 목록 생성을 위해 여러 옵션을 제공합니다.

예를 들어, ‘abc’ 문자로 구성된 길이가 3인 모든 조합의 단어 목록을 생성하려면 다음 명령어를 사용합니다.

crunch 3 3 abc

‘crunch’ 명령어를 사용한 문자 범위 설정

특정 문자 범위 (예: 숫자, 문자, 기호 등)를 지정하여 단어 목록을 맞춤 설정할 수 있습니다. 예를 들어, 길이가 4에서 6자인 모든 소문자 조합으로 이루어진 목록을 생성하려면 다음 명령어를 사용합니다.

crunch 4 6 abcdefghijklmnopqrstuvwxyz

숫자로만 구성된 단어 목록을 생성하려면 다음 명령어를 사용합니다.

crunch 10 10 0123456789

문자 길이를 원하는 대로 지정할 수 있습니다.

‘crunch’를 사용한 단어 목록 파일 출력

-o 옵션을 사용하여 생성된 단어 목록을 특정 파일에 저장할 수 있습니다. 예를 들어, ‘abc123’ 문자 조합으로 구성된 4자리 단어 목록을 생성하여 ‘wordlist.txt’ 파일에 저장하려면 다음 명령어를 사용합니다.

crunch 4 4 abc123 -o wordlist.txt

‘crunch’ 명령어에서 무차별 대입 모드 사용

-b 옵션을 사용하면 무차별 대입 공격을 위한 문자 집합을 지정할 수 있습니다. ‘crunch’의 일반 모드는 지정된 길이 범위 내에서 지정된 문자 집합의 조합으로 단어 목록을 생성합니다.

-b 모드는 기본 문자 집합에서 문자 순열을 생성하여 단어 목록을 만들기 때문에, 가능한 모든 조합을 포괄하여 더 광범위한 목록을 생성할 수 있습니다.

crunch 6 6 -b 1234567890abcdef -o bruteforce.txt

이 명령어는 ‘1234567890abcdef’ 문자(길이 6자)의 모든 가능한 조합으로 단어 목록을 생성하고, 이를 ‘bruteforce.txt’ 파일에 저장합니다.

‘crunch’의 조합 모드 사용

-c 옵션은 여러 문자 세트의 조합을 생성하는 데 사용됩니다.

crunch 8 8 -c 1@% -o combinations.txt

이 명령어는 ‘1’ 세트와 ‘@%’ 세트의 문자를 결합하여 가능한 모든 8자리 조합으로 이루어진 단어 목록을 생성하고, 이를 ‘combinations.txt’에 저장합니다.

‘crunch’를 사용하여 사용자 정의 패턴으로 단어 목록 생성

-t 옵션을 사용하면 사용자 정의 패턴을 기반으로 단어 목록을 생성할 수 있습니다.

crunch 8 8 -t MyPass@@@@ -o unique.txt

이 명령어는 ‘@@@@’ 부분이 가변 문자를 나타내고, ‘MyPass’ 부분이 고정된 단어 목록을 생성합니다. 생성된 단어 목록은 ‘unique.txt’에 저장됩니다.

결과 단어 목록은 지정된 패턴을 따르는 단어를 포함합니다. 이 경우 ‘MyPass’ 단어 뒤에 지정된 문자 세트의 조합으로 구성된 4개의 가변 문자가 추가됩니다. (이 예에서는 모든 영숫자 문자를 포함하는 기본 문자 세트가 사용됩니다.)

이 기능은 특정 형식을 따르는 단어 목록이 필요한 경우나, 예측 가능한 패턴을 갖는 비밀번호를 테스트해야 하는 경우에 유용하게 활용할 수 있습니다. 다른 사람이 비밀번호를 쉽게 추측하거나 무차별 대입 공격을 하는 것을 방지하려면, 새로운 비밀번호를 만들 때 몇 가지 흔한 실수를 피해야 합니다.

사전 모드를 사용하여 단어 목록 생성

-f 옵션을 사용하면 외부 사전 파일을 단어 목록의 소스로 사용할 수 있습니다.

crunch 6 6 -f /usr/share/dict/words -o dictionary-list.txt

위 예시에서 명령어는 사전 파일을 소스로 사용하여 6자 길이의 단어로 구성된 단어 목록을 만들고, 이를 ‘dictionary-list.txt’에 저장합니다.

‘crunch’를 사용하여 문자 반복 없이 단어 생성

반복되는 문자 없이 단어를 생성하려면 (즉, 단어 내에서 모든 문자가 고유해야 함), ‘crunch’와 함께 -p 옵션을 사용합니다. 이 옵션은 생성되는 단어가 고유해야 함을 지정하고, 각 단어 내 문자 반복을 제거합니다.

예를 들어, 반복되는 문자 없이 6자 단어로 이루어진 단어 목록을 생성하려면 다음 명령어를 사용합니다.

crunch 6 6 -p ABCDEF -o non-repeating-words.txt

이 명령어는 ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’ 문자로 구성된 반복 없는 단어들을 생성하고, 이 단어 목록을 ‘non-repeating-words.txt’ 파일에 저장합니다.

다른 Linux 명령어와 함께 ‘crunch’ 명령어 사용

Linux에는 사용자가 원하는 정확한 단어 목록을 생성하는 데 활용할 수 있는 다양한 명령어가 있습니다. 이러한 명령어들의 사용법을 익히는 것은 매우 중요합니다.

‘crunch’ 명령어는 ‘grep’이나 ‘sort’와 같은 Linux 명령어와 함께 사용하여 단어 목록을 필터링하거나 정렬할 수 있습니다. 또한, ‘wc’ 명령어를 사용하여 항목 수를 계산하고, ‘hydra’ 명령어를 사용하여 사전 공격을 수행하는 데에도 활용할 수 있습니다.