Convert Figma logo to code with AI

Mebus logocupp

Common User Passwords Profiler (CUPP)

4,408
1,153
4,408
58

Top Related Projects

56,766

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.

1,899

CeWL is a Custom Word List Generator

Version 2 is live! Wordlists sorted by probability originally created for password generation and testing - make sure your passwords aren't popular!

Password cracking rules for Hashcat based on statistics and industry patterns

Mentalist is a graphical tool for custom wordlist generation. It utilizes common human paradigms for constructing passwords and can output the full wordlist as well as rules compatible with Hashcat and John the Ripper.

Quick Overview

CUPP (Common User Passwords Profiler) is an open-source tool for creating custom wordlists for password cracking. It generates potential passwords based on personal information and common password patterns, aiding in security assessments and penetration testing.

Pros

  • Customizable password generation based on user input
  • Includes pre-built wordlists and common password patterns
  • Supports multiple languages and character sets
  • Lightweight and easy to use

Cons

  • Can be misused for malicious purposes
  • Generated wordlists may be large and require significant storage
  • Effectiveness depends on the quality of input information
  • May not cover all possible password variations

Getting Started

  1. Clone the repository:

    git clone https://github.com/Mebus/cupp.git
    
  2. Navigate to the CUPP directory:

    cd cupp
    
  3. Run CUPP:

    python3 cupp.py -i
    
  4. Follow the prompts to enter personal information and generate a custom wordlist.

  5. Alternatively, use command-line options for specific functions:

    python3 cupp.py -h  # Display help
    python3 cupp.py -l  # Download pre-built wordlists
    python3 cupp.py -a  # Parse existing wordlist and apply common password patterns
    

Note: CUPP is a tool for security professionals and should only be used for ethical purposes with proper authorization.

Competitor Comparisons

56,766

SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.

Pros of SecLists

  • Comprehensive collection of multiple types of lists for security testing
  • Regularly updated with community contributions
  • Widely used and recognized in the security industry

Cons of SecLists

  • Large repository size may be overwhelming for beginners
  • Requires manual filtering to find relevant lists for specific use cases
  • Not focused on a single specific task like password generation

Code Comparison

SecLists (example from a wordlist):

123456
password
12345678
qwerty
123456789

CUPP (example output):

john1990
john1990!
John1990
John1990!
j0hn1990

Summary

SecLists is a comprehensive collection of security-related lists, while CUPP is a specific tool for generating custom wordlists. SecLists offers a broader range of resources but may require more effort to navigate, whereas CUPP provides a more focused solution for creating targeted password lists based on user input.

1,899

CeWL is a Custom Word List Generator

Pros of CeWL

  • Specialized in generating custom wordlists from web content
  • Supports spider depth and minimum word length options
  • Can handle various output formats (plain text, grepable)

Cons of CeWL

  • Limited to web-based content for wordlist generation
  • Requires more setup and dependencies compared to CUPP
  • Less focused on personal information-based password generation

Code Comparison

CeWL (Ruby):

def parse_options
  options = OpenStruct.new
  options.verbose = false
  options.debug = false
  options.offsite = false
  options.write = false
  options.ua = "Ruby/#{RUBY_VERSION}"
  # ... (additional options)
end

CUPP (Python):

def interactive():
    print_status("Insert the information about the victim to make a dictionary")
    print_status("If you don't know all the info, just hit enter when asked! ;)\n")

    # We need some information first
    profile = {}
    profile["name"] = input("> First Name: ").lower()
    profile["surname"] = input("> Surname: ").lower()
    profile["nick"] = input("> Nickname: ").lower()
    # ... (additional profile inputs)

The code snippets highlight the different approaches: CeWL focuses on command-line options for web scraping, while CUPP emphasizes interactive user input for personal information-based password generation.

Version 2 is live! Wordlists sorted by probability originally created for password generation and testing - make sure your passwords aren't popular!

Pros of Probable-Wordlists

  • Extensive collection of pre-generated wordlists
  • Regularly updated with new and relevant password combinations
  • Includes real-world leaked passwords for more accurate penetration testing

Cons of Probable-Wordlists

  • Large file sizes can be resource-intensive
  • Less customizable than CUPP's dynamic generation approach
  • May include outdated or irrelevant passwords in some lists

Code Comparison

CUPP allows for custom wordlist generation based on user input:

def interactive():
    print_logo()
    print("\n[+] Insert the information about the victim to make a dictionary")
    print("[+] If you don't know all the info, just hit enter when asked \n")
    # ... (user input collection)
    generate_wordlist_from_profile(profile)

Probable-Wordlists provides pre-generated lists that can be directly used:

# Example usage of a wordlist from Probable-Wordlists
hashcat -a 0 -m 0 hashes.txt Real-Passwords/Top95Thousand-probable.txt

While CUPP focuses on generating personalized wordlists, Probable-Wordlists offers ready-to-use collections for various scenarios. CUPP is more flexible for targeted attacks, while Probable-Wordlists excels in broader password cracking attempts with its comprehensive lists.

Password cracking rules for Hashcat based on statistics and industry patterns

Pros of Hob0Rules

  • Focuses on password rule generation, offering a more specialized tool for password cracking
  • Provides a comprehensive set of rules for various password patterns and transformations
  • Regularly updated with new rules and improvements

Cons of Hob0Rules

  • Limited to rule generation, lacking the interactive profile creation feature of CUPP
  • Requires more technical knowledge to use effectively compared to CUPP's user-friendly interface
  • Does not generate wordlists directly, unlike CUPP's ability to create custom wordlists

Code Comparison

CUPP example:

def interactive():
    print_logo()
    print("\n[+] Insert the information about the victim to make a dictionary")
    print("[+] If you don't know all the info, just hit enter when asked! ;)\n")
    # ... (user input collection)

Hob0Rules example:

# No direct code comparison available as Hob0Rules primarily consists of rule files
# Example rule from Hob0Rules:
# $1 $3 $7 $!
# This rule appends 1, 3, 7, and ! to the end of a password

The code comparison is limited due to the different nature of the two projects. CUPP is a Python script for interactive wordlist generation, while Hob0Rules primarily consists of rule files for password cracking tools.

Mentalist is a graphical tool for custom wordlist generation. It utilizes common human paradigms for constructing passwords and can output the full wordlist as well as rules compatible with Hashcat and John the Ripper.

Pros of mentalist

  • More advanced and flexible wordlist generation capabilities
  • Includes a graphical user interface for easier use
  • Supports multiple output formats and customizable rules

Cons of mentalist

  • Requires more setup and dependencies
  • May be overkill for simple password list generation tasks
  • Less frequently updated compared to cupp

Code comparison

mentalist:

def generate_wordlist(self):
    wordlist = []
    for rule in self.rules:
        wordlist.extend(rule.apply(self.base_words))
    return wordlist

cupp:

def generate(self):
    for word in self.words:
        for i in range(self.min_length, self.max_length + 1):
            yield word[:i]

Summary

mentalist offers more advanced features and a GUI, making it suitable for complex wordlist generation tasks. However, it requires more setup and may be excessive for simple use cases. cupp is simpler and more frequently updated, but lacks some of the advanced capabilities of mentalist. The code comparison shows that mentalist uses a rule-based approach for wordlist generation, while cupp focuses on simple word truncation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

CUPP - Common User Passwords Profiler

Build Status Coverage Status Codacy Badge Rawsec's CyberSecurity Inventory

About

The most common form of authentication is the combination of a username and a password or passphrase. If both match values stored within a locally stored table, the user is authenticated for a connection. Password strength is a measure of the difficulty involved in guessing or breaking the password through cryptographic techniques or library-based automated testing of alternate values.

A weak password might be very short or only use alphanumberic characters, making decryption simple. A weak password can also be one that is easily guessed by someone profiling the user, such as a birthday, nickname, address, name of a pet or relative, or a common word such as God, love, money or password.

That is why CUPP was born, and it can be used in situations like legal penetration tests or forensic crime investigations.

Requirements

You need Python 3 to run CUPP.

Quick start

$ python3 cupp.py -h

Options

Usage: cupp.py [OPTIONS]

    -h      this menu

    -i      Interactive questions for user password profiling

    -w      Use this option to profile existing dictionary,
            or WyD.pl output to make some pwnsauce :)

    -l      Download huge wordlists from repository

    -a      Parse default usernames and passwords directly from Alecto DB.
            Project Alecto uses purified databases of Phenoelit and CIRT which where merged and enhanced.

    -v      Version of the program

Configuration

CUPP has configuration file cupp.cfg with instructions.

Example (Fast forwarded)

cupp-example

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

See './LICENSE' for more information.

Github import

This project was imported into https://github.com/Mebus/cupp by Mebus from:
http://www.remote-exploit.org/content/cupp-3.0.tar.gz
http://www.remote-exploit.org/articles/misc_research__amp_code/index.html
to encourage further development of the tool.

Original author

Muris Kurgas aka j0rgan
j0rgan@remote-exploit.org
http://www.remote-exploit.org
http://www.azuzi.me

Contributors