워크로드 프로파일로 크래킹 최적화하기

Kali LinuxBeginner
지금 연습하기

소개

이 랩에서는 hashcat의 워크로드 프로파일을 사용하여 강력한 비밀번호 복구 도구인 hashcat의 성능을 최적화하는 방법을 탐구합니다. 워크로드 프로파일 설정을 통해 hashcat의 리소스 소비를 세밀하게 조정하여, 순수한 크래킹 속도와 전반적인 시스템 응답성 간의 균형을 맞출 수 있습니다. 이는 다른 작업에도 사용되는 시스템에서 장시간 실행되는 크래킹 작업을 수행해야 할 때 매우 중요합니다.

다음 내용을 배우게 됩니다:

  • hashcat에서 사용 가능한 다양한 워크로드 프로파일 이해하기.
  • 기본 성능 벤치마크 설정하기.
  • "Low Power" 및 "High Performance" 프로파일 테스트 및 비교하기.
  • 이 지식을 실제 크래킹 시나리오에 적용하기.

-w 를 사용한 워크로드 프로파일의 목적 이해하기

이 단계에서는 hashcat-w (또는 --workload-profile) 옵션에 대해 알아봅니다. 이 옵션은 hashcat의 내부 워크로드 관리를 제어하며, CPU 및 GPU 에 가해지는 부하에 영향을 미칩니다.

주요 프로파일은 네 가지입니다:

  • -w 1 (Low Power): 리소스 사용량을 최소화합니다. 시스템은 매우 반응성이 좋지만, 크래킹 속도는 상당히 감소합니다. 워크스테이션에서 백그라운드로 실행할 때 이상적입니다.
  • -w 2 (Default): 시스템을 합리적으로 사용할 수 있도록 유지하면서 좋은 성능을 제공하는 균형 잡힌 프로파일입니다.
  • -w 3 (High Performance): 더 많은 시스템 리소스를 사용하여 크래킹 속도를 극대화합니다. 시스템이 느려질 수 있습니다.
  • -w 4 (Nightmare): 전용으로 고도로 튜닝된 크래킹 장비를 위한 것입니다. 하드웨어를 절대적인 한계까지 밀어붙이며, 일반적인 시스템에서는 시스템 불안정 또는 충돌을 유발할 수 있습니다.

먼저 이 특정 옵션에 대한 도움말 정보를 살펴보겠습니다. 이는 명령줄 도구의 기능을 이해하는 좋은 습관입니다.

터미널에서 다음 명령을 실행하여 hashcat의 도움말 메뉴에서 워크로드 프로파일 옵션에 대한 설명을 찾으십시오:

hashcat --help | grep "workload-profile"

-w 옵션과 사용 가능한 수준을 설명하는 출력이 표시되어야 합니다.

-w, --workload-profile   |      ## | Enable a specific workload profile. See below.      | -w 3

Workload Profiles:
==================

  ## | Profile | Performance | Memory | Unattended | Base Tuning
 -+-----------+-------------+--------+------------+-------------
  1 | Low-Power |      10 % |  1/4   |     No     | -n 1 -u 1024
  2 | Default   |      90 % |  1/2   |     No     | -n 8 -u 256
  3 | High-Perf |     100 % |  Full  |     No     | -n 64 -u 64
  4 | Nightmare |     100 % |  Full  |     Yes    | -n 512 -u 32

이는 다양한 프로파일을 확인하고 성능 및 시스템 튜닝에 미치는 영향에 대한 힌트를 제공합니다.

기준선 설정을 위한 벤치마크 실행하기

이 단계에서는 성능 기준선을 설정합니다. 기준선은 비교를 위한 참조 지점으로 사용할 수 있는 표준 측정값입니다. 기본 설정 ( -w 2와 동일) 으로 hashcat의 내장 벤치마크 모드를 실행할 것입니다.

벤치마크 모드 (-b) 는 hashcat이 입력 해시 파일 없이 다양한 해싱 알고리즘에 대한 성능을 측정할 수 있도록 합니다. 모드 번호 0 (-m 0) 으로 지정된 MD5 알고리즘을 특별히 테스트할 것입니다.

MD5 에 대한 벤치마크를 시작하려면 다음 명령을 실행하십시오:

hashcat -b -m 0

hashcat이 시작되고 MD5 해시 유형에 대한 시스템 성능을 테스트합니다. 출력에 주의 깊게 주의를 기울이십시오. 잠시 후 결과 테이블이 표시됩니다. Speed 열에 관심이 있습니다.

hashcat (v6.2.6) starting in benchmark mode

...

Hashtype: 0 - MD5

Speed.#1.........:  299.4 MH/s (46.38ms) @ Accel:128 Loops:256 Thr:64 Vec:1

...

참고: 보이는 속도 (예: 299.4 MH/s) 는 가상 머신의 리소스에 따라 달라집니다. 중요한 것은 이 숫자를 마음속으로 기록해 두는 것입니다. 이것이 기본 워크로드 프로파일에서의 기준선 성능입니다.

-w 1 을 사용하여 저전력 프로파일 테스트하기

이 단계에서는 "저전력" 워크로드 프로파일을 테스트합니다. 이름에서 알 수 있듯이 이 프로파일은 시스템 리소스에 부담을 주지 않도록 설계되었습니다. 컴퓨터를 다른 작업에 사용하는 능력을 방해하지 않고 hashcat을 장기간 실행해야 할 때 이상적인 선택입니다.

이전 단계와 동일한 벤치마크를 실행하지만, 이번에는 -w 1 플래그를 추가하여 저전력 프로파일을 명시적으로 선택합니다.

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

hashcat -b -m 0 -w 1

다시 한번, hashcat은 MD5 알고리즘에 대한 벤치마크를 실행합니다. 출력을 관찰하고 Speed 값을 찾으십시오.

hashcat (v6.2.6) starting in benchmark mode

...

Hashtype: 0 - MD5

Speed.#1.........:   37.8 MH/s (48.13ms) @ Accel:1 Loops:1024 Thr:1 Vec:1

...

이 새로운 속도를 2 단계에서 기록한 기준선과 비교하십시오. 속도가 상당히 낮아진 것을 알 수 있습니다. 이는 성능을 희생하여 시스템 반응성을 향상시키는 절충점을 보여줍니다.

-w 3 을 사용하여 고성능 프로파일 테스트하기

이 단계에서는 "고성능" 워크로드 프로파일을 테스트합니다. 이 프로파일은 저전력 프로파일과 반대되는 역할을 합니다. 즉, hashcat이 최대 크래킹 속도를 달성하기 위해 가능한 한 많은 시스템 리소스를 사용하도록 지시합니다. 이는 성능이 유일한 우선순위인 전용 머신에서 사용할 프로파일입니다.

이번에는 -w 3 플래그를 사용하여 벤치마크를 다시 실행해 보겠습니다.

아래 명령을 실행하십시오:

hashcat -b -m 0 -w 3

hashcat은 고성능 설정을 사용하여 MD5 벤치마크를 수행합니다. 출력에서 Speed 값을 확인하십시오.

hashcat (v6.2.6) starting in benchmark mode

...

Hashtype: 0 - MD5

Speed.#1.........:  315.1 MH/s (43.80ms) @ Accel:64 Loops:64 Thr:64 Vec:1

...

이 속도를 기준선 (2 단계) 및 저전력 결과 (3 단계) 와 비교하십시오. 지금까지 가장 빠른 속도이며, 기본 프로파일보다 더 빠를 가능성이 높습니다. 이는 -w 3이 시스템 응답성보다 속도를 성공적으로 우선시함을 확인시켜 줍니다.

성능 및 시스템 응답성 비교

이 마지막 단계에서는 지금까지의 결과를 종합하여 실제 (간단하지만) 크래킹 작업에 적용합니다.

지금까지 다음과 같은 관계를 관찰했습니다:

  • 속도 (-w 1) < 속도 (기본값) < 속도 (-w 3)

이는 워크로드 프로파일이 관리하는 절충점을 명확하게 보여줍니다. 이제 고성능 프로파일을 사용하여 실험 초반에 준비된 샘플 해시를 크래킹해 보겠습니다. ~/project 디렉토리에는 해시 파일 sample.hash와 사전 파일 wordlist.txt가 포함되어 있습니다.

다음 명령을 사용합니다:

  • -m 0: MD5 해시 유형을 지정합니다.
  • -a 0: 직접 사전 공격을 선택합니다.
  • sample.hash: 크래킹할 해시가 포함된 파일입니다.
  • wordlist.txt: 가능한 비밀번호가 포함된 파일입니다.
  • -w 3: 가능한 한 빨리 결과를 얻기 위한 고성능 프로파일입니다.

명령을 실행하여 크래킹 프로세스를 시작하십시오:

hashcat -m 0 -a 0 sample.hash wordlist.txt -w 3

비밀번호가 작은 사전 파일에 포함되어 있으므로 hashcat은 거의 즉시 이를 찾을 것입니다. 출력에는 크래킹된 해시와 해당 비밀번호가 표시됩니다.

...
Dictionary cache built:
* Filename..: wordlist.txt
* Passwords.: 4
* Bytes.....: 29
* Keyspace..: 4

81d38d4b393528b4c444097c69141559:labex

Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 81d38d4b393528b4c444097c69141559
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:   268.2 MH/s (0.01ms) @ Accel:64 Loops:64 Thr:64 Vec:1
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4/4 (100.00%)
Rejected.........: 0/4 (0.00%)
Restore.Point....: 3/4 (75.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> labex
Hardware.Mon.#1..: Temp: 48c Util: 98% Core:1800MHz Mem:3500MHz Bus:16

Started: ...
Stopped: ...

핵심 줄은 81d38d4b393528b4c444097c69141559:labex이며, 원본 해시와 복구된 비밀번호인 labex를 보여줍니다. 워크로드 프로파일을 성공적으로 사용하여 크래킹 작업을 최적화했습니다.

요약

이 실험을 완료하신 것을 축하드립니다! hashcat의 워크로드 프로파일을 사용하여 성능과 시스템 리소스를 관리하는 방법을 성공적으로 배우셨습니다.

이 실험에서 다음을 수행했습니다:

  • -w 옵션의 목적과 다양한 프로파일 (-w 1, -w 2, -w 3) 을 배웠습니다.
  • 벤치마크 모드 (-b) 를 사용하여 기준선을 설정하고 다양한 프로파일에서의 성능을 측정했습니다.
  • 크래킹 속도와 시스템 응답성 간의 직접적인 절충점을 관찰했습니다.
  • 고성능 프로파일을 실제 비밀번호 크래킹 작업에 적용했습니다.

도구를 조정하는 방법을 이해하는 것은 모든 기술 전문가에게 핵심적인 기술입니다. 이제 이 지식을 바탕으로 전용 머신에서의 최대 속도가 필요하든 개인 워크스테이션에서의 조용한 백그라운드 작업이 필요하든 어떤 상황에서도 적절한 hashcat 설정을 선택할 수 있습니다.