해시 함수는 일종의 함수의 총칭입니다. 이러한 유형의 함수의 입력은 임의의 이진 데이터이고 출력은 고정 길이의 이진 데이터입니다. 이러한 유형의 함수는 다음과 같은 특성을 가지고 있습니다.
단방향성: 입력에서 출력을 계산하는 것은 간단하고 빠르지만 출력에서 입력을 추론하는 것은 수학적으로 불가능합니다.
충돌 제약: 동일한 출력을 갖는 두 개의 서로 다른 입력을 찾는 것은 매우 어렵습니다.
이러한 특성을 만족하는 함수를 해시 함수라고 부를 수 있습니다. 특정 데이터를 해시 함수의 입력으로 사용하고 출력을 계산합니다. 이 출력을 데이터의 해시 값이라고 부르는 것이 관례입니다.
해시 함수의 주요 기능 중 하나는 비밀번호를 안전하게 저장하는 것입니다. 비밀번호를 직접 저장하지 않고(즉, 일반 텍스트 비밀번호를 저장하지 않음) 비밀번호의 해시 값을 저장하는 것입니다. 입력된 비밀번호를 다시 계산하면 됩니다. 비밀번호의 해시 값을 저장된 비밀번호의 해시 값과 비교하면 비밀번호가 올바른지 알 수 있습니다. 해시 함수의 단방향성과 충돌 제약 조건의 특성으로 인해 공격자는 비밀번호의 해시 값을 얻더라도 비밀번호 자체를 알기 어렵다.
공격자가 비밀번호의 해시값을 얻었는데, 정말 비밀번호 자체를 알 방법이 없을까요? 물론 그렇지 않습니다. 비밀번호의 hash 값으로 직접 비밀번호를 계산하는 것은 수학적으로 실행 가능하지 않지만, 우리는 hash 함수가 입력에서 계산하여 출력을 얻는 것이 간단하고 빠르다는 것을 알고 있습니다. 최악의 것은 시도해 볼 수 있습니다. 인간이 설정할 수 있는 비밀번호는 그것들뿐입니다. 하나하나 시도해 보면 운이 좋으면 시도해 볼 수 있습니다. 해시 값에 해당하는 입력을 얻으려고 지속적으로 시도하는 작업을 블래스팅이라고 합니다.
이런 생각을 바탕으로 해시캣이 탄생했는데, 해시를 폭파시키는 것이 아주 간단한 일이라는 것을 증명하기 위해 해시캣이 탄생했다고 한다. hashcat은 세계에서 가장 빠른 해시 폭파 도구라고 주장하며 GPU와 FGPA도 지원합니다.
hashcat은 빠른 속도뿐만 아니라 200개 이상의 해시 함수를 전문적으로 지원합니다. 다음과 같은 명령을 사용하십시오.
hashcat --help
hashcat이 지원하는 모든 해시 함수의 목록을 볼 수 있습니다. 너무 많아서 여기에 게시하지 않겠습니다.
해시캣은 기본적으로 칼리에 설치되어 있어 직접 사용할 수 있다. 그런데 제 Kali는 VirtualBox에 설치되어 있는데 항상 가상 기회가 느린 것 같아서 물리적 호스트에서 hashcat을 사용하고 싶습니다. 먼저 hashchat 공식 홈페이지에서 hashcat을 다운로드하세요. 현재 최신 버전은 2017.04.05에 출시된 v3.5.0입니다. 업데이트 날짜를 보면 hashchat이 활력이 넘치는 것을 알 수 있습니다. 컴파일의 번거로움을 없애고 바이너리 패키지를 직접 다운로드하면 2.7M에 불과하며, 툭하면 수십 G의 게임에 비하면 매우 작다.
다운로드가 완료된 후 hashcat을 압축을 풀면 다음과 같은 파일이 표시됩니다.
32비트와 64비트에서 linux 및 windows의 실행 파일입니다. 컴퓨터 상황에 따라 그 중 하나를 선택하세요. 제가 선택한 것은 hashcat64.bin 입니다. 아름다움을 위해 ~/.bashrc 파일에 한 줄을 추가합니다.
alias hashcat=' hashcat64.bin의 경로 '
를 저장한 후 가상 단말기를 다시 열어 ~/.bashrc 파일이 효력을 발휘하도록 합니다. 이렇게 하면 아래 그림과 같이 디렉토리를 바꾸지 않고 보기 흉한 "64.bin"을 입력하지 않고 hashcat 명령어를 직접 입력하면 됩니다.
자, 이제 hashcat을 사용하여 다양한 해시를 폭파할 수 있습니다.
md5는 가장 유명하고 널리 사용되는 해시 함수 중 하나일 것입니다. 먼저 Python을 사용하여 블러스팅을 위한 여러 md5 값을 생성합니다. 코드는 다음과 같습니다.
import hashlib 비밀번호 = ['123123', '채권007', 'xxxxxx', '*H@&(NT*@BR#^'] for password in passwords: md5 = 해시리브.md5() md5.update(비밀번호) print md5.hexdigest()
위의 코드는 각각 4개의 문자열의 해시 값을 계산합니다. 출력 결과는 다음과 같습니다.
4297f44b13955235245b2497399d7a93 이 게시물을 즐겨찾기로 설정 7월 20 아빠3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
출력 결과를 파일 md5.hash에 저장합니다. 한 줄에 하나의 hahs 값이 있습니다. 그런 다음 hashcat을 사용하여 이러한 해시 값을 폭파합니다. 명령은 다음과 같습니다.
hashcat -w 3 -a 0 -m 0 --remove -o md5.out md5.hash wordlist.dic
파라미터 -w는 작업 모드를 지정하는 데 사용됩니다. 아래 표에 표시된 것처럼 총 4가지 유형이 있습니다.
| N | 성능 | 런타임 | 전력 소비 | 데스크톱 영향 |
|---|---|---|---|---|
| 1 | Low | 2 ms | Low | Minimal |
| 2 | Default | 12 ms | Economic | Noticeable |
| 3 | High | 96 ms | High | Unresponsive |
| 4 | Nightmare | 480 ms | Insane | Headless |
매개변수 -a는 공격 모드를 지정하는 데 사용됩니다. 0의 의미는 직접적이고 연속적입니다. 즉, 암호 사전을 사용하여 폭파합니다. 다음 표와 같이 -a의 값은 다섯 가지가 있습니다.
| N | 모드 |
|---|---|
| 0 | 직선 |
| 1 | 조합 |
| 3 | Brute-force |
| 6 | 하이브리드 워드리스트 + 마스크 |
| 7 | 하이브리드 마스크 + 워드리스트 |
-m 폭파할 해시를 지정하는 데 사용됩니다. 값의 해시 함수, 0은 해시 함수가 md5임을 나타내고 다른 값은 다음 표에 나와 있습니다.
| N | Name | Category |
|---|---|---|
| 0 | MD5 | Raw Hash |
| 300 | MySQL4.1/MySQL5 | 데이터베이스 서버 |
| 1000 | NTLM | 운영 체제 |
| 1800 | sha512crypt $6$, SHA512 (Unix) | 운영 체제 |
| 2611 | vBulletin < v3.8.5 | Forums, CMS, E-Commerce, Frameworks |
이 테이블은 너무 길어서 여기서는 이 기사에서 다루는 몇 가지 해시 함수만 보여드리겠습니다. 매개변수 – 도움말을 사용하면 모두 볼 수 있습니다.
매개변수 – 제거의 의미는 해시 값이 성공적으로 블러스팅되면 해당 값이 md5.hash에서 제거된다는 것입니다.
매개변수 -o 뒤에 블러스팅 결과가 저장된 위치를 나타내는 파일 이름이 따릅니다.
의 마지막 두 매개변수는 md5입니다. 해시와 워드리스트. dic는 각각 폭파될 해시 값과 비밀번호 사전입니다. 해시 값과 비밀번호 사전은 한 줄에 하나씩 있습니다. md5.hash의 내용은 Python에서 계산되었습니다. 적절한 비밀번호 사전이 없는 경우
wget -O 명령을 사용할 수 있습니다. wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
아마도 어떤 실행 환경이 부족할 수 있으므로 설치하세요. 총 다음과 같은 것을 설치했습니다.
sudo apt-get install gcc make p7zip-full git lsb-core wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz 타르 -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz cd opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 sudo ./install.sh
인터넷 속도가 좋으면 잠시 후에 괜찮을 것입니다. 첫 번째 명령은 오류를 보고합니다.
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic 링크 /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 은 기호 링크
가 아닌 것 같지만 아무것도 영향을 주지 않으니 무시하세요. 이것들을 설치한 후, 다시 Enter를 눌러 원래 오류를 보고했던 명령을 실행하면, 과연 다시 오류를 보고하지 않았고, 순식간에 실행이 완료되었다. 명령이 실행된 후 md5.hash 및 md5.out 파일의 내용을 확인하십시오. md5.hash에 해시가 하나만 남아 있는 것을 확인하십시오. md5.out에는 세 개의 해시 값과 원래 값이 아래 그림과 같습니다.
Windows 로그인 비밀번호의 해시 값은 SAM 파일에 저장됩니다. SAM은 "security account manager"의 약자입니다. 일반적으로
C:\Windows\system32\config\SAM
에 있습니다. SAM 파일은 Windows에 의해 보호되며 직접 읽을 수 없습니다. SAMInside와 같은 도구가 필요합니다. Windows 7 가상 시스템을 찾아 hashcat이라는 새로운 관리자 사용자를 만들고 암호를 설정하고 Windows 7에서 SAMInside를 다운로드하고 압축을 해제한 후 관리자 권한으로 실행한 다음 다음 그림과 같이 File-> Import Local Users vis Scheduler를 클릭합니다.
이후 SAMInside가 "응답하지 않음"일 수 있지만 중요하지 않습니다. 몇 초 동안 인내심을 가지고 기다리면 SAMInside가 기대에 부응합니다. 다음 그림과 같이 우리가 원하는 해시를 읽습니다.
암호를 폭파하려는 사용자 "hashcat"을 선택하고 Ctrl+5를 눌러 NT-hash를 복사한 다음 hashcat이 설치된 Ubuntu로 돌아가서 다음 명령을 사용하여 복사된 해시 값을 파일 win7.hash에 저장합니다.
echo<101x96>hashcat -w 3 -a 0 -m 1000 --remove -o win7.out win7.hash wordlist.dic잠시 후 실행이 완료되었습니다. win7.out 파일을 확인하십시오. 사용자 hashcat의 로그인 비밀번호는 rush2112입니다. :
werner@Yasser:~/hashcat$ cat win7.out 356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112SAM 파일을 가져오는 방법은 "Windows 해시 내보내는 방법 시리즈 1"을 참조하십시오. 다음은 가상 머신 Windows 7에서 SAM 파일을 읽는 과정을 기록합니다.
물리적 시스템인 경우 Win PE로 시스템을 부팅하고 디스크에 있는 SAM 파일을 읽으면 됩니다. 내 것은 가상 시스템입니다. 가상 디스크 파일을 파일 시스템에 마운트하면 가상 디스크의 파일을 읽을 수 있습니다. 제가 사용하는 가상 머신은 VirtualBox인데, vdfuse 명령어를 사용하면 이 일을 할 수 있습니다. vdfuse가 없는 경우 먼저 virtualbox-fuse를 설치해야 합니다.
sudo apt-get install virtualbox-fusevirtualbox-fuse 설치 패키지를 다운로드하여 직접 설치할 수도 있습니다.
설치가 완료되면 vdfuse 명령을 사용하여 가상 디스크 매핑 및 마운트를 시작할 수 있습니다.
mkdir -p ~/vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~/vmdisk/이 단계를 수행한 후 ~/vmdisk 디렉토리를 확인하십시오. 세 가지 파일이 있습니다. EntireDisk, Partition1 및 Partition2, 새 디렉토리:
mkdir -p ~/vmdisk_en mkdir -p ~/vmdisk_1 mkdir -p ~/vmdisk_2mount 명령을 사용하여 EntireDisk, Partition1, Partition2의 세 파일을 각각 마운트합니다.
sudo mount ~/vmdisk/EntireDisk ~/vmdisk_en sudo 마운트 ~/vmdisk/Partition1 ~/vmdisk_1 sudo mount ~/vmdisk/Partition2 ~/vmdisk_2전체 디스크 마운트가 실패했고, 파티션 1의 내용이 제가 원하는 것이 아니었고, 파티션 2의 파일은 제가 원하는 Windows 7 가상 머신의 파일이었습니다. vmdisk_fs에서 대상 SAM 파일을 복사하십시오:
cp ~/vmdisk_2/Windows/System32/config/SAM ./그런데 시스템 파일도 복사하십시오:
cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./SAM 파일의 내용을 확인하십시오. 아래 그림과 같이 일반 텍스트 파일이 아닙니다. 실제로 Windows 스타일입니다.
음, SAM 파일을 성공적으로 열었지만 여전히 해시를 얻지 못했습니다. 다음에는 어떻게 해야 합니까? SAM 파일 내용은 도구를 사용하여만 구문 분석할 수 있습니다. SAM 파일과 시스템 파일을 모두 Kali에 넣고 명령을 실행합니다.
samdump2 -o sam.hash SYSTEM sam그런 다음 sam.hash를 확인하십시오. 각 사용자 로그인 비밀번호의 해시 값도 볼 수 있습니다. sam.hash 파일의 각 행은 사용자이며, 각 행의 형식은 다음과 같습니다.
사용자 이름: RID: LM-hash value: NTLM-hash value이 형식은 samdump2 명령 출력 형식이며 "Windows에서의 해시 암호 형식"이 아닙니다.
3. 리눅스 로그인 비밀번호 해시 폭파
우선 리눅스 시스템을 실행하는 컴퓨터가 있어야 합니다. 가상 머신이면 됩니다. 그런 다음 다음 명령을 실행하여 새 사용자를 추가하고 블러스팅을 위해 암호를 설정합니다.
sudo adduser justforfun
리눅스에서 사용자 로그인 암호의 해시 값은 /etc/shadow 파일에 저장됩니다(참고: /etc/passwd가 아닙니다). 다음 명령을 사용하여 새 사용자의 로그인 암호의 해시 값을 확인합니다.
test@test-VirtualBox:~$ sudo tail -n 1 /etc/shadow justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
tail 명령은 파일의 마지막 몇 줄을 읽는 데 사용됩니다. 기본값은 10행이며 매개 변수 -n으로 줄 수를 지정합니다. 우리가 방금 새로 만든 사용자는 자연히 마지막 줄에 있으므로 tail -n 1로 읽는다. 읽은 결과는 ":"로 분할된 데이터입니다. 첫 번째 부분은 사용자 이름 "justforfun"이고 두 번째 부분은 비밀번호의 해시 값입니다. 다른 부분은 이 기사에서 신경 쓸 필요가 없습니다. 두 번째 부분에 초점을 맞추어 살펴보겠습니다.
에서 시작하는 "$6$"는 사용된 해시 함수의 타입이 SHA-512임을 의미하며, "$6$"를 제외하고 리눅스에서 "$1$"는 MD5, "$2a$"는 Blowfish, "$2y$"는 Blowfish(correct handling of 8-bit chars), "$5$"를 의미한다. SHA-256을 가리키며, 자세한 내용은 Wikipedia:passwd를 참조하세요. 또한 /etc/login.defs 파일에서도 해시 알고리즘을 설명합니다.
"$6$" 부터 다음 "$" 이전의 부분 "0fokwg59"는 소금(SALT)입니다. 소금이란 무엇입니까? Baidu는 " md5 소금 값 은 무엇입니까?"라는 질문에 대한 CNB2009의 대답이 간단하고 이해하기 쉽다는 것을 알고 있습니다.
는 간단히 말해서 동일한 비밀번호가 서로 다른 해시 값을 가지도록 하는 방법입니다. 즉, 염화입니다. MD5 자체는 되돌릴 수 없지만, 현재 인터넷에는 역쿼리를 지원하는 많은 데이터베이스가 있다. 만약 사용자 비밀번호 데이터베이스가 실수로 유출되면, 해커는 역쿼리를 통해 사용자 비밀번호를 얻거나, 데이터베이스에 자주 나타나는 해시 코드(즉, 많은 사람들이 사용하는)를 폭력적으로 해독할 수 있다(왜냐하면 일반적으로 약한 비밀번호이기 때문이다). 소금 값은 비밀번호 해시 과정에서 추가된 추가 랜덤 값입니다. 예를 들어 내 id는 123456이고 비밀번호는 데이터베이스에 저장된 경우 "123456/123456/ 또 다른 멍청한 비밀번호가 123456인 경우에도 여전히 다른 해시 값을 구성할 수 있고 성공적으로 검증할 수 있다. 이때 제 id는 암호를 복잡하게 해시하기 위해 소금 값으로 사용됩니다. 그래서요. . 소금값의 역할은 데이터베이스 유출로 인한 손실을 줄이는 것이다. 만약 당신의 RP가 매우 좋고 내 비밀번호가 123456이라고 맞추었다면, 나는 당신을 막을 수 없다.
이 답변은 md5를 대상으로 하며, 다른 해시 함수도 마찬가지이다. 소금 다음 부분이 해시 값입니다. 이제 두 번째 부분을 전체 파일 linux.hash로 복사합니다. linux.hash의 내용은 다음과 같습니다.
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0다음 명령을 사용하여 linux 로그인 암호 해시를 폭파합니다.
hashcat -w 3 -a 0 -m 1800 --remove -o linux.out linux.hash wordlist.dic잠시 후, 폭파가 완료되었습니다. 결과를 확인하십시오:
werner@Yasser:~/hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321발파가 성공했음을 알 수 있습니다.
4. Mysql 로그인 비밀번호 해시 폭파
먼저 Mysql이 있어야 합니다. 우연히 내 가상 머신에 있어요. Baidu는 Mysql 로그인 비밀번호의 해시 값이 user.MYD 파일에 저장되어 있음을 알고 있습니다. user.MYD 파일은 어디에 있나요? 저도 모르겠어요. 그냥 찾아보세요.
test@test-VirtualBox:~$ sudo find / -name user.MYD /var/lib/mysql/mysql/user.MYD는 /var/lib/mysql/mysql/user.MYD에서 발견되었습니다. 파일 내용을 확인하세요:
sudo cat /var/lib/mysql/mysql/user.MYD
일반 텍스트 파일은 아닙니다. 여전히 사용자 루트 로그인 비밀번호의 해시 값이 다음과 같다는 것을 알 수 있습니다.
6B825255FB466413D6B1B724644E23428C94BBCB이 값을 mysql.hash 파일에 저장하고 다음 명령을 사용하여 mysql 로그인 비밀번호 해시를 폭파합니다.
{}
잠시 후, 폭파가 완료되었습니다. 결과를 확인하십시오:
werner@Yasser:~/hashcat$ cat mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb:viper발파가 성공했음을 알 수 있습니다.
5. Discuz를 폭파하세요! 포럼 비밀번호
Discuz! 우리나라에서 널리 사용되는 유명한 php 포럼 프로그램입니다. 이제 Discuz를 폭파합시다! 사용자 암호의 해시 값입니다. 먼저 hash 값을 찾아야 하는데 어디서 찾을 수 있을까요? 물론 Discuz! 데이터베이스에 있습니다.
디스쿠즈 가능! 데이터베이스는 어디에 있습니까? 이렇게 해결했습니다. 공식 웹사이트에서 최신 버전의 Discuz를 다운로드하세요! 소스 코드를 실행하고 설치하면 Discuz를 얻을 수 있습니다! 데이터베이스
Discuz! 기본 데이터베이스 이름은 ultrax이며 pre_ucenter_members 테이블은 로그인 비밀번호의 해시 값을 저장합니다. "pre_"는 설치 중에 변경할 수 있는 기본 접두사입니다. "ucenter_members"는 변경되지 않습니다. 다음 sql 문을 사용하여 로그인 비밀번호의 해시 값을 쿼리합니다.
select password,salt from pre_ucenter_members;
![]()
해시 값과 소금 값을 파일에 저장합니다.
echo 69bcba126b93c6f397983629a0f70553:c13fd9 > discuz.hash해시 값과 소금 값은 같은 행에 있으며 ":"로 분할됩니다. 마지막으로 다음 명령을 사용하여 Discuz 로그인 암호 해시를 폭파합니다.
hashcat -w 3 -a 0 -m 2611 --remove -o discuz.out discuz.hash wordlist.dic잠시 후 폭파 완료, 결과 확인:
werner@Yasser:~/hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553:c13fd9:winter발파에 성공한 것을 알 수 있다.
6. 대형 사전 테스트
지금까지 우리는 500단어에 불과한 작은 사전을 사용하여 매번 잠시 만에 각종 해시를 순조롭게 폭파했습니다. 이상하지 않나요? 이것은 내가 해시캣 사용 연습을 위해 일부러 사전에 약한 비밀번호를 설정했기 때문이다. 그렇지 않으면 터지지 않으면 기분이 나쁘지 않을까. 실제로 이렇게 행운이 있을 수 없다. 우리는 그렇게 약하지 않은 비밀번호의 md5 값을 아무렇게나 계산하고, 큰 사전으로 폭파하여 한편으로는 운을 시험하고, 다른 한편으로는 hashcat이 얼마나 빨리 움직일 수 있는지 살펴보자.
먼저 md5 값을 계산합니다.
import hashlib md5 = 해시리브.md5() md5.update("werner123456!!!") print md5.hexdigest()출력은 다음과 같습니다.
b17133f9abff287ed0546c1af2b171f7그런 다음 9.4억 암호가 포함된 10.5G 크기의 사전을 선택하여 폭파를 시작합니다.
hashcat -w 3 -a 0 -m 0 --remove -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic해시 값이 하나만 있는 경우 파일에 저장할 필요가 없습니다. 잠자리에 들기 전에 폭파가 시작되었고, 다음날 일어나서 결과를 보았는데,
시작: 수 7월 26 22:55:27 2017 Stopped: Wed Jul 26 23:02:28 20177분밖에 걸리지 않았습니다! 7시간 걸릴 줄 알았는데 예상보다 60배 빠르더라구요! 비밀번호 사전에 "werner123456!!!"가 없는 것 같아서 해시 값을 성공적으로 폭파하지 못한 것이 조금 아쉽습니다. 100G의 비밀번호 사전을 준비해야 할 것 같은데, 이렇게 큰 사전은 저장하고 옮기는 것이 매우 불편한데, 다른 방법은 없을까요? 물론이죠. 공격 패턴을 기억하시나요? 우리는 줄곧 'Straight' 패턴을 사용해 왔습니다. 다음으로 다른 몇 가지 패턴을 살펴보겠습니다.
7. 요약
해시를 폭파하기 위해 hashcat을 사용하는 첫 번째 단계는 해시를 찾는 것입니다. 시스템과 소프트웨어에 따라 해시가 저장되는 위치가 다르므로 해시 값을 정확하게 찾아야 합니다. 두 번째는 해시 유형을 올바르게 판단하고, hashcat이 이러한 해시를 지원하는지 여부를 결정하고, 올바른 -m 매개변수를 선택하는 것입니다. 그렇지 않으면 성공하는 것이 거의 불가능합니다. 셋째는 비밀번호 사전이 좋아야 한다. 최종적으로 폭파에 성공할 수 있을지는 역시 사전을 보아야 한다. 비밀번호 사전은 클수록 좋지는 않지만, 어차피 더 큰 것이 좋다. hashcat도 속도로 유명하다. 큰 사전은 hashcat에 문제가 되지 않는다. 다음은 더 나은 사전입니다. 이전 누출 게이트 + 일반적으로 사용되는 약한 비밀번호 사전 모음. 7Z, 압축 해제 비밀번호는 anywlan입니다. 또한, 작은 사전을 많이 수집하면 작은 사전을 병합, 정렬, 중복 제거하여 hashcat 폭파를 용이하게 할 수 있는 큰 사전을 얻을 수 있습니다. 작은 사전이 같은 디렉토리에 있는 경우 하나의 명령을 사용하여 처리할 수 있습니다.
cat * | sort | uniq > Merge.dic작은 사전이 카테고리별로 정리되어 여러 계층 디렉토리에 분포된다면 어떨까요? 분명히 cat 명령만 사용하면 안 되지만 실제로는 작은 사전들이 모두 MyDictionary 디렉토리에 저장되어 있다고 가정하면 명령은 다음과 같이 작성할 수 있습니다.
find ./MyDictionary -type f -exec cat {} \; | 정렬 | 유니크 > 병합.dic