UNPKG

pentest-mcp

Version:

NOT for educational use: An MCP server for Nmap and John the Ripper, for professional penetration testers. Supports stdio, HTTP, and SSE transports with OAuth 2.1 authentication.

181 lines (144 loc) 5.94 kB
# Hashcat Integration for Pentest-MCP ## Overview Hashcat has been successfully integrated into the pentest-mcp server following the MCP (Model Context Protocol) architecture. This implementation provides a comprehensive interface to hashcat's powerful password cracking capabilities. ## Features - **Full MCP Integration**: Follows all MCP specifications and patterns - **Comprehensive Parameter Support**: Supports all major hashcat options - **Multiple Attack Modes**: Dictionary, brute-force, combination, and hybrid attacks - **User Mode Support**: Educational (student) and professional modes - **Session Management**: Support for resuming attacks and custom potfiles - **GPU Acceleration**: Full support for GPU-accelerated cracking - **Error Handling**: Robust error handling and validation ## Installation Hashcat is now installed and ready to use: ```bash hashcat --version # v6.2.6 ``` ## Tool Definition The `runHashcat` tool supports the following parameters: ### Required Parameters - **hashData**: String containing password hashes (one per line) ### Optional Parameters #### Attack Configuration - **attackMode**: Attack mode (0=Straight, 1=Combination, 3=Brute-force, 6=Hybrid Wordlist+Mask, 7=Hybrid Mask+Wordlist) - **hashType**: Hash type (e.g., 0=MD5, 1000=NTLM, 22000=WPA*01/WPA*02) - **wordlist**: Path to wordlist file for dictionary attacks - **mask**: Mask for brute-force attacks (e.g., '?a?a?a?a?a?a?a?a') #### Performance Options - **optimizedKernels**: Enable optimized kernels (-O) - **workloadProfile**: 1=Low, 2=Default, 3=High, 4=Nightmare - **deviceTypes**: Array of device types (1=CPU, 2=GPU, 3=FPGA) #### Session Management - **session**: Session name for resuming attacks - **restore**: Restore a previous session - **potfilePath**: Path to custom potfile #### Advanced Options - **increment**: Enable incremental mode - **incrementMin/Max**: Password length limits for incremental mode - **rules**: Rules file to apply to wordlist - **runtime**: Abort session after X seconds - **customCharset1-4**: User-defined charsets - **force**: Ignore warnings - **quiet**: Suppress output ## Usage Examples ### 1. Basic MD5 Hash Cracking ```json { "hashData": "5d41402abc4b2a76b9719d911017c592", "hashType": "0", "attackMode": "0", "wordlist": "/tmp/pentest-mcp-wordlists/wordlist_1751076163984.txt", "force": true } ``` ### 2. WPA/WPA2 Hash Cracking ```json { "hashData": "WPA*02*053436be82178367b013f52abb689b40*206d316187cf*8c49621254e6*446176696361*...", "hashType": "22000", "attackMode": "0", "wordlist": "/tmp/pentest-mcp-wordlists/wordlist_1751076163984.txt", "force": true, "workloadProfile": "3" } ``` ### 3. Brute Force Attack ```json { "hashData": "5d41402abc4b2a76b9719d911017c592", "hashType": "0", "attackMode": "3", "mask": "?l?l?l?l?l", "increment": true, "incrementMin": 4, "incrementMax": 8, "force": true } ``` ### 4. Rule-Based Attack ```json { "hashData": "user:$1$salt$hash", "hashType": "500", "attackMode": "0", "wordlist": "/usr/share/wordlists/rockyou.txt", "rules": "/usr/share/hashcat/rules/best64.rule", "optimizedKernels": true } ``` ## Hash Type Reference Common hash types for the `hashType` parameter: | Hash Type | Mode | Description | |-----------|------|-------------| | 0 | MD5 | MD5 | | 100 | SHA1 | SHA1 | | 1000 | NTLM | NTLM | | 1400 | SHA2-256 | SHA2-256 | | 1700 | SHA2-512 | SHA2-512 | | 1800 | sha512crypt | sha512crypt $6$, SHA512 (Unix) | | 3200 | bcrypt | bcrypt $2*$, Blowfish (Unix) | | 22000 | WPA-PBKDF2-PMKID+EAPOL | WPA/WPA2/WPA3-PSK | ## Testing The implementation has been thoroughly tested: ### Test Results - **Installation**: Hashcat v6.2.6 successfully installed - **Basic Functionality**: MD5 hash cracking works (`5d41402abc4b2a76b9719d911017c592:hello`) - **WPA Testing**: Processed 6,191 password variations at 62,300 H/s - **Error Handling**: Proper validation and error reporting - **MCP Integration**: Full compliance with MCP architecture ### Performance Metrics - **Device**: Apple M2 GPU - **Speed**: 62,300 hashes/second (WPA-PBKDF2) - **Wordlist Processing**: 6,191 passwords in <1 second - **Memory Usage**: 351 MB host memory required ## Integration Details ### MCP Architecture Compliance 1. **Tool Registration**: Added to server capabilities 2. **Schema Validation**: Comprehensive Zod schema validation 3. **Error Handling**: Follows MCP error patterns 4. **Logging**: Professional mode logging integration 5. **File Management**: Proper temp file handling 6. **User Modes**: Student vs Professional response formatting ### File Structure - **Function**: `runHashcat()` in `src/index.ts` - **Schema**: `hashcatToolSchema` with comprehensive validation - **Tool Registration**: Added to server.tool() registration - **Capabilities**: Added to server capabilities declaration ## Troubleshooting ### Common Issues 1. **GPU Warnings**: Use `--force` to bypass OpenCL driver warnings on macOS 2. **Wordlist Size**: Small wordlists may not utilize full GPU power 3. **Hash Format**: Ensure hash format matches the specified hash type 4. **Permissions**: Ensure temp directory write permissions ### Debug Tips - Use `force: true` for testing - Check potfile location for results - Verify hash type with hashcat examples - Use smaller test hashes for validation ## Next Steps The hashcat integration is now complete and ready for production use. You can: 1. **Test with your WPA hash**: Use the exact parameters shown above 2. **Generate better wordlists**: Create targeted wordlists for your specific targets 3. **Explore advanced features**: Rule-based attacks, hybrid modes, custom charsets 4. **Performance tuning**: Adjust workload profiles and device settings The implementation provides enterprise-grade password cracking capabilities while maintaining the educational and professional modes of the pentest-mcp framework.