
hate_crack v2.36.1
TrustedSec 팀의 Hashcat을 통한 크래킹 방법론 자동화 도구.
___ ___ __ _________ __
/ | \_____ _/ |_ ____ \_ ___ \____________ ____ | | __
/ ~ \__ \\ __\/ __ \ / \ \/\_ __ \__ \ _/ ___\| |/ /
\ Y // __ \| | \ ___/ \ \____| | \// __ \\ \___| <
\___|_ /(____ /__| \___ >____\______ /|__| (____ /\___ >__|_ \
\/ \/ \/_____/ \/ \/ \/ \/
설치
소스에서 설치하는 것이 유일하게 지원되는 방법입니다. hate_crack은 PyPI에 배포되지 않습니다: pip install hate-crack은 의도적으로 실패하며 여기를 다시 가리키는 0.0.0 플레이스홀더로 해석됩니다. 이 이름은 다른 누군가가 유사한 이름으로 게시하지 못하도록 하기 위해서만 유지됩니다 — packaging/pypi-placeholder/를 참조하세요.
1. hashcat 설치
Hashcat이 설치되어 있고 PATH에서 사용 가능해야 합니다:
Ubuntu/Kali:
sudo apt-get install -y hashcat
macOS (Homebrew):
brew install hashcat
또는 https://hashcat.net/hashcat/ 에서 미리 빌드된 바이너리를 다운로드하고 config.json의 hcatPath를 해당 위치로 설정하세요.
2. hate_crack 다운로드
서브모듈과 함께 클론하세요 (hashcat-utils, princeprocessor, pcfg_cracker, Corporate_Masks, 그리고 선택적으로 omen에 필요):
git clone --recurse-submodules https://github.com/trustedsec/hate_crack.git
cd hate_crack
하위 모듈 없이 클론했다면, 초기화하세요:
git submodule update --init --recursive
그런 다음 필요하면 설정을 사용자 지정하십시오. hate_crack은 두 개의 설정 파일을 사용하며, 각각 서로 다른 설정 집합을 담당합니다:
config.json— 워드리스트 경로, 마스크, 규칙, 튜닝, potfile, hashcat 경로, 후보 제한, 알림 토글, CLI 기본 설정 (35개 설정)..env— 서드파티 통합 설정만: Hashview 및 Hashmob 자격 증명, Pushover 자격 증명, Ollama, 그리고 pipal (14개 설정). git에 추적되지 않으며, 모드0600으로 생성됩니다.
이 구분선이 여기에 있는 데에는 한 가지 이유가 있습니다: .env는 비밀을 담을 수 있는 파일이기 때문입니다. 서드파티 서비스의 자격 증명과 설정은 추적되지 않는 0600 파일에 들어가고, hate_crack이 로컬에서 수행하는 모든 것은 config.json에 남으며, 이 파일은 공유하고, diff하고, 자신의 노트에 체크인해도 안전합니다. 이것이 또한 Pushover 자격 증명은 .env에 있는 반면 Pushover on/off 토글은 config.json에 있는 이유입니다 — 토글은 로컬 기본 설정이지 비밀이 아닙니다.
각 키는 정확히 하나의 집에만 속합니다. 다른 파일에 배치된 키는 무시되며, hate_crack은 해당 키가 속한 파일 이름을 명시한 경고를 출력합니다. 어떤 키든 해당 환경 변수를 export하여 단일 실행에 대해 재정의할 수 있습니다. 대부분의 사용자는 기본 경로가 즉시 작동하므로 이 단계를 건너뛸 수 있습니다.
config.json은 영구적이며 일급입니다 — 더 이상 사용되지 않으며 제거 일정도 없습니다. 통합 설정만 이동했습니다.
단일 config.json에서 업그레이드하시나요? hate_crack이 첫 실행 시 자동으로 마이그레이션합니다: 통합 설정이 새 0600 .env로 복사된 다음, 두 파일이 모두 해당 설정을 주장하지 않도록 config.json에서 제거됩니다. 어떤 키가 이동했는지 (값은 절대 아님) 출력하고, 원본을 건드리기 전에 config.json.pre-split.bak으로 저장합니다. config.json의 다른 모든 것은 키 순서를 포함하여 정확히 그대로 유지됩니다.
첫 실행: hate_crack이 두 파일을 모두 생성하므로 할 일이 없습니다. 대신 .env를 수동으로 설정하려면 추적되는 템플릿을 복사하십시오:
cp .env.example .env
chmod 600 .env
.env.example은 커밋되어 있으며 모든 자격 증명 키가 비어 있는 상태로 제공됩니다. .env 자체는 절대 커밋되어서는 안 됩니다 — 이는 gitignore 처리되며, 일반적인 백업 표기법도 함께 무시되고, hate_crack은 항상 모드 0600(소유자 읽기/쓰기 전용)으로 이를 생성합니다. .env.example은 스키마에서 생성됩니다. hate_crack/config_schema.py를 변경한 후 uv run python -m hate_crack.config_writer로 재생성하세요.
3. 의존성 및 hate_crack 설치
가장 쉬운 방법은 make(또는 make install)를 실행하는 것으로, 이는 OS를 자동 감지하고 다음을 설치합니다:
- 외부 의존성 (p7zip, transmission-daemon / transmission-remote)
- 서브모듈 빌드 (hashcat-utils, princeprocessor, pcfg_cracker, 선택적으로 omen) 및 데이터 전용 Corporate_Masks 마스크 세트 체크아웃
- uv를 통한 Python 의존성 및
~/.local/bin/hate_crack에 CLI 심(shim) 생성
make
이것은 멱등적입니다 - 이미 설치된 도구는 건너뜁니다. 강제로 깨끗하게 재설치하려면:
make reinstall
또는 의존성을 수동으로 설치하세요:
외부 의존성
특정 다운로드/추출 흐름에 필요합니다:
7z/7za(p7zip) —.7z아카이브를 추출하는 데 사용됩니다.transmission-daemon/transmission-remote— Weakpass 토렌트를 다운로드하는 데 사용됩니다.
수동 설치 명령:
Ubuntu/Kali:
sudo apt-get update
sudo apt-get install -y p7zip-full transmission-daemon
macOS (Homebrew):
brew install p7zip transmission-cli # provides transmission-daemon and transmission-remote
그런 다음 Python 종속성과 CLI shim을 설치하세요:
uv sync
mkdir -p ~/.local/bin
printf '#!/usr/bin/env bash\nset -euo pipefail\nexec uv run --directory %s python -m hate_crack "$@"\n' "$(pwd)" > ~/.local/bin/hate_crack
chmod +x ~/.local/bin/hate_crack
프로젝트 구조
핵심 로직은 이제 hate_crack/ 아래의 모듈로 분리되어 있습니다:
hate_crack/cli.py: argparse 헬퍼 및 구성 재정의.hate_crack/api.py: Hashview, Weakpass, Hashmob 통합 (다운로드/메뉴/헬퍼).hate_crack/attacks.py: 메뉴 공격 핸들러.hate_crack/corpus_stats.py: LLM에 코퍼스를 설명하는 데 사용되는 전체 코퍼스 비밀번호 통계.hate_crack/plaintext.py: 코퍼스 라인에서 비밀번호를 복구합니다 (해시 접두사 제거,$HEX[...]디코딩). LLM 모드, corpus_stats, rulegen에서 공유됩니다.hate_crack/llm.py: Atomic Agents를 통한 구조화된 (JSON) LLM 후보 생성.hate_crack/menu.py: 선택적 화살표 키 탐색을 포함한 공유 메뉴 렌더러.hate_crack/noninteractive.py: 스크립트 공격 하위 명령용 디스패처.hate_crack/notify/: 알림 패키지 (Pushover 백엔드, 크랙별 테일러).hate_crack/username_detect.py: hashcat의--username사용 여부를 결정하기 위해username:hash입력 파일을 감지합니다.hate_crack/formatting.py,hate_crack/progress.py: 출력 포맷팅 및 진행 표시 헬퍼.hate_crack/main.py: 메인 CLI 구현.
최상위 hate_crack.py는 여전히 메인 진입점이며 이 모듈들을 조정합니다.
참고 및 감사
이 프로젝트는 여러 외부 프로젝트와 서비스에 의존하며 영감을 받았습니다. 감사합니다:
- Hashview (http://github.com/hashview/)
- Weakpass (https://weakpass.com)
- Hashmob (https://hashmob.net)
사용법
make로 설치한 후, 어디서든 hate_crack을 실행하세요:
hate_crack
# or with arguments:
hate_crack <hash_file> <hash_type> [options]
또는 uv를 통해 실행:
uv run hate_crack.py <hash_file> <hash_type>
도구로 실행 (권장)
저장소 루트에서 make를 사용하여 설치하세요 - 이는 서브모듈을 빌드하고 에셋을 번들링합니다:
cd /path/to/hate_crack
make
hate_crack
make install 명령은 ~/.local/bin/hate_crack에 bash shim을 생성하며, 이는 저장소 디렉터리에서 실행되므로 현재 작업 디렉터리와 관계없이 config와 assets를 항상 찾을 수 있습니다.
Config는 다음 위치에서도 검색됩니다:
- 저장소 루트 및 패키지 디렉터리
~/.hate_crack
참고: config.json의 hcatPath는 hashcat 바이너리 위치 전용입니다(hashcat이 PATH에 있으면 선택 사항). Hate_crack assets(hashcat-utils, princeprocessor, pcfg_cracker, Corporate_Masks, omen)는 저장소 디렉터리에서 로드되며 make install에 의해 자동으로 번들됩니다.
스크립트로 실행
스크립트는 uv shebang을 사용합니다. 실행 가능하게 만들고 실행하세요:
chmod +x hate_crack.py
./hate_crack.py
Python을 직접 사용할 수도 있습니다:
python hate_crack.py
비대화형 / 스크립트 사용
자동화를 위해 메뉴를 건너뛰고 단일 공격을 직접 실행할 수 있습니다. 공격 이름이 첫 번째 인수이고, 그 뒤에 해시 파일과 hashcat 해시 유형이 옵니다. 전처리 프롬프트(컴퓨터 계정 필터링, LM 우선 브루트 포스, 중복 계정 중복 제거)는 이 모드에서 기본값을 자동으로 수락합니다. 프로세스는 성공 시 0, 오류(해시 파일 누락, 숫자가 아닌 해시 유형, 워드리스트 누락 또는 알 수 없는 규칙 파일 이름) 시 0이 아닌 값을 반환하며 종료됩니다.
# Quick crack: one wordlist + optional rule(s) from the rules directory
hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule
# Chain two rules in a single run
hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule+d3ad0ne.rule
# Run two rules as two separate passes
hate_crack quick hashes.txt 1000 --wordlist rockyou.txt --rules best64.rule d3ad0ne.rule
# Canned dictionary methodology (uses your configured wordlists)
hate_crack dict hashes.txt 1000
# Brute force lengths 1-8
hate_crack brute hashes.txt 1000 --min 1 --max 8
# Top-mask attack targeting ~4 hours
hate_crack topmask hashes.txt 1000 --target-time 4
메뉴의 대부분의 공격은 동일한 방식으로 사용할 수 있습니다. 이들은 해시 파일과 해시 유형 외에는 아무것도 필요로 하지 않습니다:
hate_crack fingerprint hashes.txt 1000
hate_crack pathwell hashes.txt 1000
hate_crack prince hashes.txt 1000
hate_crack pcfg hashes.txt 1000
hate_crack princeling hashes.txt 1000
hate_crack smartmask hashes.txt 1000
hate_crack corporate hashes.txt 1000
hate_crack combinator hashes.txt 1000 # configured wordlists
hate_crack hybrid hashes.txt 1000 # configured wordlists
각 항목은 메뉴 항목에서 요청하는 설정도 함께 받습니다:
# Fingerprint, tuned: escalate to 24-character fragments and cap the keyspace
hate_crack fingerprint hashes.txt 1000 --max-expander-len 24 \
--run-hybrid-on-expanded --keyspace-limit 50000000000