en-US/PoshJohn.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" schema="maml" xmlns="http://msh">
  <command:command>
    <command:details>
      <command:name>Export-JohnPasswordHash</command:name>
      <maml:description>
        <maml:para>Extracts password hashes from password-protected files for use with John the Ripper.</maml:para>
      </maml:description>
      <command:verb>Export</command:verb>
      <command:noun>JohnPasswordHash</command:noun>
    </command:details>
    <maml:description>
      <maml:para>`Export-JohnPasswordHash` extracts password hashes from supported password-protected files (PDF and ZIP) and writes them to a file in a format compatible with John the Ripper.</maml:para>
      <maml:para>The cmdlet supports appending to existing hash files and outputs a HashResult object for further processing or cracking.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Export-JohnPasswordHash</maml:name>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>Append</maml:name>
          <maml:description>
            <maml:para>If specified, appends the extracted hashes to the output file instead of overwriting it.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>InputPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to the password-protected file from which to extract password hashes.</maml:para>
            <maml:para>Supported file formats include PDF and ZIP supported by John the Ripper.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>OutputPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to the output file where extracted hashes will be written.</maml:para>
            <maml:para>The file will be created if it does not exist.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>Append</maml:name>
        <maml:description>
          <maml:para>If specified, appends the extracted hashes to the output file instead of overwriting it.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>InputPath</maml:name>
        <maml:description>
          <maml:para>Specifies the path to the password-protected file from which to extract password hashes.</maml:para>
          <maml:para>Supported file formats include PDF and ZIP supported by John the Ripper.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>OutputPath</maml:name>
        <maml:description>
          <maml:para>Specifies the path to the output file where extracted hashes will be written.</maml:para>
          <maml:para>The file will be created if it does not exist.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <dev:name>PoshJohn.Models.HashResult</dev:name>
        </dev:type>
        <maml:description>
          <maml:para>An object containing the extracted password hashes and associated metadata.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This cmdlet requires John the Ripper and the appropriate 2john utilities to be available on your system. Supported file types depend on the available 2john scripts.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1: Extract hashes from a ZIP file ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Export-JohnPasswordHash -InputPath 'C:\files\protected.zip' -OutputPath 'C:\hashes\hash.txt'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Extracts password hashes from the specified ZIP file and writes them to the text file.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- Example 2: Extract hashes from a PDF file and append to an existing hash file ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Export-JohnPasswordHash -InputPath 'C:\files\protected.pdf' -OutputPath 'C:\hashes\hash.txt' -Append
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Extracts password hashes from the specified PDF file and appends them to the hash file.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri>https://github.com/ArmaanMcleod/PoshJohn/blob/main/docs/en-US/Export-JohnPasswordHash.md</command:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri>https://github.com/ArmaanMcleod/PoshJohn/blob/main/docs/en-US/Export-JohnPasswordHash.md</command:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command>
    <command:details>
      <command:name>Invoke-JohnPasswordCrack</command:name>
      <maml:description>
        <maml:para>Attempts to crack password hashes using John the Ripper, supporting both incremental and wordlist attack modes.</maml:para>
      </maml:description>
      <command:verb>Invoke</command:verb>
      <command:noun>JohnPasswordCrack</command:noun>
    </command:details>
    <maml:description>
      <maml:para>`Invoke-JohnPasswordCrack` uses John the Ripper to attempt to recover plaintext passwords from password hash files or objects.</maml:para>
      <maml:para>It supports both incremental (brute-force) and wordlist-based attacks, and can operate on hash files or HashResult objects produced by `Export-JohnPasswordHash`.</maml:para>
      <maml:para>The cmdlet can also refresh the pot file, specify custom output locations, and save unlocked files to a directory.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Invoke-JohnPasswordCrack</maml:name>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>CustomPotPath</maml:name>
          <maml:description>
            <maml:para>Specifies a custom path for the John the Ripper pot file, which stores cracked passwords.</maml:para>
            <maml:para>If not specified, the default pot file is used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>IncrementalMode</maml:name>
          <maml:description>
            <maml:para>Specifies the John the Ripper incremental mode to use for brute-force attacks ("digits", "ascii" etc.).</maml:para>
            <maml:para>Only used in incremental attack parameter sets.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>Accepts a HashResult object (typically from `Export-JohnPasswordHash`) containing hashes to be cracked.</maml:para>
            <maml:para>Enables pipeline support for chaining extraction and cracking.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">PoshJohn.Models.HashResult</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>RefreshPot</maml:name>
          <maml:description>
            <maml:para>Forces John the Ripper to reload the pot file before cracking, ensuring the latest cracked passwords are used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>UnlockedFileDirectoryPath</maml:name>
          <maml:description>
            <maml:para>Specifies a directory where files unlocked by successful password cracks will be saved.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Invoke-JohnPasswordCrack</maml:name>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>CustomPotPath</maml:name>
          <maml:description>
            <maml:para>Specifies a custom path for the John the Ripper pot file, which stores cracked passwords.</maml:para>
            <maml:para>If not specified, the default pot file is used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>Accepts a HashResult object (typically from `Export-JohnPasswordHash`) containing hashes to be cracked.</maml:para>
            <maml:para>Enables pipeline support for chaining extraction and cracking.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">PoshJohn.Models.HashResult</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>RefreshPot</maml:name>
          <maml:description>
            <maml:para>Forces John the Ripper to reload the pot file before cracking, ensuring the latest cracked passwords are used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>UnlockedFileDirectoryPath</maml:name>
          <maml:description>
            <maml:para>Specifies a directory where files unlocked by successful password cracks will be saved.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>WordListPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to a wordlist file to use for dictionary attacks.</maml:para>
            <maml:para>Required for wordlist attack parameter sets.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Invoke-JohnPasswordCrack</maml:name>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>CustomPotPath</maml:name>
          <maml:description>
            <maml:para>Specifies a custom path for the John the Ripper pot file, which stores cracked passwords.</maml:para>
            <maml:para>If not specified, the default pot file is used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>IncrementalMode</maml:name>
          <maml:description>
            <maml:para>Specifies the John the Ripper incremental mode to use for brute-force attacks ("digits", "ascii" etc.).</maml:para>
            <maml:para>Only used in incremental attack parameter sets.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>InputPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to a file containing password hashes to be cracked.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>RefreshPot</maml:name>
          <maml:description>
            <maml:para>Forces John the Ripper to reload the pot file before cracking, ensuring the latest cracked passwords are used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>UnlockedFileDirectoryPath</maml:name>
          <maml:description>
            <maml:para>Specifies a directory where files unlocked by successful password cracks will be saved.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>Invoke-JohnPasswordCrack</maml:name>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>CustomPotPath</maml:name>
          <maml:description>
            <maml:para>Specifies a custom path for the John the Ripper pot file, which stores cracked passwords.</maml:para>
            <maml:para>If not specified, the default pot file is used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>InputPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to a file containing password hashes to be cracked.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>RefreshPot</maml:name>
          <maml:description>
            <maml:para>Forces John the Ripper to reload the pot file before cracking, ensuring the latest cracked passwords are used.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
        </command:parameter>
        <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>UnlockedFileDirectoryPath</maml:name>
          <maml:description>
            <maml:para>Specifies a directory where files unlocked by successful password cracks will be saved.</maml:para>
          </maml:description>
          <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
        <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
          <maml:name>WordListPath</maml:name>
          <maml:description>
            <maml:para>Specifies the path to a wordlist file to use for dictionary attacks.</maml:para>
            <maml:para>Required for wordlist attack parameter sets.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>CustomPotPath</maml:name>
        <maml:description>
          <maml:para>Specifies a custom path for the John the Ripper pot file, which stores cracked passwords.</maml:para>
          <maml:para>If not specified, the default pot file is used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>IncrementalMode</maml:name>
        <maml:description>
          <maml:para>Specifies the John the Ripper incremental mode to use for brute-force attacks ("digits", "ascii" etc.).</maml:para>
          <maml:para>Only used in incremental attack parameter sets.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>Accepts a HashResult object (typically from `Export-JohnPasswordHash`) containing hashes to be cracked.</maml:para>
          <maml:para>Enables pipeline support for chaining extraction and cracking.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">PoshJohn.Models.HashResult</command:parameterValue>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>InputPath</maml:name>
        <maml:description>
          <maml:para>Specifies the path to a file containing password hashes to be cracked.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>RefreshPot</maml:name>
        <maml:description>
          <maml:para>Forces John the Ripper to reload the pot file before cracking, ensuring the latest cracked passwords are used.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="true">System.Management.Automation.SwitchParameter</command:parameterValue>
      </command:parameter>
      <command:parameter required="false" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>UnlockedFileDirectoryPath</maml:name>
        <maml:description>
          <maml:para>Specifies a directory where files unlocked by successful password cracks will be saved.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
      <command:parameter required="true" variableLength="false" globbing="false" pipelineInput="false" position="Named" aliases="none">
        <maml:name>WordListPath</maml:name>
        <maml:description>
          <maml:para>Specifies the path to a wordlist file to use for dictionary attacks.</maml:para>
          <maml:para>Required for wordlist attack parameter sets.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="true">System.String</command:parameterValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <dev:name>PoshJohn.Models.HashResult</dev:name>
        </dev:type>
        <maml:description>
          <maml:para>An object containing password hashes and associated metadata, as produced by Export-JohnPasswordHash.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <dev:name>PoshJohn.Models.PasswordCrackResult</dev:name>
        </dev:type>
        <maml:description>
          <maml:para>An object containing the results of the password cracking operation, including cracked passwords and status information.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This cmdlet requires John the Ripper to be available and properly configured on your system. Some features may depend on the version of John the Ripper in use.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>--------- Example 1: Incremental attack with default mode ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Invoke-JohnPasswordCrack -InputPath 'C:\hashes\hash.txt'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Attempts to crack the hashes in the text file using John the Ripper's default incremental mode without specifying `-IncrementalMode`.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- Example 2: Crack hashes with a wordlist ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Invoke-JohnPasswordCrack -InputPath 'C:\hashes\hash.txt' -WordListPath 'C:\wordlists\rockyou.txt'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Attempts to crack the hashes in the text file using the specified wordlist.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- Example 3: Incremental mode with custom pot file ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Invoke-JohnPasswordCrack -InputPath 'C:\hashes\hash.txt' -IncrementalMode 'ascii' -CustomPotPath 'C:\john\custom.pot'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Runs an incremental attack using the `'ascii'` mode and stores cracked passwords in a custom pot file.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- Example 4: Crack using HashResult object from pipeline ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Export-JohnPasswordHash -InputPath 'C:\files\protected.zip' -OutputPath 'C:\hashes\hash.txt' | Invoke-JohnPasswordCrack -WordListPath 'C:\wordlists\rockyou.txt'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Extracts hashes and immediately attempts to crack them using a wordlist.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
      <command:example>
        <maml:title>--------- Example 5: Save unlocked files to a directory ---------</maml:title>
        <maml:introduction>
          <maml:para>```powershell
Invoke-JohnPasswordCrack -InputPath 'C:\hashes\hash.txt' -WordListPath 'C:\wordlists\rockyou.txt' -UnlockedFileDirectoryPath 'C:\unlocked-files'
```</maml:para>
          <maml:para>&#x80;</maml:para>
          <maml:para>Attempts to crack the hashes in the text file using the specified wordlist and saves any successfully unlocked files to a directory.</maml:para>
        </maml:introduction>
        <dev:code />
        <dev:remarks />
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri>https://github.com/ArmaanMcleod/PoshJohn/blob/main/docs/en-US/Invoke-JohnPasswordCrack.md</command:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>Online Version</maml:linkText>
        <command:uri>https://github.com/ArmaanMcleod/PoshJohn/blob/main/docs/en-US/Invoke-JohnPasswordCrack.md</command:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>