Skip to content

ByteCodeSecure/cpanel-checker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

cPanel Credential Checker


⚠️ LEGAL DISCLAIMER / AVISO LEGAL

This tool is intended exclusively for authorized penetration testing, security audits on systems you own or have explicit written permission to test, and educational/research purposes. Unauthorized use against systems you do not own or have permission to test is illegal and may result in criminal prosecution. The author assumes no liability for misuse.


🌐 Language / Idioma


English

Table of Contents

  1. Overview
  2. Features
  3. Requirements
  4. Installation
  5. Input Format
  6. Usage
  7. Output Files
  8. Configuration
  9. How It Works
  10. Troubleshooting

Overview

cPanel Credential Checker is a Python-based multi-threaded tool for security professionals to test cPanel login credentials across multiple domains simultaneously. It categorizes results (valid, 2FA-protected, invalid, errors) and provides real-time progress tracking.

Use cases:

  • Security audits of web hosting accounts you manage
  • Penetration testing engagements with written authorization
  • Verifying credential hygiene on your own infrastructure
  • CTF (Capture The Flag) challenges

Features

  • Multi-threaded: Up to 120 concurrent workers for fast bulk testing
  • 2FA Detection: Identifies accounts protected by two-factor authentication
  • Smart Categorization: Sorts results into 4 categories automatically
  • Wide Port Support: Tests across cPanel ports 2083, 2082, 2086, 2087, 2095, 2096
  • Auto Encoding Detection: Handles input files with any character encoding via chardet
  • Randomized Headers: Rotates User-Agent strings to avoid rate limiting
  • SSL Flexible: Works with self-signed and invalid SSL certificates
  • Rich UI: Live progress bar and colored console output
  • Cross-platform: Windows, Linux, macOS compatible

Requirements

Requirement Version
Python 3.7 or higher
requests >= 2.25.0
colorama >= 0.4.4
chardet >= 4.0.0
rich >= 10.0.0
urllib3 >= 1.26.0

Installation

1. Clone or download the repository

git clone https://github.com/ByteCodeSecure/cpanel-checker.git
cd cpanel-checker

2. Install Python dependencies

pip install requests colorama chardet rich urllib3

Or using a requirements file:

pip install -r requirements.txt

3. Verify installation

python cpnaelchecker.py --help

Input Format

Prepare a plain text file (.txt) where each line contains credentials in one of these formats:

Colon-separated:

domain.com:username:password
subdomain.example.com:admin:mypassword123
192.168.1.10:user@domain.com:SecurePass!

Pipe-separated:

domain.com|username|password
example.com|admin|password123

Rules:

  • One credential set per line
  • Domain can be a hostname, IP address, or URL
  • Username can be a plain username or email format
  • Lines that don't match the format are skipped automatically
  • Blank lines are ignored

Example file (credentials.txt):

example.com:john:password123
mysite.org:admin:admin2024
192.168.0.5|webmaster|P@ssw0rd!
test.hosting.com:user@test.hosting.com:letmein

Usage

Interactive Mode (recommended for beginners)

Simply run the script with no arguments:

python cpnaelchecker.py

You will be prompted to enter:

  1. Path to your credentials file
  2. Number of threads (recommended: 40–80, range: 20–120)
[?] Enter the path to your credentials file: /path/to/credentials.txt
[?] Enter number of threads [40-80 recommended]: 60

Command-line Mode

Pass the credentials file directly as the first argument:

python cpnaelchecker.py credentials.txt

You will still be prompted for the thread count.

Full Example Session

$ python cpnaelchecker.py combo.txt

  ╔═══════════════════════════════════════╗
  ║       cPanel Credential Checker       ║
  ╚═══════════════════════════════════════╝

[*] Loaded 1500 credentials from combo.txt
[*] Detected encoding: utf-8
[?] Threads [20-120, recommended 40-80]: 60
[*] Starting with 60 threads...

[+] VALID    → domain.com:admin:password123
[!] 2FA      → secure.com:user:mypassword
[-] INVALID  → test.com:admin:wrongpass
[~] ERROR    → unreachable.com:admin:pass (timeout)

Progress: ████████████████████ 100% | 1500/1500 | Valid: 12 | 2FA: 3

Output Files

All results are saved in a Results/ subdirectory (created automatically):

File Description
Results/valid.txt Successfully authenticated credentials (no 2FA)
Results/2fa.txt Credentials valid but protected by two-factor authentication
Results/invalid.txt Credentials that failed authentication
Results/error.txt Connections that timed out or encountered errors

Format inside output files:

domain.com:username:password

Configuration

Thread Count Guidelines

Threads Use Case
20–40 Slow/unstable internet connection
40–60 Standard broadband connection
60–80 Fast connection / VPS environment
80–120 High-bandwidth server environment

Higher thread counts increase speed but also increase the risk of IP-based rate limiting or temporary bans by target servers.

Timeout

The default connection timeout is 15 seconds per request. This is hardcoded in the script but can be modified in the cpcheck() function.


How It Works

  1. Load credentials: Reads the input file, auto-detects encoding, parses each line
  2. Build URL: Constructs the cPanel login endpoint (tries common ports: 2083, 2082, etc.)
  3. Send request: POSTs login form data with randomized headers
  4. Analyze response:
    • Checks JSON status field
    • Searches for session/security tokens in the response
    • Scans for 2FA keywords: twofactor, 2fa, tfa, authenticator
    • Detects blocked accounts: cphulk, suspended, locked
  5. Categorize: Writes result to the appropriate output file
  6. Report: Updates console with real-time progress

Troubleshooting

Problem Solution
ModuleNotFoundError Run pip install requests colorama chardet rich urllib3
All results are errors Check internet connection; target server may be unreachable
Script hangs Reduce thread count; some hosts limit concurrent connections
UnicodeDecodeError The tool auto-detects encoding; ensure chardet is installed
Permission denied on Results/ Run with appropriate permissions or change directory

Español

Tabla de Contenidos

  1. Descripción General
  2. Características
  3. Requisitos
  4. Instalación
  5. Formato de Entrada
  6. Uso
  7. Archivos de Salida
  8. Configuración
  9. Cómo Funciona
  10. Solución de Problemas

Descripción General

cPanel Credential Checker es una herramienta Python multi-hilo diseñada para profesionales de seguridad que necesitan probar credenciales de acceso a cPanel en múltiples dominios de forma simultánea. Clasifica los resultados automáticamente (válidos, con 2FA, inválidos, errores) y ofrece seguimiento de progreso en tiempo real.

Casos de uso legítimos:

  • Auditorías de seguridad en cuentas de hosting que administras
  • Pruebas de penetración con autorización escrita previa
  • Verificación de higiene de credenciales en tu propia infraestructura
  • Desafíos CTF (Capture The Flag)

Características

  • Multi-hilo: Hasta 120 workers simultáneos para pruebas masivas rápidas
  • Detección de 2FA: Identifica cuentas protegidas con autenticación de dos factores
  • Categorización inteligente: Ordena resultados en 4 categorías automáticamente
  • Soporte amplio de puertos: Prueba en puertos cPanel 2083, 2082, 2086, 2087, 2095, 2096
  • Detección automática de codificación: Maneja archivos con cualquier codificación mediante chardet
  • Headers aleatorios: Rota User-Agent strings para evitar limitación de velocidad
  • SSL flexible: Funciona con certificados SSL autofirmados o inválidos
  • Interfaz Rich: Barra de progreso en vivo y salida en consola a color
  • Multiplataforma: Compatible con Windows, Linux y macOS

Requisitos

Requisito Versión
Python 3.7 o superior
requests >= 2.25.0
colorama >= 0.4.4
chardet >= 4.0.0
rich >= 10.0.0
urllib3 >= 1.26.0

Instalación

1. Clonar o descargar el repositorio

git clone https://github.com/ByteCodeSecure/cpanel-checker.git
cd cpanel-checker

2. Instalar dependencias de Python

pip install requests colorama chardet rich urllib3

O usando un archivo de requisitos:

pip install -r requirements.txt

3. Verificar la instalación

python cpnaelchecker.py --help

Formato de Entrada

Prepara un archivo de texto plano (.txt) donde cada línea contenga credenciales en uno de estos formatos:

Separado por dos puntos:

dominio.com:usuario:contraseña
subdominio.ejemplo.com:admin:micontraseña123
192.168.1.10:usuario@dominio.com:ContraseñaSegura!

Separado por barra vertical:

dominio.com|usuario|contraseña
ejemplo.com|admin|contraseña123

Reglas:

  • Un conjunto de credenciales por línea
  • El dominio puede ser un nombre de host, dirección IP o URL
  • El nombre de usuario puede ser simple o en formato de correo electrónico
  • Las líneas que no coinciden con el formato se omiten automáticamente
  • Las líneas en blanco se ignoran

Archivo de ejemplo (credenciales.txt):

ejemplo.com:juan:contraseña123
misitioweb.org:admin:admin2024
192.168.0.5|webmaster|P@ssw0rd!
test.hosting.com:usuario@test.hosting.com:entrar

Uso

Modo Interactivo (recomendado para principiantes)

Ejecuta el script sin argumentos:

python cpnaelchecker.py

Se te pedirá ingresar:

  1. Ruta al archivo de credenciales
  2. Número de hilos (recomendado: 40–80, rango: 20–120)
[?] Ingresa la ruta al archivo de credenciales: /ruta/a/credenciales.txt
[?] Ingresa el número de hilos [40-80 recomendado]: 60

Modo de Línea de Comandos

Pasa el archivo de credenciales directamente como primer argumento:

python cpnaelchecker.py credenciales.txt

Aún se te pedirá el número de hilos.

Ejemplo Completo de Sesión

$ python cpnaelchecker.py combo.txt

  ╔═══════════════════════════════════════╗
  ║       cPanel Credential Checker       ║
  ╚═══════════════════════════════════════╝

[*] Cargadas 1500 credenciales desde combo.txt
[*] Codificación detectada: utf-8
[?] Hilos [20-120, recomendado 40-80]: 60
[*] Iniciando con 60 hilos...

[+] VÁLIDO   → dominio.com:admin:contraseña123
[!] 2FA      → seguro.com:usuario:micontraseña
[-] INVÁLIDO → test.com:admin:contraseñamala
[~] ERROR    → inaccesible.com:admin:pass (timeout)

Progreso: ████████████████████ 100% | 1500/1500 | Válidos: 12 | 2FA: 3

Archivos de Salida

Todos los resultados se guardan en el subdirectorio Results/ (creado automáticamente):

Archivo Descripción
Results/valid.txt Credenciales autenticadas exitosamente (sin 2FA)
Results/2fa.txt Credenciales válidas pero protegidas por autenticación de dos factores
Results/invalid.txt Credenciales que fallaron en la autenticación
Results/error.txt Conexiones con timeout o que encontraron errores

Formato dentro de los archivos de salida:

dominio.com:usuario:contraseña

Configuración

Guía de Número de Hilos

Hilos Caso de Uso
20–40 Conexión a internet lenta o inestable
40–60 Conexión de banda ancha estándar
60–80 Conexión rápida / entorno VPS
80–120 Entorno de servidor de alto ancho de banda

Un mayor número de hilos aumenta la velocidad pero también incrementa el riesgo de limitación de velocidad basada en IP o bloqueos temporales por parte de los servidores objetivo.

Timeout

El timeout de conexión predeterminado es de 15 segundos por solicitud. Está codificado en el script pero puede modificarse en la función cpcheck().


Cómo Funciona

  1. Cargar credenciales: Lee el archivo de entrada, detecta la codificación automáticamente, analiza cada línea
  2. Construir URL: Construye el endpoint de inicio de sesión de cPanel (prueba puertos comunes: 2083, 2082, etc.)
  3. Enviar solicitud: Envía datos del formulario de inicio de sesión mediante POST con headers aleatorios
  4. Analizar respuesta:
    • Verifica el campo de estado JSON
    • Busca tokens de sesión/seguridad en la respuesta
    • Escanea palabras clave de 2FA: twofactor, 2fa, tfa, authenticator
    • Detecta cuentas bloqueadas: cphulk, suspended, locked
  5. Categorizar: Escribe el resultado en el archivo de salida correspondiente
  6. Reportar: Actualiza la consola con el progreso en tiempo real

Solución de Problemas

Problema Solución
ModuleNotFoundError Ejecuta pip install requests colorama chardet rich urllib3
Todos los resultados son errores Verifica la conexión a internet; el servidor objetivo puede ser inaccesible
El script se congela Reduce el número de hilos; algunos hosts limitan las conexiones simultáneas
UnicodeDecodeError La herramienta detecta la codificación automáticamente; asegúrate de tener chardet instalado
Permiso denegado en Results/ Ejecuta con los permisos apropiados o cambia de directorio

License / Licencia

This project is licensed under the MIT License. See LICENSE for details.

Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.

About

Multi-threaded cPanel credential checker for authorized security audits

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages