John the Ripper 를 사용하여 RAR 아카이브 크래킹하기

Kali LinuxBeginner
지금 연습하기

소개

이 랩에서는 강력한 도구인 John the Ripper 를 사용하여 암호로 보호된 RAR 아카이브를 크래킹하는 과정을 탐구합니다. RAR(Roshal Archive) 은 데이터 압축, 오류 복구 및 파일 분할을 지원하는 독점 아카이브 파일 형식입니다. RAR 파일은 강력한 압축 및 보안 기능을 제공하지만, 약한 암호는 무차별 대입 공격에 취약하게 만들 수 있습니다.

John the Ripper 는 무료 오픈 소스 암호 크래킹 도구입니다. 약한 Unix 암호를 탐지하도록 설계되었지만, RAR 아카이브를 포함한 다양한 다른 해시 유형도 지원합니다. 이 랩이 끝나면 암호로 보호된 RAR 파일을 생성하고, rar2john을 사용하여 해시를 추출한 다음, John the Ripper 를 사용하여 암호를 복구하는 방법을 이해하게 될 것입니다. 또한 RAR 아카이브와 ZIP 아카이브 크래킹 간의 차이점에 대한 통찰력을 얻고 RAR 파일을 보호하기 위한 모범 사례에 대해 배울 것입니다.

암호로 보호된 RAR 파일 생성

이 단계에서는 간단한 텍스트 파일을 생성한 다음 암호로 보호된 RAR 아카이브로 압축합니다. 이 RAR 파일은 후속 단계에서 암호 크래킹을 위한 대상이 됩니다.

먼저 rar_test라는 새 디렉토리를 생성하고 해당 디렉토리로 이동합니다.

mkdir ~/project/rar_test
cd ~/project/rar_test

다음으로 nano를 사용하여 secret.txt라는 텍스트 파일을 생성하고 내용을 입력합니다.

nano secret.txt

nano 편집기에 다음 내용을 입력합니다.

This is a secret message.
The password is 'labex'.

Ctrl+S를 눌러 파일을 저장하고 Ctrl+X를 눌러 nano를 종료합니다.

이제 labex라는 암호를 사용하여 secret.txt에서 secret.rar라는 암호로 보호된 RAR 아카이브를 생성합니다.

rar a -p labex secret.rar secret.txt

a 옵션은 "아카이브에 파일 추가"를 의미하며, -p는 암호를 지정하는 데 사용됩니다. 다음과 유사한 출력이 표시됩니다.

RAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal      20 August 2013
Shareware version         Type 'rar -?' for help

Creating archive secret.rar

Adding    secret.txt                                               OK
Done

파일이 실제로 암호로 보호되었는지 확인하려면 암호를 제공하지 않고 추출해 봅니다.

unrar e secret.rar

암호를 입력하라는 메시지가 표시됩니다.

UNRAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal      20 August 2013
secret.rar

Extracting from secret.rar

Enter password (will not be echoed) for secret.txt:

추출을 취소하려면 Ctrl+C를 누릅니다.

rar2john 을 사용하여 RAR 파일에서 해시 추출

이 단계에서는 John the Ripper 스위트의 일부인 rar2john 유틸리티를 사용하여 secret.rar 파일에서 암호 해시를 추출합니다. 이 해시는 John the Ripper 가 크래킹을 시도할 수 있는 암호의 표현입니다.

아직 ~/project/rar_test 디렉토리에 있는지 확인합니다.

cd ~/project/rar_test

이제 secret.rar 파일에서 rar2john을 실행하고 출력을 rar_hash.txt라는 새 파일로 리디렉션합니다.

rar2john secret.rar > rar_hash.txt

이 명령은 secret.rar 파일을 처리하고 추출된 해시를 표준 출력으로 내보낸 다음, 이를 rar_hash.txt에 저장합니다.

cat을 사용하여 rar_hash.txt 파일의 내용을 볼 수 있습니다.

cat rar_hash.txt

출력은 다음과 유사하게 표시됩니다 (실제 해시 값은 다를 수 있습니다).

secret.rar:$rar5$16$...

이 줄에는 John the Ripper 가 암호 크래킹을 시작하는 데 필요한 정보가 포함되어 있습니다. $rar5$... 형식은 RAR5 해시임을 나타냅니다.

John the Ripper 로 RAR 해시 크래킹

이 단계에서는 이전 단계에서 추출한 암호 해시를 크래킹하기 위해 John the Ripper 를 사용합니다. 약한 암호에 효과적인 간단한 단어 목록 공격을 사용할 것입니다.

아직 ~/project/rar_test 디렉토리에 있는지 확인합니다.

cd ~/project/rar_test

John the Ripper 에는 기본 단어 목록이 함께 제공됩니다. 이 실습을 위해 알려진 암호 (labex) 를 포함하는 작은 사용자 지정 단어 목록을 만들어 빠른 크래킹을 보장합니다.

wordlist.txt라는 파일을 다음 내용으로 생성합니다.

nano wordlist.txt

nano 편집기에 각 줄에 하나의 암호를 입력합니다.

password
123456
labex
john

Ctrl+S를 눌러 파일을 저장하고 Ctrl+X를 눌러 nano를 종료합니다.

이제 rar_hash.txt 파일과 사용자 지정 wordlist.txt를 사용하여 John the Ripper 를 실행합니다.

john --wordlist=wordlist.txt rar_hash.txt

John the Ripper 가 해시 처리를 시작합니다. labex가 단어 목록에 있으므로 암호를 빠르게 찾을 것입니다. 출력에는 크래킹된 암호가 표시됩니다.

Using default input encoding: UTF-8
Loaded 1 password hash from rar_hash.txt (RAR5)
Cost 1 (iteration count) is 262144 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
labex            (secret.rar)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0% (ETA: 00:00:00) 1.000g/s 4.000p/s 4.000c/s 4.000C/s labex
Session completed.

labex (secret.rar) 줄은 secret.rar 아카이브에 대해 암호 labex가 발견되었음을 나타냅니다.

John the Ripper 가 찾아서 저장한 크래킹된 암호를 확인할 수도 있습니다.

john --show rar_hash.txt

이 명령은 성공적으로 크래킹되어 John 의 내부 pot 파일에 저장된 모든 암호를 표시합니다.

secret.rar:labex

1 password hash cracked, 0 left

이를 통해 John the Ripper 가 RAR 암호를 성공적으로 크래킹했음을 확인할 수 있습니다.

RAR 및 ZIP 크래킹 비교

이 단계에서는 RAR 아카이브 크래킹과 ZIP 아카이브 크래킹 과정을 간략하게 비교하고 몇 가지 주요 차이점을 강조합니다. 두 형식 모두 압축에 일반적이지만 암호화 메커니즘과 이를 크래킹하는 데 사용되는 도구는 다를 수 있습니다.

먼저 비교를 위해 암호로 보호된 ZIP 파일을 생성해 보겠습니다. ~/project/rar_test에 있는지 확인합니다.

cd ~/project/rar_test

ZIP 아카이브를 위한 새 텍스트 파일을 생성합니다.

nano zip_secret.txt

일부 내용을 추가합니다.

This is a secret message for ZIP.
The password is 'zip_pass'.

nano를 저장하고 종료합니다 (Ctrl+S, Ctrl+X).

이제 암호 zip_passzip_secret.zip이라는 암호로 보호된 ZIP 아카이브를 생성합니다.

zip -P zip_pass zip_secret.zip zip_secret.txt

-P 옵션은 암호를 직접 지정하는 데 사용됩니다.

  adding: zip_secret.txt (deflated 29%)

rar2john과 유사하게 ZIP 파일에서 해시를 추출하는 zip2john 유틸리티가 있습니다.

zip2john zip_secret.zip > zip_hash.txt

추출된 ZIP 해시를 확인합니다.

cat zip_hash.txt

출력은 RAR 해시와 다르며 일반적으로 zip_secret.zip:$zip$...으로 시작합니다.

zip_secret.zip:$zip2$*0*1*0*...

이제 zip_pass를 포함하는 단어 목록을 사용하여 John the Ripper 로 크래킹해 보겠습니다.

nano zip_wordlist.txt

다음 내용을 추가합니다.

password
zip_pass
123456

nano를 저장하고 종료합니다.

john --wordlist=zip_wordlist.txt zip_hash.txt

John the Ripper 가 ZIP 암호를 크래킹합니다.

Using default input encoding: UTF-8
Loaded 1 password hash from zip_hash.txt (PKZIP)
Cost 1 (iteration count) is 1024 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
zip_pass         (zip_secret.zip)
1g 0:00:00:00 DONE (2023-10-27 10:35) 100.0% (ETA: 00:00:00) 1.000g/s 4.000p/s 4.000c/s 4.000C/s zip_pass
Session completed.

주요 차이점:

  • 해시 형식: RAR 및 ZIP 파일은 내부 암호화 및 해시 형식이 다르므로 특정 *2john 유틸리티 (rar2johnzip2john) 가 필요합니다.
  • 암호화 강도: 최신 RAR(RAR5) 암호화는 일반적으로 표준 ZIP 암호화 (ZipCrypto) 보다 강력한 것으로 간주되며, 특히 AES-256 을 사용할 때 더욱 그렇습니다. 이는 강력한 암호의 경우 RAR5 크래킹이 계산적으로 더 복잡하고 시간이 많이 소요될 수 있음을 의미합니다.
  • 도구: John the Ripper 는 둘 다 처리할 수 있지만, 기본 해시 추출 및 크래킹 모듈은 별개입니다. fcrackzip과 같은 다른 도구는 ZIP 에 특화되어 있으며, rarcrack은 RAR 에 사용됩니다.

이 비교는 일반적인 접근 방식 (해시 추출, 단어 목록으로 크래킹) 은 유사하지만, 다른 아카이브 형식을 처리하는 구체적인 내용은 다르다는 것을 보여줍니다.

RAR 보안을 위한 모범 사례

이 단계에서는 RAR 아카이브를 보호하고 쉽게 크래킹되지 않도록 하는 모범 사례에 대해 논의합니다. 이러한 관행을 이해하는 것은 민감한 데이터를 보호하는 데 중요합니다.

이 실습에서 secret.rar 파일을 쉽게 크래킹할 수 있었던 것은 강력한 암호의 중요성을 강조합니다. RAR 보안을 위한 몇 가지 모범 사례는 다음과 같습니다.

  1. 강력하고 고유한 암호 사용:

    • 길이: 최소 12-16 자 길이의 암호를 목표로 하십시오. 긴 암호는 크래킹하기가 기하급수적으로 더 어렵습니다.
    • 복잡성: 대문자, 소문자, 숫자 및 특수 문자를 혼합하여 사용하십시오. 일반 단어, 이름 또는 쉽게 추측할 수 있는 시퀀스 ("123456" 또는 "password" 등) 는 피하십시오.
    • 고유성: 다른 계정이나 아카이브에서 암호를 재사용하지 마십시오. 암호 하나가 손상되더라도 다른 암호는 안전하게 유지됩니다.
  2. 암호 관리자 활용:

    • 암호 관리자는 복잡하고 고유한 암호를 생성하고 저장하여 모든 암호를 기억할 필요 없이 위의 권장 사항을 쉽게 따를 수 있도록 합니다.
  3. 강력한 암호화 활성화 (AES-256 을 사용한 RAR5):

    • RAR 아카이브를 만들 때 최신 RAR 형식 (RAR5) 을 사용하고 있는지 확인하십시오. 이 형식은 기본적으로 AES-256 암호화를 사용합니다. 이는 이전 RAR 형식이나 약한 암호화 알고리즘보다 훨씬 안전합니다. 대부분의 최신 rar 도구는 기본적으로 RAR5 를 사용합니다.
  4. 아카이브 근처에 암호 저장 방지:

    • 아카이브의 암호를 아카이브 자체와 함께 텍스트 파일이나 스티커 메모에 저장하지 마십시오. 이는 암호 보호의 목적을 무효화합니다.
  5. 아카이브 액세스 제한:

    • 암호로 보호된 RAR 파일을 액세스가 제한된 안전한 위치에 저장하십시오. 강력한 암호를 사용하더라도 공격자가 장치나 네트워크에 물리적으로 액세스할 수 있다면 크래킹을 시도할 기회가 더 많을 수 있습니다.
  6. 피싱 및 소셜 엔지니어링 주의:

    • 공격자는 가짜 이메일, 웹사이트 또는 직접적인 통신을 통해 암호를 공개하도록 속이려 할 수 있습니다. 민감한 정보에 대한 원치 않는 요청은 항상 의심하십시오.

이러한 모범 사례를 따르면 RAR 아카이브의 보안을 크게 강화하고 무단 액세스로부터 데이터를 보호할 수 있습니다. 어떤 보안 체인의 가장 약한 고리는 종종 인간 요소나 약한 암호라는 것을 기억하십시오.

요약

이 실습에서는 John the Ripper 를 사용하여 암호로 보호된 RAR 아카이브를 크래킹하는 실습 경험을 쌓았습니다. 알려진 암호로 샘플 RAR 파일을 생성하는 것으로 시작했습니다. 그런 다음 rar2john 유틸리티를 사용하여 아카이브의 암호 정보를 John the Ripper 가 이해할 수 있는 형식으로 변환하는 방법을 배웠습니다.

이후 사용자 지정 단어 목록과 함께 John the Ripper 를 성공적으로 사용하여 RAR 아카이브의 암호를 크래킹함으로써 약하거나 일반적인 암호로 보호된 아카이브의 취약성을 입증했습니다. 또한 RAR 및 ZIP 아카이브 크래킹 간의 차이점을 탐색하고 고유한 해시 형식과 암호화 강도를 확인했습니다.

마지막으로, 이 실습은 RAR 보안을 위한 모범 사례에 대한 논의로 마무리되었으며, 강력하고 고유한 암호의 중요성, 최신 암호화 활용 및 아카이브에 저장된 민감한 데이터를 보호하기 위한 좋은 보안 위생 실천을 강조했습니다. 이 실습은 암호 크래킹 기술과 강력한 암호 정책의 중요성에 대한 기초적인 이해를 제공합니다.