name: hashcat
category: password
description: World's fastest password cracker with GPU acceleration.
keywords:
  - password
  - crack
  - hash
  - gpu
  - brute
  - dictionary

parameters:
  hash_file:
    type: string
    required: true
    description: File containing hashes

  attack_mode:
    type: enum
    flag: "-a"
    options:
      - value: "0"
        description: "Dictionary attack"
      - value: "1"
        description: "Combination attack"
      - value: "3"
        description: "Brute-force/Mask attack"
      - value: "6"
        description: "Hybrid wordlist + mask"
      - value: "7"
        description: "Hybrid mask + wordlist"
    default: "0"
    description: Attack mode

  hash_type:
    type: integer
    flag: "-m"
    description: "Hash type (0=MD5, 100=SHA1, 1000=NTLM, 1800=sha512crypt, etc.)"

  wordlist:
    type: string
    description: Wordlist file (for modes 0, 1, 6, 7)

  mask:
    type: string
    description: "Mask pattern for brute-force (?a=all, ?d=digit, ?l=lower)"

  rules:
    type: string
    flag: "-r"
    description: Rules file

  increment:
    type: boolean
    flag: "--increment"
    description: Enable increment mode for mask

  increment_min:
    type: integer
    flag: "--increment-min"
    description: Minimum mask length

  increment_max:
    type: integer
    flag: "--increment-max"
    description: Maximum mask length

  username:
    type: boolean
    flag: "--username"
    description: Ignore username in hash file

  show:
    type: boolean
    flag: "--show"
    description: Show cracked passwords

  left:
    type: boolean
    flag: "--left"
    description: Show uncracked hashes

  output:
    type: string
    flag: "-o"
    description: Output file

  output_format:
    type: integer
    flag: "--outfile-format"
    description: Output format (1-15)

  potfile_disable:
    type: boolean
    flag: "--potfile-disable"
    description: Disable potfile

  session:
    type: string
    flag: "--session"
    description: Session name

  restore:
    type: boolean
    flag: "--restore"
    description: Restore session

  workload:
    type: integer
    flag: "-w"
    description: "Workload profile (1=low, 2=default, 3=high, 4=nightmare)"

  force:
    type: boolean
    flag: "--force"
    description: Ignore warnings

  status:
    type: boolean
    flag: "--status"
    description: Enable status screen

  benchmark:
    type: boolean
    flag: "-b"
    description: Run benchmark

requires_root: false
timeout: 0
interactive: true

command_template: "hashcat -m {hash_type} -a {attack_mode} {hash_file} {wordlist?} {mask?} {rules?} {increment?} {username?} {output?} {workload?} {force?} {show?}"

examples:
  - "hashcat -m 0 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt"
  - "hashcat -m 1000 -a 3 hashes.txt ?a?a?a?a?a?a"
  - "hashcat -m 1800 -a 0 shadow.txt wordlist.txt -r rules/best64.rule"
  - "hashcat -m 5600 -a 0 ntlmv2.txt wordlist.txt"
  - "hashcat --show -m 0 hashes.txt"
  - "hashcat -b"

notes: |
  Common hash types:
  - 0: MD5
  - 100: SHA1
  - 1400: SHA256
  - 1700: SHA512
  - 1000: NTLM
  - 1800: sha512crypt ($6$)
  - 3200: bcrypt
  - 5500: NetNTLMv1
  - 5600: NetNTLMv2
  - 13100: Kerberos TGS-REP (Kerberoast)
  - 18200: Kerberos AS-REP (ASREProast)

  Mask placeholders:
  - ?l: a-z
  - ?u: A-Z
  - ?d: 0-9
  - ?s: Special chars
  - ?a: All printable

  Workload profiles:
  - 1: Low (responsive desktop)
  - 2: Default
  - 3: High (dedicated cracking)
  - 4: Nightmare (may freeze system)

  Custom charsets:
  -1 ?l?d = lowercase + digits
  hashcat -m 0 -a 3 hashes.txt -1 ?l?d ?1?1?1?1?1
