Potfile 을 사용하여 크랙된 해시 관리하기

Kali LinuxBeginner
지금 연습하기

소개

Hashcat 은 강력하고 인기 있는 비밀번호 복구 도구입니다. 효율적인 작동을 위한 주요 기능 중 하나는 "potfile"입니다. potfile("pot of gold file"의 약자) 은 hashcat 이 성공적으로 크랙된 해시와 해당 평문 (plaintext) 을 자동으로 저장하는 파일입니다. 이를 통해 hashcat 은 이전 세션에서 이미 해결된 해시를 다시 크랙하려고 시간을 낭비하는 것을 방지합니다.

이 실험실에서는 hashcat potfile 을 사용하여 크랙된 해시를 관리하는 기본 사항을 배우게 됩니다. potfile 을 찾는 방법, 내용을 보는 방법, 그리고 이를 조회하거나 필요에 따라 무시하기 위해 특정 hashcat 플래그를 사용하는 방법을 배우게 됩니다.

Potfile 의 목적 이해하기

이 단계에서는 hashcat potfile 의 기본적인 역할에 대해 배우게 됩니다.

potfile 은 hashcat 의 효율성을 위한 가장 중요한 기능 중 하나입니다. hashcat 이 해시를 성공적으로 크랙할 때마다 결과를 potfile 에 저장합니다. 이것의 주요 목적은 해결된 해시 데이터베이스를 구축하는 것입니다.

새로운 크래킹 세션을 시작하기 전에 hashcat 은 입력 파일의 해시를 potfile 의 항목과 비교합니다. 해시가 이미 potfile 에 존재하면 hashcat 은 해당 해시를 건너뛰고 "Removed" 상태를 표시합니다. 이를 통해 이미 완료된 작업에 귀중한 CPU/GPU 사이클을 낭비하지 않도록 합니다.

potfile 항목의 표준 형식은 간단하고 효과적입니다.

HASH:PLAINTEXT

이 단계는 이해를 돕기 위한 개념적인 단계입니다. 실행할 명령은 없습니다. 이 파일이 어디에 있는지 찾으려면 다음 단계로 진행할 수 있습니다.

기본 hashcat.potfile 찾기

이 단계에서는 hashcat 이 생성한 기본 potfile 을 찾습니다.

기본적으로 hashcat 은 현재 작업 디렉토리에 potfile 을 생성하지 않습니다. 대신, 사용자 홈 디렉토리 내의 전용 hashcat 폴더에 저장하여 다양한 크래킹 세션 및 프로젝트에 걸쳐 지속되도록 합니다. Linux 시스템의 기본 위치는 ~/.local/share/hashcat/입니다.

파일의 존재 여부를 확인해 보겠습니다. ls -l 명령을 사용하여 hashcat 디렉토리의 내용을 나열합니다.

ls -l ~/.local/share/hashcat/

출력에서 hashcat.potfile과 함께 다른 잠재적인 세션 관련 파일을 볼 수 있어야 합니다.

total 4
-rw-r--r-- 1 labex labex 42 May 20 10:30 hashcat.potfile

이제 파일을 찾았으므로 다음 단계는 해당 내용을 보는 것입니다.

Potfile 내용 보기

이 단계에서는 hashcat.potfile의 내용을 검사하여 크랙된 해시가 어떻게 저장되는지 확인합니다.

potfile 은 일반 텍스트 파일이므로 cat, less, more와 같은 표준 명령줄 텍스트 뷰어를 사용하여 내용을 볼 수 있습니다. 우리처럼 작은 파일의 경우 cat이 완벽합니다.

터미널에서 다음 명령을 실행하여 기본 potfile 의 내용을 표시합니다.

cat ~/.local/share/hashcat/hashcat.potfile

출력에는 실험실 설정 중에 크랙된 해시가 표시되고 그 뒤에 콜론 (:) 이 오고 그 뒤에 일반 텍스트 비밀번호가 표시됩니다.

5f4dcc3b5aa765d61d8327deb882cf99:password

이 간단한 HASH:PLAINTEXT 형식은 파일이 사람과 hashcat 모두가 쉽게 읽고 파싱할 수 있도록 합니다.

--show 플래그를 사용하여 Potfile 조회하기

이 단계에서는 --show 플래그를 사용하여 potfile 에서 크랙된 해시를 효율적으로 조회하는 방법을 배웁니다.

potfile 을 수동으로 cat하고 grep할 수도 있지만, hashcat 은 주어진 파일의 해시가 이미 크랙되었는지 확인하는 훨씬 더 우아하고 통합된 방법을 제공합니다. --show 플래그가 이 목적으로 사용됩니다. 이 플래그는 해시 파일을 입력으로 받아 potfile 에서 발견된 해시에 대한 크랙된 일반 텍스트를 출력합니다.

hashes.txt 파일을 확인하기 위해 사용해 보겠습니다.

hashcat -m 0 --show hashes.txt

명령을 분석해 보겠습니다.

  • hashcat: 프로그램 자체입니다.
  • -m 0: 해시 모드를 지정합니다. 0은 MD5 이며, 이는 hashes.txt 파일에 있는 해시 유형입니다. --show가 올바르게 작동하려면 이 옵션이 필요합니다.
  • --show: 이 플래그는 hashcat 에게 크래킹 세션 대신 조회 작업을 수행하도록 지시합니다.
  • hashes.txt: 확인할 해시가 포함된 입력 파일입니다.

명령은 우리의 해시가 발견되었기 때문에 potfile 의 내용과 동일한 다음 출력을 생성합니다.

5f4dcc3b5aa765d61d8327deb882cf99:password

이 명령은 대량의 해시 목록이 있고 이전에 복구된 해시가 무엇인지 빠르게 확인하고 싶을 때 매우 유용합니다.

--potfile-disable 을 사용하여 입력에서 크랙된 해시 제거하기

이 단계에서는 hashcat 이 자동으로 해시를 다시 크랙하는 것을 방지하는 방법과 --potfile-disable 플래그를 사용하여 이 동작을 재정의하는 방법을 배웁니다.

먼저, 동일한 크래킹 작업을 다시 실행하려고 할 때 어떤 일이 발생하는지 살펴보겠습니다. 해시가 이미 potfile 에 있으므로 hashcat 은 이를 인식하고 즉시 종료해야 합니다.

hashcat -m 0 -a 0 hashes.txt wordlist.txt --force

출력에 주목하십시오. Hashcat 은 모든 해시가 potfile 에서 발견되었으며 다시 처리하지 않을 것이라고 보고합니다.

...
All hashes found in potfile!

NOTE: All hashes loaded from file hashes.txt are already cracked and were skipped.
To re-crack these hashes, you need to remove them from the potfile.
...

이제, 예를 들어 벤치마킹 목적이나 다른 공격 모드를 테스트하기 위해 해시를 다시 크랙하고 싶다면 어떻게 해야 할까요? --potfile-disable 플래그를 사용할 수 있습니다. 이 플래그는 hashcat 에게 읽기 및 쓰기 모두에서 potfile 을 완전히 무시하도록 지시합니다.

이번에는 플래그를 추가하여 명령을 다시 실행합니다.

hashcat -m 0 -a 0 hashes.txt wordlist.txt --force --potfile-disable

이번에는 hashcat 이 potfile 을 무시하기 때문에 전체 크래킹 작업을 수행합니다. 상태 진행 상황과 마지막에 "Cracked" 상태가 표시됩니다.

...
Session..........: hashcat
Status...........: Cracked
...
Cracked (1/1) hashes, (1/1) digests
...

--potfile-disable을 사용하는 것은 특정 상황에 대한 특정 도구입니다. 대부분의 경우 시간을 절약하기 위해 potfile 을 활용하는 것이 좋습니다.

요약

이 실습에서는 hashcat 의 potfile 을 사용하여 크랙된 해시를 관리하는 필수 기술을 배웠습니다.

이제 potfile 이 해결된 해시의 데이터베이스 역할을 하는 효율성을 위한 중요한 기능임을 이해했습니다. 다음을 배웠습니다.

  • 기본 potfile 위치를 ~/.local/share/hashcat/hashcat.potfile에서 찾습니다.
  • cat과 같은 표준 Linux 명령을 사용하여 내용을 봅니다.
  • --show 플래그를 사용하여 입력 파일의 특정 해시에 대해 potfile 을 조회합니다.
  • --potfile-disable 플래그를 사용하여 특정 사용 사례에 대해 potfile 의 기능을 우회합니다.

potfile 사용을 마스터하는 것은 숙련된 hashcat 사용자가 되기 위한 근본적인 단계이며, 더 효과적이고 효율적인 비밀번호 복구 작업을 실행할 수 있게 해줍니다.