Hashcat 도구를 사용하여 암호를 해독하는 방법은 무엇입니까?

게시 됨: 2021-12-14

윤리적 해킹 및 침투 테스트에서 암호 크래킹은 시스템 또는 서버에 대한 액세스 권한을 얻는 데 중요합니다.

시스템과 데이터베이스에서 암호는 일반 텍스트 형식으로 거의 저장되지 않습니다.

비밀번호는 항상 해싱되어 데이터베이스에 저장되며, 해쉬값은 검증 과정에서 비교됩니다.

사용된 암호화에 따라 시스템마다 비밀번호 해시를 다른 방식으로 저장합니다. 해시가 있는 경우 모든 암호를 쉽게 해독할 수 있습니다.

그리고 이 기사에서는 편리하고 뛰어난 Hashcat 명령줄 도구를 사용하여 암호 해시를 해독하는 방법을 살펴보겠습니다.

시작하겠습니다.

하지만 그 전에…

해시 함수란 무엇입니까?

해싱은 해시 함수라고 하는 수학 함수를 사용하여 일반 입력 텍스트를 고정된 크기의 텍스트 문자열로 변환하는 프로세스입니다. 길이에 관계없이 모든 텍스트는 알고리즘을 사용하여 정수와 알파벳의 임의 조합으로 변환할 수 있습니다.

해싱

  • 입력은 해시될 메시지를 나타냅니다.
  • 해시 함수는 문자열을 해시 값으로 변환하는 MD5 및 SHA-256과 같은 암호화 알고리즘입니다.
  • 그리고 마지막으로 해시 값이 결과입니다.

해시캣이란?

Hashcat은 가장 빠른 비밀번호 복구 도구입니다. 그것은 짧은 시간에 높은 복잡한 암호를 해독하도록 설계되었습니다. 그리고 이 도구는 단어 목록 공격 무차별 대입 공격 모두 가능 합니다 .

Hashcat에는 두 가지 변형이 있습니다. CPU 및 GPU(그래픽 처리 장치) 기반. GPU 기반 도구는 CPU보다 짧은 시간에 해시를 해독할 수 있습니다. GPU 드라이버 요구 사항은 공식 웹사이트에서 확인할 수 있습니다.

특징

  • 무료 및 오픈 소스
  • 200개 이상의 해시 유형 변형을 구현할 수 있습니다.
  • Linux, Windows 및 macOS와 같은 다중 운영 체제를 지원합니다.
  • CPU 및 GPU 지원과 같은 다중 플랫폼을 사용할 수 있습니다.
  • 여러 해시를 동시에 크랙할 수 있습니다.
  • 자동 성능 튜닝과 함께 Hex-salt hex-charset 파일 지원됩니다.
  • 내장된 벤치마킹 시스템을 사용할 수 있습니다.
  • 오버레이를 사용하여 분산 크래킹 네트워크를 지원할 수 있습니다.

그리고 그들의 웹사이트에서 다른 기능도 볼 수 있습니다.

해시캣 설치

먼저 Linux 시스템이 최신 프로그램과 도구로 최신 상태인지 확인하십시오.

이를 위해 터미널을 열고 다음을 입력합니다.

 $ sudo apt update && sudo apt upgrade

Hashcat은 일반적으로 Kali Linux에 사전 설치되어 있습니다. 비밀번호 크래킹 섹션에서 도구를 찾을 수 있습니다. 그러나 Linux 배포판에 수동으로 설치해야 하는 경우 터미널에 다음 명령을 입력합니다.

 $ sudo apt-get install hashcat

도구 사용

Hashcat을 시작하려면 몇 가지 암호 해시가 필요합니다. 해독할 해시가 없으면 먼저 해시를 생성합니다.

명령줄을 사용하여 해시를 생성하려면 아래 형식을 따르십시오.

 echo -n "input" | algorithm | tr -d "-">>outputfiename

예를 들어, 아래의 md5 알고리즘을 사용하여 일부 단어를 해시로 변환한 것을 볼 수 있습니다.

 ┌──(rootkali)-[/home/writer/Desktop] └─# echo -n "geekflare" | md5sum | tr -d "-">>crackhash.txt echo -n "password123" | md5sum | tr -d "-">>crackhash.txt echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt

그리고 출력은 crackhash.txt 파일에 저장됩니다.

이제 주어진 파일에 저장된 해시를 확인합니다.

 ┌──(rootkali)-[/home/writer/Desktop] └─# cat crackhash.txt 066d45208667198296e0688629e28b14 482c811da5d5b4bcd497ffeaa98491e3 72a2bc267579aae943326d17e14a8048 2192d208d304b75bcd00b29bc8de5024 caae8dd682acb088ed63e2d492fe1e13

보시다시피, 이제 해독할 해시가 있습니다. 원하는 알고리즘을 이용하여 해시를 생성하는 절차입니다.

다음 단계는 Linux 시스템에서 Hashcat 도구를 시작하는 것입니다. Hashcat을 사용하려면 다음 명령을 사용하십시오.

 $ hashcat --help

도구를 실행하는 데 필요한 모든 옵션이 표시됩니다. 터미널에서 모든 공격 및 해시 모드를 찾을 수 있습니다.

명령의 일반적인 형식은 다음과 같습니다.

 $ hashcat -a num -m num hashfile wordlistfile

여기서 'num'은 사용할 특정 공격 및 해시 모드를 나타냅니다. 터미널을 스크롤하면 md4의 경우와 같이 모든 공격 및 해시 모드에 대한 정확한 숫자를 찾을 수 있습니다. 숫자는 0이고 sha256 알고리즘의 경우 숫자는 1740입니다.

내가 사용할 단어 목록은 rockyou 단어 목록입니다. /usr/share/wordlists 경로에서 해당 단어 목록을 쉽게 찾을 수 있습니다.

찾기 명령을 사용하여 해당 단어 목록 경로를 찾을 수도 있습니다.

 ┌──(rootkali)-[/home/writer] └─# locate rockyou.txt

그리고 마지막으로 wordlist 파일을 사용하여 해시를 크랙하려면 다음 명령어를 사용합니다.

 $ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

이 명령을 실행한 후 쉽게 해결할 수 있는 런타임 오류( 토큰 길이 예외 오류 )가 발생할 수 있습니다.

해시캣3

이 문제를 해결하려면 각 해시를 다른 파일에 별도로 저장하십시오. 이 오류는 CPU 또는 GPU 속도가 낮은 경우에 발생합니다. 컴퓨터에 고속 프로세서가 있는 경우 단일 파일 자체로 모든 해시를 동시에 쉽게 해독할 수 있습니다.

따라서 오류 및 모든 것을 수정한 후 결과는 다음과 같습니다.

 ┌──(rootkali)-[/home/writer/Desktop] └─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt hashcat (v6.1.1) starting... OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project] ============================================================================================================================= * Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU Minimum password length supported by kernel: 0 Maximum password length supported by kernel: 256 Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates Rules: 1 Dictionary cache built: * Filename..: rockyou.txt * Passwords.: 14344405 * Bytes.....: 139921671 * Keyspace..: 14344398 * Runtime...: 1 sec 8276b0e763d7c9044d255e025fe0c212: [email protected] Session..........: hashcat Status...........: Cracked Hash.Name........: MD5 Hash.Target......: 8276b0e763d7c9044d255e025fe0c212 Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs) Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs) Guess.Base.......: File (rockyou.txt) Guess.Queue......: 1/1 (100.00%) Speed.#1.........: 1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8 Recovered........: 1/1 (100.00%) Digests Progress.........: 4096/14344398 (0.03%) Rejected.........: 0/4096 (0.00%) Restore.Point....: 0/14344398 (0.00%) Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1 Candidates.#1....: 123456 -> pampam Started: Sun Dec 12 08:06:13 2021 Stopped: Sun Dec 12 08:06:16 2021

위 결과에서 딕셔너리 캐시 내역 이후에 해시가 크랙되어 비밀번호가 노출되었음을 알 수 있습니다.

결론

Hashcat을 사용하여 암호를 해독하는 방법을 더 잘 이해하셨기를 바랍니다.

또한 침투 테스트를 위한 다양한 무차별 대입 도구와 최고의 침투 도구에 대해 알고 싶을 수도 있습니다.