Hashcat 설치 및 시스템 벤치마크

LinuxBeginner
지금 연습하기

소개

Hashcat 은 가장 빠르고 진보된 비밀번호 복구 도구 중 하나로 널리 인정받고 있습니다. 광범위한 해싱 알고리즘을 지원하며, CPU 와 GPU 모두를 활용하여 비밀번호 크래킹 프로세스를 가속화할 수 있습니다.

본 랩에서는 Linux 시스템에서 Hashcat 을 시작하는 기본적인 단계를 안내합니다. 표준 패키지 관리자를 사용하여 설치하는 방법, 설치 성공 여부를 확인하는 방법, 그리고 가장 중요하게는 벤치마크 (benchmark) 를 실행하여 시스템의 성능 능력을 이해하는 방법을 배우게 됩니다. 이는 침투 테스트 (penetration testing), 시스템 보안 감사 (system security auditing) 또는 성능 분석에 관심 있는 모든 사람에게 중요한 첫걸음입니다.

이 랩이 끝날 때쯤이면 Hashcat 의 초기 설정 및 평가에 익숙해질 것입니다.

apt 패키지 관리자를 사용하여 Hashcat 설치

이 단계에서는 Ubuntu 시스템에 Hashcat 을 설치합니다. 우리는 Debian 기반 Linux 배포판 (예: Ubuntu) 에서 소프트웨어 관리를 위한 표준 도구인 apt 패키지 관리자를 사용할 것입니다.

먼저, 사용 가능한 최신 버전의 소프트웨어를 얻을 수 있도록 시스템의 패키지 목록을 업데이트하는 것이 좋습니다. 터미널에서 다음 명령을 실행하십시오.

sudo apt update

저장소 (repositories) 에서 패키지 목록이 다운로드되는 것을 볼 수 있습니다.

다음으로 Hashcat 을 설치할 수 있습니다. -y 플래그는 설치 프로세스 중 발생하는 모든 프롬프트에 자동으로 "예"라고 응답하여 비대화형 (non-interactive) 으로 만듭니다.

sudo apt install hashcat -y

시스템이 이제 Hashcat 과 그 종속성 (dependencies) 을 다운로드하고 설치합니다. 설치 진행 상황을 자세히 설명하는 출력이 표시됩니다. 샘플 출력은 다음과 같을 수 있습니다 (정확한 패키지 및 버전은 다를 수 있습니다).

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  hashcat-data ocl-icd-libopencl1
The following NEW packages will be installed:
  hashcat hashcat-data ocl-icd-libopencl1
0 upgraded, 3 newly installed, 0 to remove and XX not upgraded.
Need to get X,XXX kB of archives.
After this operation, XX.X MB of additional disk space will be used.
...
Setting up hashcat-data (X.X.X+ds1-1) ...
Setting up ocl-icd-libopencl1:amd64 (X.X.X-1) ...
Setting up hashcat (X.X.X+ds1-1) ...
Processing triggers for man-db (X.X.X-1) ...
Processing triggers for libc-bin (X.X.X-0ubuntu1) ...

명령 프롬프트가 돌아오면 Hashcat 이 시스템에 설치된 것입니다.

'hashcat --version'으로 Hashcat 설치 확인

이 단계에서는 Hashcat 이 올바르게 설치되었고 터미널에서 접근 가능한지 확인합니다. 명령줄 도구 (command-line tool) 가 설치되어 작동하는지 확인하는 일반적인 방법은 버전 번호를 요청하는 것입니다.

설치된 Hashcat 버전을 표시하려면 다음 명령을 실행하십시오.

hashcat --version

설치가 성공적이었다면, 이 명령은 Hashcat 바이너리 (binary) 의 버전 번호를 출력할 것입니다. 출력은 다음과 유사해야 합니다.

vX.X.X

버전 번호가 표시되는 것은 운영 체제가 hashcat 프로그램을 찾아서 실행할 수 있음을 확인시켜 줍니다.

'hashcat -I'로 사용 가능한 컴퓨팅 장치 목록 확인

이 단계에서는 Hashcat 이 연산에 사용할 수 있는 컴퓨팅 장치 (computing devices) 를 식별합니다. Hashcat 은 중앙 처리 장치 (CPU) 와 그래픽 처리 장치 (GPU) 를 포함하여 최신 하드웨어의 병렬 처리 능력 (parallel processing power) 을 활용하도록 설계되었습니다.

시스템에서 사용 가능한 모든 OpenCL 장치 목록을 보려면 -I (대문자 i) 플래그를 사용할 수 있습니다.

다음 명령을 실행하십시오.

hashcat -I

이 명령은 시스템을 스캔하고 사용 가능한 모든 장치와 그 세부 정보를 나열합니다. 이 가상 환경 (virtual environment) 에서는 아마도 CPU 만 나열된 것을 보게 될 것입니다. 만약 전용 그래픽 카드가 있는 머신에서 실행했다면, 그것도 나열된 것을 볼 수 있을 것입니다.

출력은 다음과 유사할 것입니다.

hashcat (vX.X.X) starting...

OpenCL Info:
============

Platform ID #1
  Vendor  : ...
  Name    : ...
  Version : OpenCL X.X ...

  Device ID #1
    Type           : CPU
    Vendor ID      : XXX
    Vendor         : ...
    Name           : Intel(R) Xeon(R) ...
    Version        : OpenCL X.X ...
    Processor(s)   : X
    Clock          : XXXX MHz
    ...

이 정보는 Hashcat 이 어떤 장치를 사용할지 파악하고, 여러 장치가 사용 가능한 경우 특정 작업을 위해 장치를 선택하는 데 유용합니다.

'hashcat -b -m 0'으로 MD5 시스템 벤치마크 실행

이 단계에서는 특정 유형의 해시에 대한 시스템 성능을 측정하기 위해 벤치마크를 실행합니다. 이는 시스템이 얼마나 빠르게 암호를 크래킹할 수 있는지 이해하는 데 중요한 단계입니다.

Hashcat 의 내장 벤치마크 모드를 사용할 것입니다. 이 명령어는 두 가지 중요한 플래그를 사용합니다.

  • -b 또는 --benchmark: Hashcat 에게 실제 크래킹 세션 대신 벤치마크 모드를 실행하도록 지시합니다.
  • -m 0: 벤치마킹할 해시 유형을 지정합니다. 숫자 0은 MD5 알고리즘에 해당합니다. MD5 는 매우 일반적이고 비교적 빠른 해싱 알고리즘입니다.

이제 터미널에서 벤치마크 명령어를 실행합니다:

hashcat -b -m 0

Hashcat 이 벤치마크 프로세스를 시작합니다. 감지된 모든 장치에서 지정된 알고리즘 (MD5) 을 테스트하고 속도를 보고합니다. 이 프로세스는 완료되는 데 1 분이 걸릴 수 있습니다. 출력은 상세하겠지만, 가장 중요한 부분은 마지막의 속도 요약입니다.

hashcat (vX.X.X) starting in benchmark mode...

... (initialization messages) ...

Benchmark relevant options:
===========================
* Hash-Type: 0 (MD5)

... (device information) ...

[s]tatus [p]ause [r]esume [b]ypass [q]uit =>

... (status updates) ...

Benchmark.Final:
================
* Hash-Type: 0 (MD5)

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

...

다음 단계로 진행하기 전에 벤치마크가 완료될 때까지 기다리십시오.

Speed.Dev.#1. 줄은 기본 장치 (이 경우 CPU) 의 성능을 보여줍니다.

벤치마크 속도 결과 해석

마지막 단계에서는 방금 실행한 벤치마크의 출력을 분석할 것입니다. 이 단계는 개념적인 단계이며 실행할 새로운 명령은 없습니다.

이전 단계에서 실행한 hashcat -b -m 0 명령의 출력으로 다시 돌아가 보세요. 핵심 정보는 Speed로 시작하는 줄입니다.

Speed.Dev.#1.:   XXX.X MH/s (XX.XXms)

이것을 분석해 보겠습니다.

  • Speed.Dev.#1.: 이는 3 단계에서 식별한 장치 #1(아마도 귀하의 CPU) 의 속도를 나타냅니다.
  • XXX.X MH/s: 이것이 가장 중요한 측정 항목입니다. "초당 메가 해시 (Mega Hashes per second)"를 의미합니다. 100.0 MH/s라는 값은 시스템이 초당 1 억 개의 MD5 해시를 계산하고 확인할 수 있음을 의미합니다. 이 숫자가 높을수록 시스템이 무차별 대입 공격 (brute-force attack) 또는 사전 공격 (dictionary attack) 을 더 빠르게 수행할 수 있습니다.
  • (XX.XXms): 이 값은 일괄 작업에 소요된 지연 시간 또는 시간을 나타내며, 성능 튜닝에 더 관련이 있습니다. 기본적인 벤치마크의 경우, H/s 값이 성능의 주요 지표입니다.

확인한 속도는 MD5 알고리즘 (-m 0) 에 특화된 것입니다. 만약 bcrypt(-m 3200) 와 같이 더 복잡한 알고리즘을 벤치마킹한다면, bcrypt 는 의도적으로 계산 속도가 느리게 설계되었기 때문에 속도가 극적으로 낮아질 것입니다 (MH/s 대신 H/s 또는 kH/s로 측정됨).

시스템의 벤치마크 속도를 이해하는 것은 암호 크래킹 작업에 필요한 시간을 추정하는 데 필수적입니다.

요약

축하합니다! Hashcat 설치 및 벤치마킹에 관한 이 실습 (lab) 을 성공적으로 완료했습니다.

이 실습을 통해 다음과 같은 기술을 습득했습니다.

  • apt 패키지 관리자를 사용하여 Linux 시스템에 Hashcat 도구를 설치하는 방법.
  • 소프트웨어 버전을 확인하여 설치를 검증하는 방법.
  • Hashcat 이 활용할 수 있는 사용 가능한 CPU 및 GPU 컴퓨팅 장치를 식별하는 방법.
  • 특정 해시 알고리즘 (MD5) 에 대한 시스템 성능 벤치마크를 실행하는 방법.
  • 벤치마크 결과를 해석하여 시스템의 해시 크래킹 능력을 이해하는 방법.

이러한 기본 기술은 보안 감사, 비밀번호 복구 또는 시스템 성능 평가를 위해 Hashcat 을 사용하려는 모든 사람에게 필수적입니다. 이제 Hashcat 의 더 고급 기능을 탐색할 준비가 되었습니다.