تخطَّ إلى المحتوى

changeme

changeme is a lightweight, Python-based default credential scanner designed for security professionals and penetration testers. It systematically probes network services for default and factory-reset passwords, helping identify commonly overlooked weak credentials in enterprise environments.

# Clone the repository
git clone https://github.com/ztgrace/changeme.git
cd changeme

# Install dependencies
pip install -r requirements.txt
python changeme.py --help
# Ubuntu/Debian
sudo apt-get install changeme

# macOS (Homebrew)
brew install changeme

# Python pip
pip install changeme
# Scan a single host for all default credentials
python changeme.py -s 192.168.1.100

# Scan a network range
python changeme.py -s 192.168.1.0/24

# Scan with verbose output
python changeme.py -s 192.168.1.100 -v

# Scan with timeout specification
python changeme.py -s 192.168.1.100 --timeout 5
# Scan only HTTP services
python changeme.py -s 192.168.1.100 --protocol http

# Scan only SSH services
python changeme.py -s 192.168.1.100 --protocol ssh

# Scan only database services
python changeme.py -s 192.168.1.100 --protocol mysql

# Scan multiple specific protocols
python changeme.py -s 192.168.1.100 --protocol http --protocol ssh --protocol ftp
# Specify custom port for scanning
python changeme.py -s 192.168.1.100 -p 8080

# Scan multiple ports
python changeme.py -s 192.168.1.100 -p 22,80,443,3389

# Scan port range
python changeme.py -s 192.168.1.100 -p 1-65535
CommandDescription
-s, --scanTarget host or IP address to scan
-p, --portSpecific port or port range to scan
--protocolFilter scan by protocol (http, ssh, ftp, mysql, etc.)
-v, --verboseEnable verbose output for detailed results
--timeoutConnection timeout in seconds (default: 10)
--threadsNumber of concurrent threads for scanning
-o, --outputSave results to file (JSON, CSV, or text)
--list-protocolsDisplay all supported protocols
--updateUpdate the credential database
-h, --helpDisplay help message
# HTTP/HTTPS with common admin paths
python changeme.py -s 192.168.1.100 --protocol http

# Apache Tomcat
python changeme.py -s 192.168.1.100 --protocol tomcat

# Jenkins
python changeme.py -s 192.168.1.100 --protocol jenkins

# Joomla CMS
python changeme.py -s 192.168.1.100 --protocol joomla

# WordPress (basic HTTP auth)
python changeme.py -s 192.168.1.100 --protocol wordpress
# SSH/Telnet services
python changeme.py -s 192.168.1.100 --protocol ssh

# RDP (Remote Desktop)
python changeme.py -s 192.168.1.100 --protocol rdp

# VNC (Virtual Network Computing)
python changeme.py -s 192.168.1.100 --protocol vnc

# FTP (File Transfer Protocol)
python changeme.py -s 192.168.1.100 --protocol ftp

# Telnet
python changeme.py -s 192.168.1.100 --protocol telnet
# MySQL/MariaDB
python changeme.py -s 192.168.1.100 --protocol mysql

# Microsoft SQL Server
python changeme.py -s 192.168.1.100 --protocol mssql

# PostgreSQL
python changeme.py -s 192.168.1.100 --protocol postgresql

# MongoDB
python changeme.py -s 192.168.1.100 --protocol mongodb

# Redis
python changeme.py -s 192.168.1.100 --protocol redis
# SNMP (Simple Network Management Protocol)
python changeme.py -s 192.168.1.100 --protocol snmp

# SMTP (mail servers)
python changeme.py -s 192.168.1.100 --protocol smtp

# DNS services
python changeme.py -s 192.168.1.100 --protocol dns

# LDAP/Active Directory
python changeme.py -s 192.168.1.100 --protocol ldap
# IPMI (Intelligent Platform Management Interface)
python changeme.py -s 192.168.1.100 --protocol ipmi

# SNMP community strings
python changeme.py -s 192.168.1.100 --protocol snmp-community

# Printer services
python changeme.py -s 192.168.1.100 --protocol printer

# Network device management
python changeme.py -s 192.168.1.100 --protocol network-device
# Display results in terminal
python changeme.py -s 192.168.1.100 --output results.txt
# Save results as JSON for further processing
python changeme.py -s 192.168.1.100 --output results.json
# Export as CSV for spreadsheet analysis
python changeme.py -s 192.168.1.100 --output results.csv
# Use 20 concurrent threads for faster scanning
python changeme.py -s 192.168.1.0/24 --threads 20

# Adjust threads based on network capacity
python changeme.py -s 192.168.1.0/24 --threads 10
# Use custom credential file
python changeme.py -s 192.168.1.100 --cred-file custom-creds.txt

# Format of custom credentials file:
# username:password
# root:root
# admin:admin
# test:test
# Update the built-in credential database
python changeme.py --update

# Check for available updates
python changeme.py --check-updates
# Comprehensive scan of entire subnet
python changeme.py -s 192.168.1.0/24 -v --threads 15 --output assessment.json

# Scan and identify all services with default credentials
python changeme.py -s 10.0.0.0/8 --timeout 5 --threads 20
# Identify lateral movement opportunities
python changeme.py -s 192.168.1.100 -v --output lateral-movement.txt

# Check internal service defaults
python changeme.py -s 192.168.50.0/24 --protocol ssh --protocol mysql
# Generate compliance report
python changeme.py -s 192.168.1.0/24 -v --output compliance-report.json

# Target specific protocol categories
python changeme.py -s 192.168.1.0/24 --protocol mysql --protocol postgresql --protocol mongodb
# Configuration file (if using config mode)
~/.changeme/config.ini
/etc/changeme/config.ini

# Credential database
~/.changeme/defaults.db
/usr/share/changeme/defaults.db
# Set timeout globally
export CHANGEME_TIMEOUT=15

# Set number of threads
export CHANGEME_THREADS=25

# Set output directory
export CHANGEME_OUTDIR=/tmp/changeme-results
# Fast scan (shorter timeout, may miss some services)
python changeme.py -s 192.168.1.100 --timeout 2 --threads 30

# Thorough scan (longer timeout)
python changeme.py -s 192.168.1.100 --timeout 15 --threads 10

# Balanced scan
python changeme.py -s 192.168.1.100 --timeout 5 --threads 15
# Reduce detection risk (slower scan)
python changeme.py -s 192.168.1.100 --threads 3 --delay 2

# Fast enumeration
python changeme.py -s 192.168.1.100 --threads 30
ScenarioCommand
Quick subnet scanpython changeme.py -s 10.0.0.0/24 --timeout 3
Database default checkpython changeme.py -s 192.168.1.100 --protocol mysql --protocol postgresql
Find all web defaultspython changeme.py -s 192.168.1.0/24 --protocol http -v
Compliance auditpython changeme.py -s 192.168.0.0/16 --output audit.json
Check specific servicepython changeme.py -s 192.168.1.100 -p 22 --protocol ssh
  • Scope first: Verify network scope authorization before scanning
  • Gradual rollout: Start with small ranges before scanning large networks
  • Timing: Run scans during off-peak hours to minimize network impact
  • Documentation: Always save results with -o for compliance records
  • Updates: Regularly update credential database with --update
  • Threading balance: More threads = faster but louder; adjust for stealth needs
  • Protocol filtering: Scanning specific protocols speeds up results significantly
  • Error handling: Use verbose mode to debug connectivity issues
# Increase timeout for slow networks
python changeme.py -s 192.168.1.100 --timeout 30

# Reduce threads to prevent overwhelm
python changeme.py -s 192.168.1.100 --threads 5
# Check protocol support
python changeme.py --list-protocols

# Enable verbose for debugging
python changeme.py -s 192.168.1.100 -v --timeout 10
# Reduce concurrent threads
python changeme.py -s 192.168.1.100 --threads 5

# Add delays between connections
python changeme.py -s 192.168.1.100 --delay 1
# Create detailed JSON report
python changeme.py -s 192.168.1.0/24 -v --output report.json

# Format output for management presentation
python changeme.py -s 192.168.1.0/24 --output report.csv
# Document findings for compliance
python changeme.py -s 192.168.1.0/24 -v --output compliance.txt

# Track remediation
python changeme.py -s 192.168.1.0/24 --timestamp --output followup.json
  • Authorization: Only scan systems you own or have explicit written permission to test
  • Scope documentation: Maintain clear records of scanning authority
  • Reporting timeline: Establish agreed-upon timelines for disclosure and remediation
  • Data handling: Securely store and destroy reports containing credentials
  • Compliance: Align scanning activities with organizational policies and regulations