Instacracker-cli Here

# Interactive mode subparsers.add_parser('interactive', help='Interactive mode')

def dictionary_attack(self, target_hash: str, hash_type: str = "md5", wordlist: List[str] = None) -> Tuple[Optional[str], int]: """Perform dictionary attack against hash""" wordlist = wordlist or self.common_passwords self.attempts = 0 self.start_time = time.time() print(f"[*] Starting dictionary attack with len(wordlist) words...") for word in wordlist: self.attempts += 1 if self._check_hash(word, target_hash, hash_type): elapsed = time.time() - self.start_time return word, self.attempts, elapsed elapsed = time.time() - self.start_time return None, self.attempts, elapsed instacracker-cli

args = parser.parse_args()

def generate_wordlist(self, base_words: List[str], output_file: str, add_numbers: bool = True, add_special: bool = True): """Generate custom wordlist with mutations""" words = set(base_words) if add_numbers: for word in base_words: for num in range(1, 100): words.add(f"wordnum") words.add(f"wordnum:02d") if add_special: specials = ["!", "@", "#", "$", "123", "2023"] for word in base_words: for special in specials: words.add(f"wordspecial") words.add(f"specialword") with open(output_file, 'w') as f: for word in sorted(words): f.write(f"word\n") print(f"[+] Generated len(words) words to output_file") return len(words) # Interactive mode subparsers

def hybrid_attack(self, target_hash: str, hash_type: str = "md5", base_words: List[str] = None) -> Tuple[Optional[str], int]: """Hybrid attack combining dictionary with mutations""" base_words = base_words or self.common_passwords mutations = [ lambda x: x + "123", lambda x: x + "1234", lambda x: x + "!", lambda x: x.capitalize(), lambda x: x.upper(), lambda x: x + "2023", lambda x: x + "@", ] self.attempts = 0 self.start_time = time.time() print(f"[*] Starting hybrid attack...") for word in base_words: # Check original self.attempts += 1 if self._check_hash(word, target_hash, hash_type): elapsed = time.time() - self.start_time return word, self.attempts, elapsed # Check mutations for mutation in mutations: mutated = mutation(word) self.attempts += 1 if self._check_hash(mutated, target_hash, hash_type): elapsed = time.time() - self.start_time return mutated, self.attempts, elapsed elapsed = time.time() - self.start_time return None, self.attempts, elapsed # Interactive mode subparsers.add_parser('interactive'

# Generate wordlist command generate_parser = subparsers.add_parser('generate', help='Generate custom wordlist') generate_parser.add_argument('--words', required=True, help='Comma-separated base words') generate_parser.add_argument('--output', required=True, help='Output file') generate_parser.add_argument('--no-numbers', action='store_true', help='Don\'t add numbers') generate_parser.add_argument('--no-special', action='store_true', help='Don\'t add special characters')